OpenLB 1.8.1
Loading...
Searching...
No Matches
discreteNormals.h
Go to the documentation of this file.
1
24#ifndef GEOMETRY_DISCRETE_NORMAL_H
25#define GEOMETRY_DISCRETE_NORMAL_H
26
27namespace olb {
28
29template <typename T> class BlockIndicatorF2D;
30template <typename T> class BlockIndicatorF3D;
31
33enum class DiscreteNormalType : int {
34 Flat = 0,
35 ExternalCorner = 1,
36 InternalCorner = 2,
37 ExternalEdge = 3,
38 InternalEdge = 4
39};
40
41template <concepts::Descriptor DESCRIPTOR>
43
45template<concepts::BaseType T>
46std::pair<DiscreteNormalType,Vector<int,2>> computeBoundaryTypeAndNormal(
48 BlockIndicatorF2D<T>& outsideI,
49 Vector<int,2> latticeR);
50
52template<concepts::BaseType T>
53std::pair<DiscreteNormalType,Vector<int,3>> computeBoundaryTypeAndNormal(
55 BlockIndicatorF3D<T>& outsideI,
56 Vector<int,3> latticeR);
57
58}
59
60#endif
Base block indicator functor (discrete)
Definition aliases.h:203
Base block indicator functor.
Definition aliases.h:204
Plain old scalar vector.
Top level namespace for all of OpenLB.
DiscreteNormalType
Type associated with a discrete normal vector.
@ ExternalCorner
Normal detected as flat plane.
@ ExternalEdge
Normal detected as internal corner.
@ InternalEdge
Normal detected as external edge (only 3D)
@ InternalCorner
Normal detected as external corner.
std::pair< DiscreteNormalType, Vector< int, 2 > > computeBoundaryTypeAndNormal(BlockIndicatorF2D< T > &fluidI, BlockIndicatorF2D< T > &outsideI, Vector< int, 2 > latticeR)
Returns type (e.g. edge / corner) and discrete normal in 2D.