3 #ifndef DUNE_ALU3DGRIDFACEUTILITY_HH
4 #define DUNE_ALU3DGRIDFACEUTILITY_HH
6 #include <dune/geometry/referenceelements.hh>
30 return ((
const alu3d_ctype (&)[dim])(*( &(val[0])) ) );
41 template< ALU3dGr
idElementType type,
class Comm >
46 typedef typename ImplTraits::HasFaceType HasFaceType;
97 const GEOFaceType&
face()
const;
116 int duneTwist(
const int faceIdx,
const int aluTwist)
const;
136 return ! Conversion< Comm, No_Comm > :: sameType ;
153 const GEOFaceType* face_;
154 const HasFaceType* innerElement_;
155 const HasFaceType* outerElement_;
157 int innerFaceNumber_;
158 int outerFaceNumber_;
166 enum boundary_t { noBoundary = 0,
167 periodicBoundary = 1,
168 innerGhostBoundary = 2,
170 outerGhostBoundary = 4};
175 const bool conformingRefinement_ ;
176 const bool ghostCellsEnabled_ ;
183 template< ALU3dGr
idElementType type,
class Comm >
186 template<
class Comm >
199 SurfaceMappingType *buildSurfaceMapping (
const CoordinateType &coords )
const;
201 SurfaceMappingType *buildSurfaceMapping (
const GEOFaceType &face )
const;
204 template<
class Comm >
215 SurfaceMappingType *buildSurfaceMapping (
const CoordinateType &coords )
const;
217 SurfaceMappingType *buildSurfaceMapping (
const GEOFaceType &face )
const;
227 template< ALU3dGr
idElementType type,
class Comm >
281 void generateLocalGeometries()
const;
283 int globalVertexIndex(
const int duneFaceIndex,
285 const int duneFaceVertexIndex)
const;
288 CoordinateType& result)
const;
290 CoordinateType& result)
const;
304 return (type ==
tetra) ?
311 return (type ==
tetra) ?
319 template<
class Comm >
337 NormalType &
outerNormal(
const FieldVector<alu3d_ctype, 2>& local)
const;
343 template <
class GeometryImp>
355 mutable NormalType outerNormal_;
358 mutable bool normalUp2Date_;
363 template<
class Comm >
382 NormalType &
outerNormal(
const FieldVector<alu3d_ctype, 2>& local)
const;
388 template <
class GeometryImp>
400 mutable NormalType outerNormal_;
403 mutable SurfaceMappingType mappingGlobal_;
406 mutable bool mappingGlobalUp2Date_;
411 #include "faceutility_imp.cc"
void updateFaceInfo(const GEOFaceType &face, int innerLevel, int innerTwist)
ALU3dGridFaceInfo< type, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:259
Definition: faceutility.hh:248
Definition: faceutility.hh:48
const GEOElementType & innerEntity() const
Returns the inner element at that face.
Definition: alugrid/common/declaration.hh:18
ALU3dGridFaceInfo< type, Comm > ConnectorType
Definition: faceutility.hh:262
bool neighbor() const
returns true if outside is something meaningfull
ALU3dGridGeometricFaceInfoTetra(const ConnectorType &ctor)
FieldVector< alu3d_ctype, 3 > NormalType
Definition: faceutility.hh:371
Definition: faceutility.hh:364
void resetFaceGeom()
reset status of faceGeomInfo
BilinearSurfaceMapping SurfaceMappingType
Definition: faceutility.hh:207
const ConnectorType & connector_
Definition: faceutility.hh:294
Definition: faceutility.hh:248
int outerTwist() const
Twist of the face seen from the outer element.
Definition: alu3dinclude.hh:201
int innerTwist() const
Twist of the face seen from the inner element.
static const ReferenceElementType & getReferenceElement()
Definition: faceutility.hh:302
const CoordinateType & intersectionNeighborLocal() const
SurfaceNormalCalculator SurfaceMappingType
Definition: faceutility.hh:374
Definition: faceutility.hh:48
NormalType & outerNormal(const FieldVector< alu3d_ctype, 2 > &local) const
A bilinear surface mapping.
Definition: mappings.hh:144
int outerALUFaceIndex() const
Local number of the face in outer element (ALU3dGrid reference element)
const GEOFaceType & face() const
Returns the ALU3dGrid face.
bool generatedLocal_
Definition: faceutility.hh:300
bool isElementLike() const
returns true if outerEntity casts into a helement
ImplTraits::GEOElementType GEOElementType
Definition: faceutility.hh:51
bool innerBoundary() const
returns true if inside is a ghost entity
ConformanceState conformanceState() const
Description of conformance on the face.
ReferenceElements< alu3d_ctype, 3 > ReferenceElementContainerType
Definition: faceutility.hh:239
bool outerBoundary() const
ALU3DSPACE LinearSurfaceMapping SurfaceMappingType
Definition: faceutility.hh:191
int innerALUFaceIndex() const
Local number of the face in inner element (ALU3dGrid reference element)
A bilinear surface mapping.
Definition: mappings.hh:89
Definition: faceutility.hh:228
ImplTraits::BNDFaceType BNDFaceType
Definition: faceutility.hh:55
alu3d_ctype(& fieldVector2alu3d_ctype(FieldVector< alu3d_ctype, dim > &val))[dim]
Definition: faceutility.hh:21
Definition: topology.hh:13
CoordinateType coordsNeighborLocal_
Definition: faceutility.hh:297
const CoordinateType & intersectionSelfLocal() const
NormalType & outerNormal(const FieldVector< alu3d_ctype, 2 > &local) const
void resetFaceGeom()
reset status of faceGeomInfo
Definition: alugrid/common/declaration.hh:18
FieldMatrix< alu3d_ctype, numVerticesPerFace, 3 > CoordinateType
Definition: faceutility.hh:212
Definition: faceutility.hh:184
Definition: faceutility.hh:42
void resetFaceGeom()
reset status of faceGeomInfo
ReferenceElements< alu3d_ctype, 2 > ReferenceFaceContainerType
Definition: faceutility.hh:241
ALU3dGridFaceInfo(const bool conformingRefinement, const bool ghostCellsEnabled)
constructor creating empty face info
ImplTraits::GEOFaceType GEOFaceType
Definition: faceutility.hh:50
bool parallel() const
return whether we are in a parallel environment or not
Definition: faceutility.hh:135
Definition: topology.hh:126
const BNDFaceType & boundaryFace() const
ReferenceElement< alu3d_ctype, 3 > ReferenceElementType
Definition: faceutility.hh:244
~ALU3dGridFaceInfo()
Destructor.
Definition: mappings.hh:387
#define ALU3DSPACE
Definition: alu3dinclude.hh:26
double alu3d_ctype
Definition: alu3dinclude.hh:59
Definition: faceutility.hh:249
FieldMatrix< alu3d_ctype, numVerticesPerFace, 3 > CoordinateType
Definition: faceutility.hh:196
Definition: faceutility.hh:320
ImplTraits::IMPLElementType IMPLElementType
Definition: faceutility.hh:53
ReferenceElement< alu3d_ctype, 2 > ReferenceFaceType
Definition: faceutility.hh:246
Base::FaceTopo FaceTopo
Definition: faceutility.hh:328
void buildGlobalGeom(GeometryImp &geo) const
update global geometry
Definition: faceutility.hh:48
Definition: topology.hh:40
int boundaryId() const
return boundary id if intersection is with domain boundary
FaceTopologyMapping< type > FaceTopo
Definition: faceutility.hh:235
CoordinateType coordsSelfLocal_
Definition: faceutility.hh:296
bool ghostBoundary() const
Definition: topology.hh:16
Definition: topology.hh:13
static const ReferenceFaceType & getReferenceFace()
Definition: faceutility.hh:309
ALU3dGridGeometricFaceInfoBase(const ConnectorType &)
FieldVector< alu3d_ctype, 3 > NormalType
Definition: faceutility.hh:254
ALU3dGridFaceInfo< tetra, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:192
int segmentIndex() const
return boundary segment index if intersection is with domain boundary
const GEOElementType & outerEntity() const
Definition: faceutility.hh:48
FieldVector< alu3d_ctype, 3 > NormalType
Definition: faceutility.hh:327
FieldMatrix< alu3d_ctype, numVerticesPerFace, dimworld > CoordinateType
Definition: faceutility.hh:257
ALU3dGridFaceInfo< hexa, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:208
bool boundary() const
returns true if the face lies on the domain boundary
bool generatedGlobal_
Definition: faceutility.hh:299
Include standard header files.
Definition: agrid.hh:59
ALU3dGridFaceInfo< tetra, Comm > ConnectorType
Definition: faceutility.hh:331
bool conformingRefinement() const
return true if conforming refinement is enabled
Definition: faceutility.hh:140
ImplTraits::GEOPeriodicType GEOPeriodicType
Definition: faceutility.hh:52
const BNDFaceType & innerFace() const
Base::FaceTopo FaceTopo
Definition: faceutility.hh:372
ALU3dGridFaceInfo< hexa, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:373
ALU3dGridFaceInfo< hexa, Comm > ConnectorType
Definition: faceutility.hh:376
void buildGlobalGeom(GeometryImp &geo) const
update global geometry
ALU3dGridGeometricFaceInfoHexa(const ConnectorType &)
NonConformingFaceMapping< type, Comm > NonConformingMappingType
Definition: faceutility.hh:236
ImplTraits::GhostPairType GhostPairType
Definition: faceutility.hh:54
ConformanceState
Definition: faceutility.hh:48
int duneTwist(const int faceIdx, const int aluTwist) const
Twist of the face seen from the inner element.
ALU3dGridFaceInfo< tetra, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:329
Definition: faceutility.hh:250
SideIdentifier
Definition: faceutility.hh:248
ElementTopologyMapping< type > ElementTopo
Definition: faceutility.hh:234