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