Go to the documentation of this file. 1 #ifndef DUNE_ALU3DGRIDFACEUTILITY_HH
2 #define DUNE_ALU3DGRIDFACEUTILITY_HH
6 #include <dune/geometry/referenceelements.hh>
30 return ((
const alu3d_ctype (&)[dim]) (*( &(val[0])) ) );
41 template<
int dim,
int dimworld, ALU3dGr
idElementType type,
class Comm >
46 typedef typename ImplTraits::HasFaceType HasFaceType;
116 int duneTwist(
const int faceIdx,
const int aluTwist)
const;
135 bool parallel()
const {
return !std::is_same< Comm, ALUGridNoComm >::value; }
158 const HasFaceType* innerElement_;
159 const HasFaceType* outerElement_;
161 int innerFaceNumber_;
162 int outerFaceNumber_;
170 enum boundary_t { noBoundary = 0,
171 periodicBoundary = 1,
172 innerGhostBoundary = 2,
174 outerGhostBoundary = 4};
179 bool conformingRefinement_ ;
180 bool ghostCellsEnabled_ ;
181 const bool levelIntersection_ ;
188 template<
int dim,
int dimworld, ALU3dGr
idElementType type,
class Comm >
191 template<
int dim,
int dimworld,
class Comm >
209 template<
int dim,
int dimworld,
class Comm >
232 template<
int dim,
int dimworld, ALU3dGr
idElementType type,
class Comm >
285 void generateLocalGeometries()
const;
287 int globalVertexIndex(
const int duneFaceIndex,
289 const int duneFaceVertexIndex)
const;
308 return (type ==
tetra) ?
315 return (type ==
tetra) ?
323 template<
int dim,
int dimworld,
class Comm >
347 template <
class GeometryImp>
362 mutable bool normalUp2Date_;
367 template<
int dim,
int dimworld,
class Comm >
392 template <
class GeometryImp>
410 mutable bool mappingGlobalUp2Date_;
418 template<
int dimworld, ALU3dGr
idElementType type,
class Comm >
470 void generateLocalGeometries()
const;
475 int globalVertexIndex(
const int duneFaceIndex,
477 const int duneFaceVertexIndex)
const;
496 return (type ==
tetra) ?
503 return (type ==
tetra) ?
511 template<
int dimworld,
class Comm >
535 template <
class GeometryImp>
550 mutable bool normalUp2Date_;
555 template<
int dimworld,
class Comm >
580 template <
class GeometryImp>
595 mutable bool normalUp2Date_;
FieldVector< alu3d_ctype, 3 > NormalType
Definition: faceutility.hh:375
NonConformingFaceMapping< dim, dimworld, type, Comm > NonConformingMappingType
Definition: faceutility.hh:241
FieldMatrix< alu3d_ctype, numVerticesPerFace, dimworld > CoordinateType
Definition: faceutility.hh:261
FieldMatrix< alu3d_ctype, numVerticesPerFace, 3 > CoordinateType
Definition: faceutility.hh:217
ReferenceElement< alu3d_ctype, 2 > ReferenceFaceType
Definition: faceutility.hh:251
const CoordinateType & intersectionSelfLocal() const
Definition: faceutility_imp.cc:503
int duneTwist(const int faceIdx, const int aluTwist) const
Twist of the face seen from the inner element.
Definition: faceutility_imp.cc:388
int outsideLevel() const
Definition: faceutility_imp.cc:357
bool outerBoundary() const
Definition: faceutility_imp.cc:296
CoordinateType coordsNeighborLocal_
Definition: faceutility.hh:301
const GEOFaceType & face() const
Returns the ALU3dGrid face.
Definition: faceutility_imp.cc:320
ALU3dGridFaceInfo< 2, dimworld, type, Comm > ConnectorType
Definition: faceutility.hh:451
Definition: faceutility.hh:48
FieldVector< alu3d_ctype, dimworld > NormalType
Definition: faceutility.hh:440
void buildGlobalGeom(GeometryImp &geo) const
update global geometry
Definition: faceutility_imp.cc:544
Definition: faceutility.hh:324
Definition: topology.hh:12
const ConnectorType & connector_
Definition: faceutility.hh:298
A bilinear surface mapping.
Definition: mappings.hh:142
Definition: topology.hh:39
ImplTraits::BNDFaceType BNDFaceType
Definition: faceutility.hh:55
bool boundary() const
returns true if the face lies on the domain boundary
Definition: faceutility_imp.cc:301
ALU3dGridGeometricFaceInfoHexa(const ConnectorType &)
Definition: faceutility_imp.cc:591
int innerALUFaceIndex() const
Local number of the face in inner element (ALU3dGrid reference element)
Definition: faceutility_imp.cc:427
Definition: topology.hh:15
ALU3dGridFaceInfo< dim, dimworld, tetra, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:333
void updateFaceInfo(const GEOFaceType &face, int innerLevel, int innerTwist)
Definition: faceutility_imp.cc:43
ReferenceElements< alu3d_ctype, 3 > ReferenceElementContainerType
Definition: faceutility.hh:244
ALU3dGridFaceInfo< dim, dimworld, hexa, Comm > ConnectorType
Definition: faceutility.hh:380
ConformanceState
Definition: faceutility.hh:48
const GEOElementType & outerEntity() const
Definition: faceutility_imp.cc:335
const CoordinateType & intersectionNeighborLocal() const
Definition: faceutility_imp.cc:511
void buildGlobalGeom(GeometryImp &geo) const
update global geometry
Definition: faceutility_imp.cc:617
void resetFaceGeom()
reset status of faceGeomInfo
Definition: faceutility_imp.cc:599
void resetFaceGeom()
reset status of faceGeomInfo
Definition: faceutility_imp.cc:485
bool parallel() const
return whether we are in a parallel environment or not
Definition: faceutility.hh:135
Definition: alu3dinclude.hh:259
Definition: faceutility.hh:42
NormalType & outerNormal(const FieldVector< alu3d_ctype, 2 > &local) const
Definition: faceutility_imp.cc:635
static const ReferenceElementType & getReferenceElement()
Definition: faceutility.hh:306
Definition: topology.hh:12
ALU3dGridFaceInfo< dim, dimworld, hexa, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:213
ImplTraits::GEOPeriodicType GEOPeriodicType
Definition: faceutility.hh:52
bool isElementLike() const
returns true if outerEntity casts into a helement
Definition: faceutility_imp.cc:286
ReferenceElements< alu3d_ctype, 1 > ReferenceFaceContainerType
Definition: faceutility.hh:429
static const ReferenceFaceType & getReferenceFace()
Definition: faceutility.hh:313
bool generatedLocal_
Definition: faceutility.hh:304
ALU3dGridFaceInfo< dim, dimworld, type, Comm > ConnectorType
Definition: faceutility.hh:266
ConformanceState conformanceState() const
Description of conformance on the face.
Definition: faceutility_imp.cc:438
ALU3dGridFaceInfo< 2, dimworld, hexa, Comm > ConnectorType
Definition: faceutility.hh:568
ALU3DSPACE LinearSurfaceMapping SurfaceMappingType
Definition: faceutility.hh:196
SurfaceNormalCalculator SurfaceMappingType
Definition: faceutility.hh:378
CoordinateType coordsSelfLocal_
Definition: faceutility.hh:300
ElementTopologyMapping< type > ElementTopo
Definition: faceutility.hh:423
FieldVector< alu3d_ctype, dimworld > NormalType
Definition: faceutility.hh:563
void resetFaceGeom()
reset status of faceGeomInfo
Definition: faceutility_imp.cc:528
ReferenceElement< alu3d_ctype, 2 > ReferenceElementType
Definition: faceutility.hh:432
ALU3dGridFaceInfo< 2, dimworld, hexa, Comm >::GEOElementType GEOElementType
Definition: faceutility.hh:566
bool innerBoundary() const
returns true if inside is a ghost entity
Definition: faceutility_imp.cc:291
Definition: mappings.hh:385
Definition: faceutility.hh:48
~ALU3dGridFaceInfo()
Destructor.
Definition: faceutility_imp.cc:265
NormalType & outerNormal(const FieldVector< alu3d_ctype, 2 > &local) const
Definition: faceutility_imp.cc:562
Base::FaceTopo FaceTopo
Definition: faceutility.hh:564
const ConnectorType & connector_
Definition: faceutility.hh:486
SideIdentifier
Definition: faceutility.hh:253
Base::FaceTopo FaceTopo
Definition: faceutility.hh:520
ReferenceElement< alu3d_ctype, 1 > ReferenceFaceType
Definition: faceutility.hh:434
use only simplex elements (i.e., triangles or tetrahedra)
Definition: declaration.hh:18
const BNDFaceType & boundaryFace() const
Definition: faceutility_imp.cc:351
LocalCoordinateType coordsNeighborLocal_
Definition: faceutility.hh:489
FieldVector< alu3d_ctype, 3 > NormalType
Definition: faceutility.hh:331
double alu3d_ctype
Definition: alu3dinclude.hh:85
ALU3dGridFaceInfo< 2, dimworld, tetra, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:521
FieldMatrix< alu3d_ctype, numVerticesPerFace, dimworld > CoordinateType
Definition: faceutility.hh:443
ReferenceElement< alu3d_ctype, 3 > ReferenceElementType
Definition: faceutility.hh:249
ImplTraits::GEOElementType GEOElementType
Definition: faceutility.hh:51
ALU3dGridFaceInfo< dim, dimworld, type, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:263
Definition: faceutility.hh:48
int outerTwist() const
Twist of the face seen from the outer element.
Definition: faceutility_imp.cc:415
Definition: faceutility.hh:48
FaceTopologyMapping< type > FaceTopo
Definition: faceutility.hh:240
Definition: faceutility.hh:368
void setFlags(const bool conformingRefinement, const bool ghostCellsEnabled)
reset flags
Definition: faceutility_imp.cc:32
ReferenceElements< alu3d_ctype, 2 > ReferenceElementContainerType
Definition: faceutility.hh:427
ImplTraits::GhostPairType GhostPairType
Definition: faceutility.hh:54
bool ghostCellsEnabled() const
return true if ghost cells are enabled
Definition: faceutility.hh:141
alu3d_ctype(& fieldVector2alu3d_ctype(FieldVector< alu3d_ctype, dim > &val))[dim]
Definition: faceutility.hh:21
use only cube elements (i.e., quadrilaterals or hexahedra)
Definition: declaration.hh:19
bool conformingRefinement() const
return true if conforming refinement is enabled
Definition: faceutility.hh:138
bool generatedGlobal_
Definition: faceutility.hh:303
Base::FaceTopo FaceTopo
Definition: faceutility.hh:332
ALU3dGridGeometricFaceInfoBase(const ConnectorType &)
Definition: faceutility_imp.cc:474
int innerTwist() const
Twist of the face seen from the inner element.
Definition: faceutility_imp.cc:379
bool generatedLocal_
Definition: faceutility.hh:492
static const ReferenceElementType & getReferenceElement()
Definition: faceutility.hh:494
Definition: faceutility.hh:233
ALU3dGridFaceInfo< 2, dimworld, hexa, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:565
A bilinear surface mapping.
Definition: mappings.hh:87
Definition: faceutility.hh:189
Base::FaceTopo FaceTopo
Definition: faceutility.hh:376
static const ReferenceFaceType & getReferenceFace()
Definition: faceutility.hh:501
ImplTraits::GEOFaceType GEOFaceType
Definition: faceutility.hh:50
ReferenceElements< alu3d_ctype, 2 > ReferenceFaceContainerType
Definition: faceutility.hh:246
Definition: topology.hh:151
Definition: faceutility.hh:253
FieldVector< alu3d_ctype, 3 > NormalType
Definition: faceutility.hh:258
#define ALU3DSPACE
Definition: alu3dinclude.hh:24
ALU3dGridFaceInfo< dim, dimworld, hexa, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:377
ALU3dGridFaceInfo< 2, dimworld, tetra, Comm >::GEOElementType GEOElementType
Definition: faceutility.hh:522
int outerALUFaceIndex() const
Local number of the face in outer element (ALU3dGrid reference element)
Definition: faceutility_imp.cc:432
ALU3dGridGeometricFaceInfoTetra(const ConnectorType &ctor)
Definition: faceutility_imp.cc:522
ALU3dGridFaceInfo(const bool levelIntersection=false)
constructor creating empty face info
Definition: faceutility_imp.cc:10
BilinearSurfaceMapping SurfaceMappingType
Definition: faceutility.hh:212
FieldVector< alu3d_ctype, dimworld > NormalType
Definition: faceutility.hh:519
LocalCoordinateType coordsSelfLocal_
Definition: faceutility.hh:488
bool generatedGlobal_
Definition: faceutility.hh:491
ImplTraits::IMPLElementType IMPLElementType
Definition: faceutility.hh:53
Definition: faceutility.hh:253
int segmentIndex() const
return boundary segment index if intersection is with domain boundary
Definition: faceutility_imp.cc:366
ALU3dGridFaceInfo< 2, dimworld, tetra, Comm > ConnectorType
Definition: faceutility.hh:523
ALU3dGridFaceInfo< dim, dimworld, tetra, Comm > ConnectorType
Definition: faceutility.hh:335
FieldMatrix< alu3d_ctype, numVerticesPerFace, 2 > LocalCoordinateType
Definition: faceutility.hh:446
Definition: alu3dinclude.hh:79
int boundaryId() const
return boundary id if intersection is with domain boundary
Definition: faceutility_imp.cc:373
SideIdentifier
Definition: faceutility.hh:436
ALU3dGridFaceInfo< dim, dimworld, tetra, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:197
const GEOElementType & innerEntity() const
Returns the inner element at that face.
Definition: faceutility_imp.cc:327
const BNDFaceType & innerFace() const
Definition: faceutility_imp.cc:343
bool ghostBoundary() const
Definition: faceutility_imp.cc:312
bool neighbor() const
returns true if outside is something meaningfull
Definition: faceutility_imp.cc:306
ALU3dGridFaceInfo< 2, dimworld, type, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:448
FaceTopologyMapping< type > FaceTopo
Definition: faceutility.hh:424
Definition: faceutility.hh:254
ElementTopologyMapping< type > ElementTopo
Definition: faceutility.hh:239
FieldMatrix< alu3d_ctype, numVerticesPerFace, 3 > CoordinateType
Definition: faceutility.hh:201