LifeV
ElementShapes.hpp File Reference

Contains the basic element shapes, to be used by Geometric and Finite Elements. More...

#include <utility>
#include <lifev/core/LifeV.hpp>
+ Include dependency graph for ElementShapes.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  nullShape
 
class  GeoDim< geoDimensions >
 dummy class for selecting correct function specializations based on geometry dimensions (1,2,3). More...
 
class  Point
 
class  Line
 
class  Triangle
 
class  Quad
 
class  Tetra
 
class  Hexa
 
class  GeoPoint
 A Geometric Shape. More...
 
class  LinearLine
 A Geometric Shape. More...
 
class  QuadraticLine
 A Geometric Shape. More...
 
class  LinearTriangle
 A Geometric Shape. More...
 
class  QuadraticTriangle
 A Geometric Shape. More...
 
class  LinearQuad
 A Geometric Shape. More...
 
class  QuadraticQuad
 A Geometric Shape. More...
 
class  LinearTetra
 A Geometric Shape. More...
 
class  LinearTetraBubble
 A Geometric Shape. More...
 
class  QuadraticTetra
 A Geometric Shape. More...
 
class  LinearHexa
 A Geometric Shape. More...
 
class  QuadraticHexa
 A Geometric Shape. More...
 

Namespaces

 LifeV
 Default Physical Solver.
 

Enumerations

enum  ReferenceShapes {
  NONE, POINT, LINE, TRIANGLE,
  QUAD, HEXA, PRISM, TETRA
}
 
enum  ReferenceGeometry { VERTEX = 0, EDGE = 1, FACE = 2, VOLUME = 3 }
 

Functions

template<typename GeoShapeType >
ID reversePoint (ID const &pointId)
 A utility to invert point numbering on a GeoShape. More...
 
UInt shapeDimension (const ReferenceShapes &shape)
 
template<>
ID reversePoint< LinearLine > (ID const &pointId)
 Inverts a line. More...
 
template<>
ID reversePoint< QuadraticLine > (ID const &pointId)
 
template<>
ID reversePoint< LinearTriangle > (ID const &pointId)
 
template<>
ID reversePoint< QuadraticTriangle > (ID const &pointId)
 
template<>
ID reversePoint< LinearQuad > (ID const &pointId)
 Specialization. More...
 
template<>
ID reversePoint< QuadraticQuad > (ID const &pointId)
 Specialization. More...
 
template<>
ID reversePoint< LinearTetra > (ID const &pointId)
 Specialization. More...
 
template<>
ID reversePoint< LinearTetraBubble > (ID const &pointId)
 
template<>
ID reversePoint< QuadraticTetra > (ID const &pointId)
 
template<>
ID reversePoint< LinearHexa > (ID const &pointId)
 
template<>
ID reversePoint< QuadraticHexa > (ID const &pointId)
 

Detailed Description

Contains the basic element shapes, to be used by Geometric and Finite Elements.

Author
Luca Formaggia
Contributor:
Zhen Wang zwang.nosp@m.26@e.nosp@m.mory..nosp@m.edu
Contributor:
Tiziano Passerini tizia.nosp@m.no@m.nosp@m.athcs.nosp@m..emo.nosp@m.ry.ed.nosp@m.u

These classes provide the most basic definitions for the geometric elements. The variables names are self-explanatory.

The Basis Geometric Shapes (GeoShape) are derived from a set of classes called Basis Reference Shapes (BasRefSha), which contains the very basic information about the reference element geometries supported by the library (reference element geometry=geometry of the finite element in the reference space.)

A Basis Geometric Shape contains (when relevant) the following methods

  1. static ID edgeToPoint(ID const jEdge, ID const iPoint); which returns the local ID of the i-th point of the j-th edge of the GeoShape

  2. static ID faceToPoint(ID const jFace, ID const iPoint); which returns the local ID of the i-th point of the j-th face of the GeoShape

  3. static pair<ID,bool> faceToEdge(ID const jFace, ID const iEdge); which returns the local numbering of the i-th edge on the j-th face. It returns also if the orientation of the edge on the face is consistent with that of the same edge on the element
Note
The methods edge to point-ID (EtoP) and Face to point-ID (FtoP) return the local id number of points on faces and edges (when relevant)
We follow the convention of indicating THE VERTICES FIRST in the list of dofs

Definition in file ElementShapes.hpp.