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