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"
ALU3dGridGeometricFaceInfoBase(const ConnectorType &)
FieldVector< alu3d_ctype, 3 > NormalType
Definition: faceutility.hh:254
int segmentIndex() const
return boundary segment index if intersection is with domain boundary
const GEOElementType & outerEntity() const
FieldMatrix< alu3d_ctype, numVerticesPerFace, dimworld > CoordinateType
Definition: faceutility.hh:257
bool generatedGlobal_
Definition: faceutility.hh:299
ImplTraits::GEOPeriodicType GEOPeriodicType
Definition: faceutility.hh:52
const BNDFaceType & innerFace() const
void resetFaceGeom()
reset status of faceGeomInfo
bool isElementLike() const
returns true if outerEntity casts into a helement
NonConformingFaceMapping< type, Comm > NonConformingMappingType
Definition: faceutility.hh:236
ImplTraits::GhostPairType GhostPairType
Definition: faceutility.hh:54
ConformanceState
Definition: faceutility.hh:48
Definition: faceutility.hh:248
bool innerBoundary() const
returns true if inside is a ghost entity
Definition: faceutility.hh:48
Definition: faceutility.hh:42
int duneTwist(const int faceIdx, const int aluTwist) const
Twist of the face seen from the inner element.
ConformanceState conformanceState() const
Description of conformance on the face.
Definition: faceutility.hh:248
A bilinear surface mapping.
Definition: mappings.hh:144
SideIdentifier
Definition: faceutility.hh:248
bool outerBoundary() const
FieldMatrix< alu3d_ctype, numVerticesPerFace, 3 > CoordinateType
Definition: faceutility.hh:196
ALU3dGridFaceInfo< type, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:259
ALU3DSPACE LinearSurfaceMapping SurfaceMappingType
Definition: faceutility.hh:191
int innerALUFaceIndex() const
Local number of the face in inner element (ALU3dGrid reference element)
bool neighbor() const
returns true if outside is something meaningfull
Include standard header files.
Definition: agrid.hh:59
Definition: faceutility.hh:48
int outerTwist() const
Twist of the face seen from the outer element.
ImplTraits::BNDFaceType BNDFaceType
Definition: faceutility.hh:55
Definition: topology.hh:126
int innerTwist() const
Twist of the face seen from the inner element.
double alu3d_ctype
Definition: alu3dinclude.hh:59
ALU3dGridFaceInfo< tetra, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:192
ALU3dGridFaceInfo< hexa, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:373
Definition: alugrid/common/declaration.hh:18
static const ReferenceElementType & getReferenceElement()
Definition: faceutility.hh:302
void buildGlobalGeom(GeometryImp &geo) const
update global geometry
CoordinateType coordsNeighborLocal_
Definition: faceutility.hh:297
Definition: alugrid/common/declaration.hh:18
Definition: faceutility.hh:249
const CoordinateType & intersectionNeighborLocal() const
FieldVector< alu3d_ctype, 3 > NormalType
Definition: faceutility.hh:327
Definition: topology.hh:13
int outerALUFaceIndex() const
Local number of the face in outer element (ALU3dGrid reference element)
Definition: faceutility.hh:250
ReferenceElements< alu3d_ctype, 2 > ReferenceFaceContainerType
Definition: faceutility.hh:241
const GEOFaceType & face() const
Returns the ALU3dGrid face.
A bilinear surface mapping.
Definition: mappings.hh:89
ImplTraits::GEOFaceType GEOFaceType
Definition: faceutility.hh:50
bool parallel() const
return whether we are in a parallel environment or not
Definition: faceutility.hh:135
bool generatedLocal_
Definition: faceutility.hh:300
void resetFaceGeom()
reset status of faceGeomInfo
Definition: faceutility.hh:320
const BNDFaceType & boundaryFace() const
ALU3dGridFaceInfo< hexa, Comm > ConnectorType
Definition: faceutility.hh:376
Definition: topology.hh:16
Definition: topology.hh:13
alu3d_ctype(& fieldVector2alu3d_ctype(FieldVector< alu3d_ctype, dim > &val))[dim]
Definition: faceutility.hh:21
~ALU3dGridFaceInfo()
Destructor.
ImplTraits::GEOElementType GEOElementType
Definition: faceutility.hh:51
SurfaceNormalCalculator SurfaceMappingType
Definition: faceutility.hh:374
ALU3dGridGeometricFaceInfoTetra(const ConnectorType &ctor)
Definition: topology.hh:40
ReferenceElements< alu3d_ctype, 3 > ReferenceElementContainerType
Definition: faceutility.hh:239
int boundaryId() const
return boundary id if intersection is with domain boundary
Definition: faceutility.hh:184
static const ReferenceFaceType & getReferenceFace()
Definition: faceutility.hh:309
Definition: alu3dinclude.hh:201
const CoordinateType & intersectionSelfLocal() const
Definition: faceutility.hh:48
Definition: mappings.hh:387
#define ALU3DSPACE
Definition: alu3dinclude.hh:26
FieldVector< alu3d_ctype, 3 > NormalType
Definition: faceutility.hh:371
ALU3dGridFaceInfo< hexa, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:208
bool boundary() const
returns true if the face lies on the domain boundary
bool conformingRefinement() const
return true if conforming refinement is enabled
Definition: faceutility.hh:140
Base::FaceTopo FaceTopo
Definition: faceutility.hh:328
void buildGlobalGeom(GeometryImp &geo) const
update global geometry
FieldMatrix< alu3d_ctype, numVerticesPerFace, 3 > CoordinateType
Definition: faceutility.hh:212
void resetFaceGeom()
reset status of faceGeomInfo
Definition: faceutility.hh:48
ALU3dGridFaceInfo(const bool conformingRefinement, const bool ghostCellsEnabled)
constructor creating empty face info
Definition: faceutility.hh:364
NormalType & outerNormal(const FieldVector< alu3d_ctype, 2 > &local) const
ReferenceElement< alu3d_ctype, 3 > ReferenceElementType
Definition: faceutility.hh:244
ALU3dGridFaceInfo< tetra, Comm > ConnectorType
Definition: faceutility.hh:331
ElementTopologyMapping< type > ElementTopo
Definition: faceutility.hh:234
Base::FaceTopo FaceTopo
Definition: faceutility.hh:372
void updateFaceInfo(const GEOFaceType &face, int innerLevel, int innerTwist)
ALU3dGridGeometricFaceInfoHexa(const ConnectorType &)
const GEOElementType & innerEntity() const
Returns the inner element at that face.
ALU3dGridFaceInfo< type, Comm > ConnectorType
Definition: faceutility.hh:262
NormalType & outerNormal(const FieldVector< alu3d_ctype, 2 > &local) const
BilinearSurfaceMapping SurfaceMappingType
Definition: faceutility.hh:207
const ConnectorType & connector_
Definition: faceutility.hh:294
ImplTraits::IMPLElementType IMPLElementType
Definition: faceutility.hh:53
ReferenceElement< alu3d_ctype, 2 > ReferenceFaceType
Definition: faceutility.hh:246
FaceTopologyMapping< type > FaceTopo
Definition: faceutility.hh:235
CoordinateType coordsSelfLocal_
Definition: faceutility.hh:296
bool ghostBoundary() const
ALU3dGridFaceInfo< tetra, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:329
Definition: faceutility.hh:228