dune-alugrid 2.8.0
Loading...
Searching...
No Matches
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
13namespace 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
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) ?
313 ReferenceElementContainerType :: simplex() :
314 ReferenceElementContainerType :: cube();
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) ?
494 ReferenceElementContainerType :: simplex() :
495 ReferenceElementContainerType :: cube();
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:7
Definition: alu3dinclude.hh:63
@ hexa
Definition: topology.hh:12
@ tetra
Definition: topology.hh:12
alu3d_ctype(& fieldVector2alu3d_ctype(FieldVector< alu3d_ctype, dim > &val))[dim]
Definition: faceutility.hh:22
double alu3d_ctype
Definition: alu3dinclude.hh:68
Definition: alu3dinclude.hh:242
Definition: faceutility.hh:44
bool isElementLike() const
returns true if outerEntity casts into a helement
Definition: faceutility_imp.cc:288
int outsideLevel() const
Definition: faceutility_imp.cc:359
int outerTwist() const
Twist of the face seen from the outer element.
Definition: faceutility_imp.cc:417
ImplTraits::GEOElementType GEOElementType
Definition: faceutility.hh:52
ImplTraits::GhostPairType GhostPairType
Definition: faceutility.hh:55
ConformanceState
Definition: faceutility.hh:49
@ 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:329
int innerALUFaceIndex() const
Local number of the face in inner element (ALU3dGrid reference element)
Definition: faceutility_imp.cc:429
const BNDFaceType & innerFace() const
Definition: faceutility_imp.cc:345
bool ghostBoundary() const
Definition: faceutility_imp.cc:314
bool ghostCellsEnabled() const
return true if ghost cells are enabled
Definition: faceutility.hh:142
int duneTwist(const int faceIdx, const int aluTwist) const
Twist of the face seen from the inner element.
Definition: faceutility_imp.cc:390
bool neighbor() const
returns true if outside is something meaningfull
Definition: faceutility_imp.cc:308
bool innerBoundary() const
returns true if inside is a ghost entity
Definition: faceutility_imp.cc:293
int boundaryId() const
return boundary id if intersection is with domain boundary
Definition: faceutility_imp.cc:375
bool boundary() const
returns true if the face lies on the domain boundary
Definition: faceutility_imp.cc:303
const GEOFaceType & face() const
Returns the ALU3dGrid face.
Definition: faceutility_imp.cc:322
int innerTwist() const
Twist of the face seen from the inner element.
Definition: faceutility_imp.cc:381
bool outerBoundary() const
Definition: faceutility_imp.cc:298
int outerALUFaceIndex() const
Local number of the face in outer element (ALU3dGrid reference element)
Definition: faceutility_imp.cc:434
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:337
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:440
const BNDFaceType & boundaryFace() const
Definition: faceutility_imp.cc:353
ImplTraits::BNDFaceType BNDFaceType
Definition: faceutility.hh:56
int segmentId() const
return boundary segment id if intersection is with domain boundary
Definition: faceutility_imp.cc:368
Definition: faceutility.hh:190
ALU3dGridFaceInfo< dim, dimworld, tetra, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:198
ALU3DSPACE LinearSurfaceMapping SurfaceMappingType
Definition: faceutility.hh:197
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:515
@ 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
static const ReferenceElementType & getReferenceElement()
Definition: faceutility.hh:309
const ConnectorType & connector_
Definition: faceutility.hh:299
ElementTopologyMapping< type > ElementTopo
Definition: faceutility.hh:240
SideIdentifier
Definition: faceutility.hh:254
@ OUTER
Definition: faceutility.hh:254
@ INNER
Definition: faceutility.hh:254
ALU3dGridFaceInfo< dim, dimworld, type, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:264
ALU3dGridGeometricFaceInfoBase(const ALU3dGridGeometricFaceInfoBase &)=default
FaceTopologyMapping< type > FaceTopo
Definition: faceutility.hh:241
void resetFaceGeom()
reset status of faceGeomInfo
Definition: faceutility_imp.cc:499
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
const CoordinateType & intersectionSelfLocal() const
Definition: faceutility_imp.cc:507
std::decay_t< decltype(ReferenceElementContainerType::general(std::declval< const Dune::GeometryType & >())) > ReferenceElementType
Definition: faceutility.hh:250
bool generatedGlobal_
Definition: faceutility.hh:306
std::decay_t< decltype(ReferenceFaceContainerType::general(std::declval< const Dune::GeometryType & >())) > ReferenceFaceType
Definition: faceutility.hh:252
Definition: faceutility.hh:323
ALU3dGridFaceInfo< dim, dimworld, tetra, Comm > ConnectorType
Definition: faceutility.hh:332
void resetFaceGeom()
reset status of faceGeomInfo
Definition: faceutility_imp.cc:532
void buildGlobalGeom(GeometryImp &geo) const
update global geometry
Definition: faceutility_imp.cc:548
NormalType & outerNormal(const FieldVector< alu3d_ctype, 2 > &local) const
Definition: faceutility_imp.cc:566
Base::FaceTopo FaceTopo
Definition: faceutility.hh:329
FieldVector< alu3d_ctype, 3 > NormalType
Definition: faceutility.hh:328
ALU3dGridFaceInfo< dim, dimworld, tetra, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:330
Definition: faceutility.hh:367
ALU3dGridFaceInfo< dim, dimworld, hexa, Comm > ConnectorType
Definition: faceutility.hh:377
SurfaceNormalCalculator SurfaceMappingType
Definition: faceutility.hh:375
ALU3dGridFaceInfo< dim, dimworld, hexa, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:374
void buildGlobalGeom(GeometryImp &geo) const
update global geometry
Definition: faceutility_imp.cc:621
NormalType & outerNormal(const FieldVector< alu3d_ctype, 2 > &local) const
Definition: faceutility_imp.cc:639
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:603
FaceTopologyMapping< type > FaceTopo
Definition: faceutility.hh:421
const ConnectorType & connector_
Definition: faceutility.hh:483
ALU3dGridFaceInfo< 2, dimworld, type, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:445
FieldVector< alu3d_ctype, dimworld > NormalType
Definition: faceutility.hh:437
LocalCoordinateType coordsSelfLocal_
Definition: faceutility.hh:485
static const ReferenceElementType & getReferenceElement()
Definition: faceutility.hh:491
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 > ConnectorType
Definition: faceutility.hh:448
ReferenceElements< alu3d_ctype, 2 > ReferenceElementContainerType
Definition: faceutility.hh:424
std::decay_t< decltype(ReferenceElementContainerType::general(std::declval< const Dune::GeometryType & >())) > ReferenceElementType
Definition: faceutility.hh:429
FieldMatrix< alu3d_ctype, numVerticesPerFace, dimworld > CoordinateType
Definition: faceutility.hh:440
std::decay_t< decltype(ReferenceFaceContainerType::general(std::declval< const Dune::GeometryType & >())) > ReferenceFaceType
Definition: faceutility.hh:431
Base::FaceTopo FaceTopo
Definition: faceutility.hh:511
ALU3dGridFaceInfo< 2, dimworld, tetra, Comm > ConnectorType
Definition: faceutility.hh:514
FieldVector< alu3d_ctype, dimworld > NormalType
Definition: faceutility.hh:510
ALU3dGridFaceInfo< 2, dimworld, tetra, Comm >::GEOElementType GEOElementType
Definition: faceutility.hh:513
ALU3dGridFaceInfo< 2, dimworld, tetra, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:512
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
ALU3dGridFaceInfo< 2, dimworld, hexa, Comm >::GEOFaceType GEOFaceType
Definition: faceutility.hh:556
FieldVector< alu3d_ctype, dimworld > NormalType
Definition: faceutility.hh:554
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