dune-alugrid  3.0.0
faceutility.hh
Go to the documentation of this file.
1 #ifndef DUNE_ALU3DGRIDFACEUTILITY_HH
2 #define DUNE_ALU3DGRIDFACEUTILITY_HH
3 
4 #include <type_traits>
5 
6 #include <dune/geometry/referenceelements.hh>
7 
8 #include "mappings.hh"
9 #include "alu3dinclude.hh"
10 #include "topology.hh"
11 
12 namespace Dune
13 {
14 
15  // convert FieldVectors to alu3dtypes
16  // only used for calculating the normals because the method of the
17  // mapping classes want double (&)[3] and we have FieldVectors which store an
18  // double [3] this is why we can cast here
19  // plz say notin' Adrian
20  template< int dim >
21  inline alu3d_ctype (&fieldVector2alu3d_ctype ( FieldVector< alu3d_ctype, dim > &val ))[ dim ]
22  {
23  return ((alu3d_ctype (&)[dim]) (*( &(val[0])) ));
24  }
25 
26  // convert const FieldVectors to const alu3dtypes
27  template< int dim >
28  inline const alu3d_ctype (&fieldVector2alu3d_ctype ( const FieldVector< alu3d_ctype, dim > &val ))[ dim ]
29  {
30  return ((const alu3d_ctype (&)[dim]) (*( &(val[0])) ) );
31  }
32 
33 
34  // * Note: reconsider lazy evaluation of coordinates
35 
36  //- class ALU3dGridFaceInfo
37  /* \brief Stores face and adjoining elements of the underlying ALU3dGrid
38  The class has the same notion of inner and outer element as the
39  intersection iterator.
40  */
41  template< int dim, int dimworld, ALU3dGridElementType type, class Comm >
43  {
45  //- private typedefs
46  typedef typename ImplTraits::HasFaceType HasFaceType;
47  public:
49  //- typedefs
50  typedef typename ImplTraits::GEOFaceType GEOFaceType;
51  typedef typename ImplTraits::GEOElementType GEOElementType;
52  typedef typename ImplTraits::GEOPeriodicType GEOPeriodicType;
53  typedef typename ImplTraits::IMPLElementType IMPLElementType;
54  typedef typename ImplTraits::GhostPairType GhostPairType;
55  typedef typename ImplTraits::BNDFaceType BNDFaceType;
56 
57  public:
59  ALU3dGridFaceInfo( const bool levelIntersection = false );
60  void updateFaceInfo(const GEOFaceType& face, int innerLevel, int innerTwist);
61 
62  //- constructors and destructors
72 
73  protected:
75  bool isElementLike() const;
76 
77  public:
78  //- queries
80  bool innerBoundary() const;
81 
84  bool outerBoundary() const;
85 
87  bool boundary() const;
88 
90  bool neighbor() const ;
91 
94  bool ghostBoundary () const;
95 
97  const GEOFaceType& face() const;
99  const GEOElementType& innerEntity() const;
102  const GEOElementType& outerEntity() const;
105  const BNDFaceType& innerFace() const;
108  const BNDFaceType& boundaryFace() const;
109 
111  int innerTwist() const;
113  int outerTwist() const;
114 
116  int duneTwist(const int faceIdx, const int aluTwist) const;
117 
119  int innerALUFaceIndex() const;
121  int outerALUFaceIndex() const;
122 
123  int outsideLevel() const;
124 
126  int segmentIndex() const;
127 
129  int boundaryId() const;
130 
133 
135  bool parallel() const { return !std::is_same< Comm, ALUGridNoComm >::value; }
136 
138  bool conformingRefinement () const { return conformingRefinement_; }
139 
141  bool ghostCellsEnabled () const { return ghostCellsEnabled_; }
142 
144  void setFlags( const bool conformingRefinement, const bool ghostCellsEnabled );
145 
146  private:
148  ConformanceState getConformanceState(const int innerLevel) const;
149 
150  //- forbidden methods
151  const ALU3dGridFaceInfo &
152  operator=(const ALU3dGridFaceInfo &orig);
153 
154  private:
155 
156  //- member data
157  const GEOFaceType* face_;
158  const HasFaceType* innerElement_;
159  const HasFaceType* outerElement_;
160 
161  int innerFaceNumber_;
162  int outerFaceNumber_;
163 
164  int innerTwist_;
165  int outerTwist_;
166 
167  int segmentIndex_;
168  int bndId_;
169 
170  enum boundary_t { noBoundary = 0, // no boundary, outside is normal element
171  periodicBoundary = 1, // periodic boundary
172  innerGhostBoundary = 2, // process boundary, inside is ghost, outside is normal element
173  domainBoundary = 3, // boundary with domain, no outside
174  outerGhostBoundary = 4};// process boundary, outside might be ghost
175 
176  boundary_t bndType_;
177 
178  ConformanceState conformanceState_;
179  bool conformingRefinement_ ; // true if conforming refinement is enabled
180  bool ghostCellsEnabled_ ; // true if ghost cells are present
181  const bool levelIntersection_ ; // true if called from a levelintersection iterator
182  };
183 
184 
185  // ALU3dGridSurfaceMappingFactory
186  // ------------------------------
187 
188  template< int dim, int dimworld, ALU3dGridElementType type, class Comm >
190 
191  template< int dim, int dimworld, class Comm >
192  struct ALU3dGridSurfaceMappingFactory< dim, dimworld, tetra, Comm >
193  {
194  // this is the original ALUGrid LinearSurfaceMapping,
195  // see mapp_tetra_3d.* in ALUGrid code
196  typedef ALU3DSPACE LinearSurfaceMapping SurfaceMappingType;
198 
199  static const int numVerticesPerFace = EntityCount< tetra >::numVerticesPerFace;
200 
201  typedef FieldMatrix< alu3d_ctype, numVerticesPerFace, 3 > CoordinateType;
202 
203  // old method, copies values for tetra twice
204  SurfaceMappingType *buildSurfaceMapping ( const CoordinateType &coords ) const;
205  // get face but doesn't copy values twice
206  SurfaceMappingType *buildSurfaceMapping ( const GEOFaceType &face ) const;
207  };
208 
209  template< int dim, int dimworld, class Comm >
210  struct ALU3dGridSurfaceMappingFactory< dim, dimworld, hexa, Comm >
211  {
214 
215  static const int numVerticesPerFace = EntityCount< hexa >::numVerticesPerFace;
216 
217  typedef FieldMatrix< alu3d_ctype, numVerticesPerFace, 3 > CoordinateType;
218 
219  // old method, copies values for tetra twice
220  SurfaceMappingType *buildSurfaceMapping ( const CoordinateType &coords ) const;
221  // get face but doesn't copy values twice
222  SurfaceMappingType *buildSurfaceMapping ( const GEOFaceType &face ) const;
223  };
224 
225 
226 
227  // ALU3dGridGeometricFaceInfoBase
228  // ------------------------------
229 
232  template< int dim, int dimworld, ALU3dGridElementType type, class Comm >
234  : public ALU3dGridSurfaceMappingFactory< dim, dimworld, type, Comm >
235  {
237 
238  public:
242 
243  // type of container for reference elements
244  typedef ReferenceElements< alu3d_ctype, 3 > ReferenceElementContainerType;
245  // type of container for reference faces
246  typedef ReferenceElements< alu3d_ctype, 2 > ReferenceFaceContainerType;
247 
248  // type of reference element
249  typedef ReferenceElement<alu3d_ctype, 3> ReferenceElementType;
250  // type of reference face
251  typedef ReferenceElement<alu3d_ctype, 2> ReferenceFaceType;
252 
256 
257  //- public typedefs
258  typedef FieldVector<alu3d_ctype, 3> NormalType;
259  typedef FieldMatrix<alu3d_ctype,
261  dimworld> CoordinateType;
262 
264 
265  public:
267 
268  //- constructors and destructors
271 
273  void resetFaceGeom();
274 
275  //- functions
276  const CoordinateType& intersectionSelfLocal() const;
278 
279  private:
280  //- forbidden methods
282 
283  private:
284  //- private methods
285  void generateLocalGeometries() const;
286 
287  int globalVertexIndex(const int duneFaceIndex,
288  const int faceTwist,
289  const int duneFaceVertexIndex) const;
290 
291  void referenceElementCoordinatesRefined(SideIdentifier side,
292  CoordinateType& result) const;
293  void referenceElementCoordinatesUnrefined(SideIdentifier side,
294  CoordinateType& result) const;
295 
296  protected:
297  //- private data
299 
302 
303  mutable bool generatedGlobal_;
304  mutable bool generatedLocal_;
305 
307  {
308  return (type == tetra) ?
311  }
312 
313  inline static const ReferenceFaceType& getReferenceFace()
314  {
315  return (type == tetra) ?
318  }
319  };
320 
323  template< int dim, int dimworld, class Comm >
325  : public ALU3dGridGeometricFaceInfoBase< dim, dimworld, tetra, Comm >
326  {
328 
329  public:
330  //- public typedefs
331  typedef FieldVector<alu3d_ctype, 3> NormalType;
332  typedef typename Base::FaceTopo FaceTopo;
334 
336 
337  //- constructors and destructors
340 
341  NormalType & outerNormal(const FieldVector<alu3d_ctype, 2>& local) const;
342 
344  void resetFaceGeom();
345 
347  template <class GeometryImp>
348  void buildGlobalGeom(GeometryImp& geo) const;
349 
350  private:
351  //- forbidden methods
353 
354  protected:
355  using Base::connector_;
356 
357  private:
358  //- private data
359  mutable NormalType outerNormal_;
360 
361  // false if surface mapping needs a update
362  mutable bool normalUp2Date_;
363  };
364 
367  template< int dim, int dimworld, class Comm >
369  : public ALU3dGridGeometricFaceInfoBase< dim, dimworld, hexa, Comm >
370  {
372 
373  public:
374  //- public typedefs
375  typedef FieldVector<alu3d_ctype, 3> NormalType;
376  typedef typename Base::FaceTopo FaceTopo;
379 
381 
382  //- constructors and destructors
385 
386  NormalType & outerNormal(const FieldVector<alu3d_ctype, 2>& local) const;
387 
389  void resetFaceGeom();
390 
392  template <class GeometryImp>
393  void buildGlobalGeom(GeometryImp& geo) const;
394 
395  private:
396  //- forbidden methods
398 
399  protected:
400  using Base::connector_;
401 
402  private:
403  //- private data
404  mutable NormalType outerNormal_;
405 
406  // surface mapping for calculating the outer normal
407  mutable SurfaceMappingType mappingGlobal_;
408 
409  // false if surface mapping needs a update
410  mutable bool mappingGlobalUp2Date_;
411  };
412 
413  // ALU3dGridGeometricFaceInfoBase
414  // ------------------------------
415 
418  template< int dimworld, ALU3dGridElementType type, class Comm >
419  class ALU3dGridGeometricFaceInfoBase<2, dimworld, type, Comm>
420  {
421 
422  public:
425 
426  // type of container for reference elements
427  typedef ReferenceElements< alu3d_ctype, 2 > ReferenceElementContainerType;
428  // type of container for reference faces
429  typedef ReferenceElements< alu3d_ctype, 1 > ReferenceFaceContainerType;
430 
431  // type of reference element
432  typedef ReferenceElement<alu3d_ctype, 2> ReferenceElementType;
433  // type of reference face
434  typedef ReferenceElement<alu3d_ctype, 1> ReferenceFaceType;
435 
437  enum { numVerticesPerFace = 2 }; // A face in 2d is an edge
438 
439  //- public typedefs
440  typedef FieldVector<alu3d_ctype, dimworld> NormalType;
441  typedef FieldMatrix<alu3d_ctype,
443  dimworld> CoordinateType;
444  typedef FieldMatrix<alu3d_ctype,
447 
449 
450  public:
452 
453  //- constructors and destructors
456 
458  void resetFaceGeom();
459 
460  //- functions
463 
464  private:
465  //- forbidden methods
467 
468  protected:
469  //- protected methods
470  void generateLocalGeometries() const;
471 
472  private:
473  //- private methods
474 
475  int globalVertexIndex(const int duneFaceIndex,
476  const int faceTwist,
477  const int duneFaceVertexIndex) const;
478 
479  void referenceElementCoordinatesRefined(SideIdentifier side,
480  LocalCoordinateType& result) const;
481  void referenceElementCoordinatesUnrefined(SideIdentifier side,
482  LocalCoordinateType& result) const;
483 
484  protected:
485  //- private data
487 
490 
491  mutable bool generatedGlobal_;
492  mutable bool generatedLocal_;
493 
495  {
496  return (type == tetra) ?
499  }
500 
501  inline static const ReferenceFaceType& getReferenceFace()
502  {
503  return (type == tetra) ?
506  }
507  };
508 
511  template< int dimworld, class Comm >
512  class ALU3dGridGeometricFaceInfoTetra<2, dimworld, Comm>
513  : public ALU3dGridGeometricFaceInfoBase< 2, dimworld, tetra, Comm >
514  {
516 
517  public:
518  //- public typedefs
519  typedef FieldVector<alu3d_ctype, dimworld> NormalType;
520  typedef typename Base::FaceTopo FaceTopo;
524 
525  //- constructors and destructors
528 
529  NormalType & outerNormal(const FieldVector<alu3d_ctype, 1>& local) const;
530 
532  void resetFaceGeom();
533 
535  template <class GeometryImp>
536  void buildGlobalGeom(GeometryImp& geo) const;
537 
538  private:
539  //- forbidden methods
541 
542  protected:
543  using Base::connector_;
544 
545  private:
546  //- private data
547  mutable NormalType outerNormal_;
548 
549  // false if surface mapping needs a update
550  mutable bool normalUp2Date_;
551  };
552 
555  template< int dimworld, class Comm >
556  class ALU3dGridGeometricFaceInfoHexa<2, dimworld, Comm>
557  : public ALU3dGridGeometricFaceInfoBase< 2, dimworld, hexa, Comm >
558  {
560 
561  public:
562  //- public typedefs
563  typedef FieldVector<alu3d_ctype, dimworld> NormalType;
564  typedef typename Base::FaceTopo FaceTopo;
567 
569 
570  //- constructors and destructors
573 
574  NormalType & outerNormal(const FieldVector<alu3d_ctype, 1>& local) const;
575 
577  void resetFaceGeom();
578 
580  template <class GeometryImp>
581  void buildGlobalGeom(GeometryImp& geo) const;
582 
583  private:
584  //- forbidden methods
586 
587  protected:
588  using Base::connector_;
589 
590  private:
591  //- private data
592  mutable NormalType outerNormal_;
593 
594  // false if surface mapping needs a update
595  mutable bool normalUp2Date_;
596  };
597 
598 
599 } // end namespace Dune
600 
601 #include "faceutility_imp.cc"
602 
603 #endif
Dune::ALU3dGridGeometricFaceInfoHexa::NormalType
FieldVector< alu3d_ctype, 3 > NormalType
Definition: faceutility.hh:375
Dune::ALU3dGridGeometricFaceInfoBase::NonConformingMappingType
NonConformingFaceMapping< dim, dimworld, type, Comm > NonConformingMappingType
Definition: faceutility.hh:241
Dune::ALU3dGridGeometricFaceInfoBase::CoordinateType
FieldMatrix< alu3d_ctype, numVerticesPerFace, dimworld > CoordinateType
Definition: faceutility.hh:261
Dune::ALU3dGridSurfaceMappingFactory< dim, dimworld, hexa, Comm >::CoordinateType
FieldMatrix< alu3d_ctype, numVerticesPerFace, 3 > CoordinateType
Definition: faceutility.hh:217
Dune::ALU3dGridGeometricFaceInfoBase::ReferenceFaceType
ReferenceElement< alu3d_ctype, 2 > ReferenceFaceType
Definition: faceutility.hh:251
Dune::ALU3dGridGeometricFaceInfoBase::intersectionSelfLocal
const CoordinateType & intersectionSelfLocal() const
Definition: faceutility_imp.cc:503
Dune::ALU3dGridFaceInfo::duneTwist
int duneTwist(const int faceIdx, const int aluTwist) const
Twist of the face seen from the inner element.
Definition: faceutility_imp.cc:388
Dune::ALU3dGridFaceInfo::outsideLevel
int outsideLevel() const
Definition: faceutility_imp.cc:357
Dune::ALU3dGridFaceInfo::outerBoundary
bool outerBoundary() const
Definition: faceutility_imp.cc:296
Dune::ALU3dGridGeometricFaceInfoBase::coordsNeighborLocal_
CoordinateType coordsNeighborLocal_
Definition: faceutility.hh:301
Dune::ALU3dGridFaceInfo::face
const GEOFaceType & face() const
Returns the ALU3dGrid face.
Definition: faceutility_imp.cc:320
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::ConnectorType
ALU3dGridFaceInfo< 2, dimworld, type, Comm > ConnectorType
Definition: faceutility.hh:451
Dune::ALU3dGridFaceInfo::UNDEFINED
Definition: faceutility.hh:48
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::NormalType
FieldVector< alu3d_ctype, dimworld > NormalType
Definition: faceutility.hh:440
Dune::ALU3dGridGeometricFaceInfoTetra::buildGlobalGeom
void buildGlobalGeom(GeometryImp &geo) const
update global geometry
Definition: faceutility_imp.cc:544
Dune::ALU3dGridGeometricFaceInfoTetra
Definition: faceutility.hh:324
Dune::hexa
Definition: topology.hh:12
Dune::ALU3dGridGeometricFaceInfoBase::connector_
const ConnectorType & connector_
Definition: faceutility.hh:298
Dune::BilinearSurfaceMapping
A bilinear surface mapping.
Definition: mappings.hh:142
Dune::ElementTopologyMapping
Definition: topology.hh:39
Dune::ALU3dGridFaceInfo::BNDFaceType
ImplTraits::BNDFaceType BNDFaceType
Definition: faceutility.hh:55
Dune::ALU3dGridFaceInfo::boundary
bool boundary() const
returns true if the face lies on the domain boundary
Definition: faceutility_imp.cc:301
Dune::ALU3dGridGeometricFaceInfoHexa::ALU3dGridGeometricFaceInfoHexa
ALU3dGridGeometricFaceInfoHexa(const ConnectorType &)
Definition: faceutility_imp.cc:591
Dune::ALU3dGridFaceInfo::innerALUFaceIndex
int innerALUFaceIndex() const
Local number of the face in inner element (ALU3dGrid reference element)
Definition: faceutility_imp.cc:427
Dune::EntityCount
Definition: topology.hh:15
Dune::ALU3dGridGeometricFaceInfoTetra::GEOFaceType
ALU3dGridFaceInfo< dim, dimworld, tetra, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:333
Dune::ALU3dGridFaceInfo::updateFaceInfo
void updateFaceInfo(const GEOFaceType &face, int innerLevel, int innerTwist)
Definition: faceutility_imp.cc:43
Dune::ALU3dGridGeometricFaceInfoBase::ReferenceElementContainerType
ReferenceElements< alu3d_ctype, 3 > ReferenceElementContainerType
Definition: faceutility.hh:244
Dune::ALU3dGridGeometricFaceInfoHexa::ConnectorType
ALU3dGridFaceInfo< dim, dimworld, hexa, Comm > ConnectorType
Definition: faceutility.hh:380
Dune::ALU3dGridFaceInfo::ConformanceState
ConformanceState
Definition: faceutility.hh:48
Dune::ALU3dGridFaceInfo::outerEntity
const GEOElementType & outerEntity() const
Definition: faceutility_imp.cc:335
Dune::ALU3dGridGeometricFaceInfoBase::intersectionNeighborLocal
const CoordinateType & intersectionNeighborLocal() const
Definition: faceutility_imp.cc:511
Dune::ALU3dGridGeometricFaceInfoHexa::buildGlobalGeom
void buildGlobalGeom(GeometryImp &geo) const
update global geometry
Definition: faceutility_imp.cc:617
Dune::ALU3dGridGeometricFaceInfoHexa::resetFaceGeom
void resetFaceGeom()
reset status of faceGeomInfo
Definition: faceutility_imp.cc:599
Dune::ALU3dGridGeometricFaceInfoBase::resetFaceGeom
void resetFaceGeom()
reset status of faceGeomInfo
Definition: faceutility_imp.cc:485
Dune::ALU3dGridFaceInfo::parallel
bool parallel() const
return whether we are in a parallel environment or not
Definition: faceutility.hh:135
Dune::ALU3dImplTraits
Definition: alu3dinclude.hh:259
Dune::ALU3dGridFaceInfo
Definition: faceutility.hh:42
Dune::ALU3dGridGeometricFaceInfoHexa::outerNormal
NormalType & outerNormal(const FieldVector< alu3d_ctype, 2 > &local) const
Definition: faceutility_imp.cc:635
Dune::ALU3dGridGeometricFaceInfoBase::getReferenceElement
static const ReferenceElementType & getReferenceElement()
Definition: faceutility.hh:306
Dune::tetra
Definition: topology.hh:12
Dune::ALU3dGridSurfaceMappingFactory< dim, dimworld, hexa, Comm >::GEOFaceType
ALU3dGridFaceInfo< dim, dimworld, hexa, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:213
Dune::ALU3dGridFaceInfo::GEOPeriodicType
ImplTraits::GEOPeriodicType GEOPeriodicType
Definition: faceutility.hh:52
Dune::ALU3dGridFaceInfo::isElementLike
bool isElementLike() const
returns true if outerEntity casts into a helement
Definition: faceutility_imp.cc:286
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::ReferenceFaceContainerType
ReferenceElements< alu3d_ctype, 1 > ReferenceFaceContainerType
Definition: faceutility.hh:429
Dune::ALU3dGridGeometricFaceInfoBase::getReferenceFace
static const ReferenceFaceType & getReferenceFace()
Definition: faceutility.hh:313
Dune::ALU3dGridGeometricFaceInfoBase::generatedLocal_
bool generatedLocal_
Definition: faceutility.hh:304
Dune::ALU3dGridGeometricFaceInfoBase::ConnectorType
ALU3dGridFaceInfo< dim, dimworld, type, Comm > ConnectorType
Definition: faceutility.hh:266
Dune::ALU3dGridFaceInfo::conformanceState
ConformanceState conformanceState() const
Description of conformance on the face.
Definition: faceutility_imp.cc:438
Dune::ALU3dGridGeometricFaceInfoHexa< 2, dimworld, Comm >::ConnectorType
ALU3dGridFaceInfo< 2, dimworld, hexa, Comm > ConnectorType
Definition: faceutility.hh:568
Dune::ALU3dGridSurfaceMappingFactory< dim, dimworld, tetra, Comm >::SurfaceMappingType
ALU3DSPACE LinearSurfaceMapping SurfaceMappingType
Definition: faceutility.hh:196
Dune::ALU3dGridGeometricFaceInfoHexa::SurfaceMappingType
SurfaceNormalCalculator SurfaceMappingType
Definition: faceutility.hh:378
Dune::ALU3dGridGeometricFaceInfoBase::coordsSelfLocal_
CoordinateType coordsSelfLocal_
Definition: faceutility.hh:300
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::ElementTopo
ElementTopologyMapping< type > ElementTopo
Definition: faceutility.hh:423
Dune::ALU3dGridGeometricFaceInfoHexa< 2, dimworld, Comm >::NormalType
FieldVector< alu3d_ctype, dimworld > NormalType
Definition: faceutility.hh:563
Dune::ALU3dGridGeometricFaceInfoTetra::resetFaceGeom
void resetFaceGeom()
reset status of faceGeomInfo
Definition: faceutility_imp.cc:528
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::ReferenceElementType
ReferenceElement< alu3d_ctype, 2 > ReferenceElementType
Definition: faceutility.hh:432
Dune::ALU3dGridGeometricFaceInfoHexa< 2, dimworld, Comm >::GEOElementType
ALU3dGridFaceInfo< 2, dimworld, hexa, Comm >::GEOElementType GEOElementType
Definition: faceutility.hh:566
Dune::ALU3dGridFaceInfo::innerBoundary
bool innerBoundary() const
returns true if inside is a ghost entity
Definition: faceutility_imp.cc:291
Dune::NonConformingFaceMapping
Definition: mappings.hh:385
Dune::ALU3dGridFaceInfo::REFINED_OUTER
Definition: faceutility.hh:48
Dune::ALU3dGridFaceInfo::~ALU3dGridFaceInfo
~ALU3dGridFaceInfo()
Destructor.
Definition: faceutility_imp.cc:265
Dune::ALU3dGridGeometricFaceInfoTetra::outerNormal
NormalType & outerNormal(const FieldVector< alu3d_ctype, 2 > &local) const
Definition: faceutility_imp.cc:562
Dune::ALU3dGridGeometricFaceInfoHexa< 2, dimworld, Comm >::FaceTopo
Base::FaceTopo FaceTopo
Definition: faceutility.hh:564
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::connector_
const ConnectorType & connector_
Definition: faceutility.hh:486
Dune::ALU3dGridGeometricFaceInfoBase< dim, dimworld, hexa, Comm >::SideIdentifier
SideIdentifier
Definition: faceutility.hh:253
mappings.hh
Dune::ALU3dGridGeometricFaceInfoTetra< 2, dimworld, Comm >::FaceTopo
Base::FaceTopo FaceTopo
Definition: faceutility.hh:520
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::ReferenceFaceType
ReferenceElement< alu3d_ctype, 1 > ReferenceFaceType
Definition: faceutility.hh:434
Dune::simplex
use only simplex elements (i.e., triangles or tetrahedra)
Definition: declaration.hh:18
Dune::ALU3dGridFaceInfo::boundaryFace
const BNDFaceType & boundaryFace() const
Definition: faceutility_imp.cc:351
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::coordsNeighborLocal_
LocalCoordinateType coordsNeighborLocal_
Definition: faceutility.hh:489
Dune::ALU3dGridGeometricFaceInfoTetra::NormalType
FieldVector< alu3d_ctype, 3 > NormalType
Definition: faceutility.hh:331
Dune::alu3d_ctype
double alu3d_ctype
Definition: alu3dinclude.hh:85
alu3dinclude.hh
Dune::ALU3dGridGeometricFaceInfoTetra< 2, dimworld, Comm >::GEOFaceType
ALU3dGridFaceInfo< 2, dimworld, tetra, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:521
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::CoordinateType
FieldMatrix< alu3d_ctype, numVerticesPerFace, dimworld > CoordinateType
Definition: faceutility.hh:443
Dune::ALU3dGridGeometricFaceInfoBase::ReferenceElementType
ReferenceElement< alu3d_ctype, 3 > ReferenceElementType
Definition: faceutility.hh:249
Dune::ALU3dGridFaceInfo::GEOElementType
ImplTraits::GEOElementType GEOElementType
Definition: faceutility.hh:51
Dune::ALU3dGridGeometricFaceInfoBase::GEOFaceType
ALU3dGridFaceInfo< dim, dimworld, type, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:263
Dune::ALU3dGridFaceInfo::CONFORMING
Definition: faceutility.hh:48
Dune::ALU3dGridFaceInfo::outerTwist
int outerTwist() const
Twist of the face seen from the outer element.
Definition: faceutility_imp.cc:415
Dune::ALU3dGridFaceInfo::REFINED_INNER
Definition: faceutility.hh:48
Dune::ALU3dGridGeometricFaceInfoBase::FaceTopo
FaceTopologyMapping< type > FaceTopo
Definition: faceutility.hh:240
Dune::ALU3dGridGeometricFaceInfoHexa
Definition: faceutility.hh:368
Dune::ALU3dGridFaceInfo::setFlags
void setFlags(const bool conformingRefinement, const bool ghostCellsEnabled)
reset flags
Definition: faceutility_imp.cc:32
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::ReferenceElementContainerType
ReferenceElements< alu3d_ctype, 2 > ReferenceElementContainerType
Definition: faceutility.hh:427
Dune::ALU3dGridFaceInfo::GhostPairType
ImplTraits::GhostPairType GhostPairType
Definition: faceutility.hh:54
Dune::ALU3dGridFaceInfo::ghostCellsEnabled
bool ghostCellsEnabled() const
return true if ghost cells are enabled
Definition: faceutility.hh:141
Dune::fieldVector2alu3d_ctype
alu3d_ctype(& fieldVector2alu3d_ctype(FieldVector< alu3d_ctype, dim > &val))[dim]
Definition: faceutility.hh:21
Dune::cube
use only cube elements (i.e., quadrilaterals or hexahedra)
Definition: declaration.hh:19
Dune::ALU3dGridFaceInfo::conformingRefinement
bool conformingRefinement() const
return true if conforming refinement is enabled
Definition: faceutility.hh:138
Dune::ALU3dGridGeometricFaceInfoBase::generatedGlobal_
bool generatedGlobal_
Definition: faceutility.hh:303
Dune::ALU3dGridGeometricFaceInfoTetra::FaceTopo
Base::FaceTopo FaceTopo
Definition: faceutility.hh:332
Dune::ALU3dGridGeometricFaceInfoBase::ALU3dGridGeometricFaceInfoBase
ALU3dGridGeometricFaceInfoBase(const ConnectorType &)
Definition: faceutility_imp.cc:474
Dune::ALU3dGridFaceInfo::innerTwist
int innerTwist() const
Twist of the face seen from the inner element.
Definition: faceutility_imp.cc:379
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::generatedLocal_
bool generatedLocal_
Definition: faceutility.hh:492
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::getReferenceElement
static const ReferenceElementType & getReferenceElement()
Definition: faceutility.hh:494
Dune::ALU3dGridGeometricFaceInfoBase
Definition: faceutility.hh:233
Dune::ALU3dGridGeometricFaceInfoHexa< 2, dimworld, Comm >::GEOFaceType
ALU3dGridFaceInfo< 2, dimworld, hexa, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:565
Dune::SurfaceNormalCalculator
A bilinear surface mapping.
Definition: mappings.hh:87
Dune::ALU3dGridSurfaceMappingFactory
Definition: faceutility.hh:189
Dune::ALU3dGridGeometricFaceInfoHexa::FaceTopo
Base::FaceTopo FaceTopo
Definition: faceutility.hh:376
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::getReferenceFace
static const ReferenceFaceType & getReferenceFace()
Definition: faceutility.hh:501
Dune::ALU3dGridFaceInfo::GEOFaceType
ImplTraits::GEOFaceType GEOFaceType
Definition: faceutility.hh:50
Dune::ALU3dGridGeometricFaceInfoBase::ReferenceFaceContainerType
ReferenceElements< alu3d_ctype, 2 > ReferenceFaceContainerType
Definition: faceutility.hh:246
Dune::FaceTopologyMapping
Definition: topology.hh:151
Dune::ALU3dGridGeometricFaceInfoBase::OUTER
Definition: faceutility.hh:253
Dune::ALU3dGridGeometricFaceInfoBase::NormalType
FieldVector< alu3d_ctype, 3 > NormalType
Definition: faceutility.hh:258
ALU3DSPACE
#define ALU3DSPACE
Definition: alu3dinclude.hh:24
Dune::ALU3dGridGeometricFaceInfoHexa::GEOFaceType
ALU3dGridFaceInfo< dim, dimworld, hexa, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:377
Dune::ALU3dGridGeometricFaceInfoTetra< 2, dimworld, Comm >::GEOElementType
ALU3dGridFaceInfo< 2, dimworld, tetra, Comm >::GEOElementType GEOElementType
Definition: faceutility.hh:522
Dune::ALU3dGridFaceInfo::outerALUFaceIndex
int outerALUFaceIndex() const
Local number of the face in outer element (ALU3dGrid reference element)
Definition: faceutility_imp.cc:432
Dune::ALU3dGridGeometricFaceInfoTetra::ALU3dGridGeometricFaceInfoTetra
ALU3dGridGeometricFaceInfoTetra(const ConnectorType &ctor)
Definition: faceutility_imp.cc:522
Dune::ALU3dGridFaceInfo::ALU3dGridFaceInfo
ALU3dGridFaceInfo(const bool levelIntersection=false)
constructor creating empty face info
Definition: faceutility_imp.cc:10
Dune::ALU3dGridSurfaceMappingFactory< dim, dimworld, hexa, Comm >::SurfaceMappingType
BilinearSurfaceMapping SurfaceMappingType
Definition: faceutility.hh:212
Dune::ALU3dGridGeometricFaceInfoTetra< 2, dimworld, Comm >::NormalType
FieldVector< alu3d_ctype, dimworld > NormalType
Definition: faceutility.hh:519
faceutility_imp.cc
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::coordsSelfLocal_
LocalCoordinateType coordsSelfLocal_
Definition: faceutility.hh:488
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::generatedGlobal_
bool generatedGlobal_
Definition: faceutility.hh:491
Dune::ALU3dGridFaceInfo::IMPLElementType
ImplTraits::IMPLElementType IMPLElementType
Definition: faceutility.hh:53
Dune::ALU3dGridGeometricFaceInfoBase::INNER
Definition: faceutility.hh:253
Dune::ALU3dGridFaceInfo::segmentIndex
int segmentIndex() const
return boundary segment index if intersection is with domain boundary
Definition: faceutility_imp.cc:366
Dune::ALU3dGridGeometricFaceInfoTetra< 2, dimworld, Comm >::ConnectorType
ALU3dGridFaceInfo< 2, dimworld, tetra, Comm > ConnectorType
Definition: faceutility.hh:523
Dune::ALU3dGridGeometricFaceInfoTetra::ConnectorType
ALU3dGridFaceInfo< dim, dimworld, tetra, Comm > ConnectorType
Definition: faceutility.hh:335
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::LocalCoordinateType
FieldMatrix< alu3d_ctype, numVerticesPerFace, 2 > LocalCoordinateType
Definition: faceutility.hh:446
Dune
Definition: alu3dinclude.hh:79
Dune::ALU3dGridFaceInfo::boundaryId
int boundaryId() const
return boundary id if intersection is with domain boundary
Definition: faceutility_imp.cc:373
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::SideIdentifier
SideIdentifier
Definition: faceutility.hh:436
Dune::ALU3dGridSurfaceMappingFactory< dim, dimworld, tetra, Comm >::GEOFaceType
ALU3dGridFaceInfo< dim, dimworld, tetra, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:197
Dune::ALU3dGridFaceInfo::innerEntity
const GEOElementType & innerEntity() const
Returns the inner element at that face.
Definition: faceutility_imp.cc:327
Dune::ALU3dGridFaceInfo::innerFace
const BNDFaceType & innerFace() const
Definition: faceutility_imp.cc:343
Dune::ALU3dGridFaceInfo::ghostBoundary
bool ghostBoundary() const
Definition: faceutility_imp.cc:312
Dune::ALU3dGridFaceInfo::neighbor
bool neighbor() const
returns true if outside is something meaningfull
Definition: faceutility_imp.cc:306
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::GEOFaceType
ALU3dGridFaceInfo< 2, dimworld, type, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:448
Dune::ALU3dGridGeometricFaceInfoBase< 2, dimworld, type, Comm >::FaceTopo
FaceTopologyMapping< type > FaceTopo
Definition: faceutility.hh:424
Dune::ALU3dGridGeometricFaceInfoBase::numVerticesPerFace
Definition: faceutility.hh:254
Dune::ALU3dGridGeometricFaceInfoBase::ElementTopo
ElementTopologyMapping< type > ElementTopo
Definition: faceutility.hh:239
topology.hh
Dune::ALU3dGridSurfaceMappingFactory< dim, dimworld, tetra, Comm >::CoordinateType
FieldMatrix< alu3d_ctype, numVerticesPerFace, 3 > CoordinateType
Definition: faceutility.hh:201