65 #ifndef ELEMENTSHAPES_H 66 #define ELEMENTSHAPES_H 1
69 #include <lifev/core/LifeV.hpp> 85 template <
typename GeoShapeType>
141 template<
int geoDimensions>
162 ERROR_MSG (
"edgeToPoint not implemented for geo Point elements." );
163 return static_cast<
ID> (0);
206 ERROR_MSG (
"FaceToEdge not implemented for geo Line elements." );
207 return std::make_pair (
static_cast<ID> (0),
true );
239 return std::make_pair ( jEdge,
true );
276 return std::make_pair ( jEdge,
true );
394 inline ID reversePoint<LinearLine> (
ID const& pointId )
396 static ID _rid[] = {1, 0};
397 return _rid[pointId];
423 inline ID reversePoint<QuadraticLine> (
ID const& pointId )
425 static ID _rid[] = {1, 0, 2};
426 return _rid[pointId];
467 inline ID reversePoint<LinearTriangle> (
ID const& pointId )
469 static ID _rid[] = {1, 0, 2};
470 return _rid[pointId];
509 inline ID reversePoint<QuadraticTriangle> (
ID const& pointId )
511 static ID _rid[] = {1, 0, 2, 3, 5, 4};
512 return _rid[pointId];
555 inline ID reversePoint<LinearQuad> (
ID const& pointId )
557 static ID _rid[] = {3, 2, 1, 0};
558 return _rid[pointId];
599 inline ID reversePoint<QuadraticQuad> (
ID const& pointId )
601 static ID _rid[] = {3, 2, 1, 0, 6, 5, 4, 7, 8};
602 return _rid[pointId];
642 return faceToEdge (iFacet, jRidge).first;
654 inline ID reversePoint<LinearTetra> (
ID const& pointId )
656 static ID _rid[] = {1, 0, 2, 3};
657 return _rid[pointId];
697 return faceToEdge (iFacet, jRidge).first;
708 inline ID reversePoint<LinearTetraBubble> (
ID const& pointId )
710 static ID _rid[] = {1, 0, 2, 3, 4};
711 return _rid[pointId];
752 return faceToEdge (iFacet, jRidge).first;
764 inline ID reversePoint<QuadraticTetra> (
ID const& pointId )
766 static ID _rid[] = {1, 0, 2, 3, 4, 6, 5, 8, 7, 9};
767 return _rid[pointId];
807 return faceToEdge (iFacet, jRidge).first;
819 inline ID reversePoint<LinearHexa> (
ID const& pointId )
821 static ID _rid[] = {3, 2, 1, 0, 7, 6, 5, 4};
822 return _rid[pointId];
863 return faceToEdge (iFacet, jRidge).first;
875 inline ID reversePoint<QuadraticHexa> (
ID const& pointId )
877 static ID _rid[] = {3, 2, 1, 0, 7, 6, 5, 4,
878 10, 9, 8, 11, 15, 14, 13, 12,
879 18, 17, 16, 19, 20, 23, 22, 21, 24, 25, 26
881 return _rid[pointId];
static const UInt S_numPointsPerVertex
Number of points per vertex.
static const UInt S_numPointsPerVertex
Number of points per vertex.
static const UInt S_numPointsPerElement
Number of points per element.
static const UInt S_numPointsPerElement
Number of points per element.
static const UInt S_numPointsPerElement
Number of points per element.
static const UInt S_numPointsPerElement
Number of points per element.
static const UInt S_numPointsPerPeak
Number of points per peak.
static const UInt S_numPointsPerFacet
Number of points per facet.
static ID facetToRidge(ID const &iFacet, ID const &jRidge)
static ID faceToPoint(ID const &iFace, ID const &jPoint)
static const UInt S_nDimensions
Dimensionality.
static const ReferenceGeometry S_geometry
Identify the geometric entity.
static const UInt S_numPointsPerVolume
Number of points per volume.
static const UInt S_numRidges
Number of ridges.
static const UInt S_numPointsPerEdge
Number of points per edge.
static const UInt S_numEdges
Number of edges.
static const UInt S_numPointsPerFacet
Number of points per facet.
static const UInt S_numFaces
Number of faces.
static const UInt S_nDimensions
Dimensionality.
GeoPoint GeoBShape
Geometric shape of the boundary.
static const UInt S_numPointsPerElement
Number of points per element.
static const ReferenceShapes S_shape
Identify the shape.
static const UInt S_numRidges
Number of ridges.
static const UInt S_numPointsPerFace
Number of points per face.
static ID edgeToPoint(ID const &iEdge, ID const &jPoint)
static const UInt S_numVertices
Number of vertices.
static const UInt S_numPointsPerRidge
Number of points per ridge.
static ID facetToPeak(ID const &iFacet, ID const &jPeak)
static ID facetToPeak(ID const &iFacet, ID const &jPeak)
static const UInt S_numPointsPerVolume
Number of points per volume.
static const UInt S_numPointsPerPeak
Number of points per peak.
static const UInt S_numPointsPerFacet
Number of points per facet.
static const UInt S_nDimensions
Dimensionality.
static const UInt S_numPoints
Number of points.
static const UInt S_numPointsPerElement
Number of points per element.
static const UInt S_numEdges
Number of edges.
static ID facetToPoint(ID const &iFacet, ID const &jPoint)
static const UInt S_numPointsPerRidge
Number of points per ridge.
static const UInt S_numPointsPerFace
Number of points per face.
static const UInt S_numEdges
Number of edges.
static const UInt S_numPointsPerElement
Number of points per element.
static const UInt S_numFacets
Number of facets.
static ID edgeToPoint(ID const &iEdge, ID const &jPoint)
static ID edgeToPoint(ID const &, ID const &jPoint)
static ID facetToRidge(ID const &iFacet, ID const &jRidge)
static ID edgeToPoint(ID const &iEdge, ID const &jPoint)
GeoPoint GeoBShape
Geometric shape of the boundary.
static ID facetToPoint(ID const &iFacet, ID const &jPoint)
static const UInt S_numVertices
Number of vertices.
static const UInt S_numPointsPerPeak
Number of points per peak.
static ID edgeToPoint(ID const &iEdge, ID const &jPoint)
static const UInt S_numFaces
Number of faces.
static const UInt S_numFaces
Number of faces.
static const UInt S_numPointsPerFacet
Number of points per facet.
static ID faceToPoint(ID const &iFace, ID const &jPoint)
static const UInt S_numPointsPerElement
Number of points per element.
static const ReferenceGeometry S_geometry
Identify the geometric entity.
static const UInt S_numPointsPerEdge
Number of points per edge.
static ID edgeToPoint(ID const &iEdge, ID const &jPoint)
void updateInverseJacobian(const UInt &iQuadPt)
static const UInt S_numFacets
Number of facets.
static const UInt S_numPointsPerFace
Number of points per face.
static const UInt S_numPointsPerElement
Number of points per element.
static ID facetToRidge(ID const &, ID const &)
static ID faceToPoint(ID const &, ID const &jPoint)
static const UInt S_numEdges
Number of edges.
static const ReferenceGeometry S_geometry
Identify the geometric entity.
static const UInt S_nDimensions
Dimensionality.
static ID edgeToPoint(ID const &iEdge, ID const &jPoint)
static const UInt S_numPointsPerVolume
Number of points per volume.
static ID facetToRidge(ID const &iFacet, ID const &jRidge)
static const UInt S_numPoints
Number of points.
static const UInt S_numPointsPerPeak
Number of points per peak.
static ID edgeToPoint(ID const &iEdge, ID const &jPoint)
QuadraticTriangle GeoBShape
static std::pair< ID, bool > faceToEdge(ID const &, ID const &jEdge)
static const UInt S_numPointsPerRidge
Number of points per ridge.
static const UInt S_nDimensions
Dimensionality.
static ID facetToPeak(ID const &iFacet, ID const &jPeak)
static const UInt S_numPointsPerVertex
Number of points per vertex.
static const UInt S_numEdges
Number of edges.
static ID facetToPoint(ID const &iFacet, ID const &jPoint)
static const UInt S_numPeaks
Number of peaks.
static const UInt S_numPointsPerVertex
Number of points per vertex.
static const UInt S_numPoints
Number of points.
static const UInt S_nDimensions
Dimensionality.
dummy class for selecting correct function specializations based on geometry dimensions (1...
static ID facetToRidge(ID const &iFacet, ID const &jRidge)
static const UInt S_numRidges
Number of ridges.
static const UInt S_numPointsPerFace
Number of points per face.
static const UInt S_numPointsPerPeak
Number of points per peak.
static const UInt S_numVertices
Number of vertices.
static const UInt S_numPointsPerRidge
Number of points per ridge.
static const UInt S_numRidges
Number of ridges.
static const UInt S_numPointsPerRidge
Number of points per ridge.
static const UInt S_numPointsPerEdge
Number of points per edge.
ID reversePoint(ID const &pointId)
A utility to invert point numbering on a GeoShape.
static const UInt S_numPointsPerFacet
Number of points per facet.
static ID facetToPoint(ID const &iFacet, ID const &jPoint)
static ID facetToPoint(ID const &iFacet, ID const &jPoint)
static ID edgeToPoint(ID const &iEdge, ID const &jPoint)
static const UInt S_numPointsPerFacet
Number of points per facet.
static const UInt S_numFacets
Number of facets.
static const ReferenceShapes S_shape
Identify the shape.
static const UInt S_numPointsPerEdge
Number of points per edge.
static std::pair< ID, bool > faceToEdge(ID const &iFace, ID const &jEdge)
static const UInt S_numEdges
Number of edges.
static const ReferenceShapes S_shape
Identify the shape.
static const UInt S_numVertices
Number of vertices.
static const UInt S_numPointsPerPeak
Number of points per peak.
static const UInt S_numPointsPerFacet
Number of points per facet.
static const ReferenceGeometry S_geometry
Identify the geometric entity.
static const UInt S_numPointsPerVertex
Number of points per vertex.
static ID facetToPoint(ID const &iFacet, ID const &jPoint)
static const UInt S_numPointsPerVolume
Number of points per volume.
static const UInt S_numFaces
Number of faces.
static const ReferenceShapes S_shape
Identify the shape.
static ID facetToRidge(ID const &iFacet, ID const &jRidge)
static const UInt S_numPointsPerFace
Number of points per face.
static const UInt S_numPointsPerEdge
Number of points per edge.
static const UInt S_numPointsPerRidge
Number of points per ridge.
static const UInt S_numPointsPerVertex
Number of points per vertex.
static ID facetToPeak(ID const &, ID const &)
static const UInt S_numPoints
Number of points.
static const UInt S_numFacets
Number of facets.
static ID edgeToPoint(ID const &, ID const &)
static const UInt S_numPointsPerPeak
Number of points per peak.
static const UInt S_numPointsPerFacet
Number of points per facet.
static const UInt S_numPointsPerVolume
Number of points per volume.
static const UInt S_numPointsPerFacet
Number of points per facet.
static const UInt S_numVertices
Number of vertices.
static const UInt S_numPointsPerRidge
Number of points per ridge.
static const UInt S_numPoints
Number of points.
static const UInt S_numPointsPerEdge
Number of points per edge.
static const UInt S_numRidges
Number of ridges.
static const ReferenceShapes S_shape
Identify the shape.
static const UInt S_numPointsPerFace
Number of points per face.
static const UInt S_numPointsPerVertex
Number of points per vertex.
static const UInt S_numPointsPerFacet
Number of points per facet.
static const UInt S_numPointsPerRidge
Number of points per ridge.
static const UInt S_numPointsPerFace
Number of points per face.
static const ReferenceGeometry S_geometry
Identify the geometric entity.
static ID faceToPoint(ID const &iFace, ID const &jPoint)
static std::pair< ID, bool > faceToEdge(ID const &, ID const &)
static const UInt S_numPointsPerFacet
Number of points per facet.
static const UInt S_numPointsPerFace
Number of points per face.
static ID edgeToPoint(ID const &iEdge, ID const &jPoint)
static ID facetToPoint(ID const &iFacet, ID const &jPoint)
static const UInt S_numPoints
Number of points.
static const ReferenceGeometry S_geometry
Identify the geometric entity.
static const UInt S_numPoints
Number of points.
static const UInt S_numFacets
Number of facets.
static ID faceToPoint(ID const &iFace, ID const &jPoint)
static const UInt S_numPointsPerPeak
Number of points per peak.
static const UInt S_numPointsPerEdge
Number of points per edge.
static ID facetToPoint(ID const &iFacet, ID const &jPoint)
static ID facetToPeak(ID const &, ID const &)
static const UInt S_numPointsPerPeak
Number of points per peak.
static const UInt S_numFaces
Number of faces.
static std::pair< ID, bool > faceToEdge(ID const &iFace, ID const &jEdge)
static const UInt S_numPoints
Number of points.
static const UInt S_numPointsPerEdge
Number of points per edge.
static ID facetToRidge(ID const &iFacet, ID const &jRidge)
static const UInt S_numPeaks
Number of peaks.
static const UInt S_numPointsPerFacet
Number of points per facet.
static ID facetToRidge(ID const &iFacet, ID const &jRidge)
static const UInt S_numPointsPerPeak
Number of points per peak.
static const UInt S_numPoints
Number of points.
static ID faceToPoint(ID const &iFace, ID const &jPoint)
static ID faceToPoint(ID const &, ID const &jPoint)
static const UInt S_numPointsPerEdge
Number of points per edge.
static const UInt S_numFaces
Number of faces.
static const UInt S_numPointsPerVertex
Number of points per vertex.
static const UInt S_numPointsPerElement
Number of points per element.
static const UInt S_numPeaks
Number of peaks.
static ID facetToPoint(ID const &iFacet, ID const &)
static const UInt S_numPointsPerRidge
Number of points per ridge.
static const UInt S_numPeaks
Number of peaks.
static const UInt S_numPointsPerPeak
Number of points per peak.
UInt shapeDimension(const ReferenceShapes &shape)
static const UInt S_numPointsPerRidge
Number of points per ridge.
static const UInt S_numVertices
Number of vertices.
static ID facetToPoint(ID const &iFacet, ID const &jPoint)
static const UInt S_numPeaks
Number of peaks.
static std::pair< ID, bool > faceToEdge(ID const &, ID const &jEdge)
static ID facetToRidge(ID const &iFacet, ID const &jRidge)
static ID facetToPeak(ID const &iFacet, ID const &jPeak)
static const UInt S_numPeaks
Number of peaks.
static const UInt S_numPointsPerRidge
Number of points per ridge.
nullShape GeoBShape
Geometric shape of the boundary.
static const UInt S_numPointsPerElement
Number of points per element.
static const UInt S_numPointsPerVertex
Number of points per vertex.
static const UInt S_numPointsPerElement
Number of points per element.
static const UInt S_numPointsPerEdge
Number of points per edge.
static const UInt S_numFacets
Number of facets.
static const UInt S_numPointsPerFace
Number of points per face.
static const UInt S_numPointsPerVertex
Number of points per vertex.
static const UInt S_numPointsPerVertex
Number of points per vertex.
uint32_type UInt
generic unsigned integer (used mainly for addressing)
static const UInt S_numRidges
Number of ridges.
static const ReferenceShapes S_shape
Identify the shape.
static const UInt S_numPointsPerEdge
Number of points per edge.
static const UInt S_numPointsPerRidge
Number of points per ridge.
static ID facetToPeak(ID const &, ID const &)
static const UInt S_numPoints
Number of points.
static const UInt S_numPoints
Number of points.
static ID facetToPeak(ID const &iFacet, ID const &jPeak)
static ID facetToRidge(ID const &iFacet, ID const &jRidge)
static const UInt S_numPoints
Number of points.
static const UInt S_numPointsPerPeak
Number of points per peak.