CEPS
24.01
Cardiac ElectroPhysiology Simulator
|
Base class for reference finite elements.
The reference finite element is the element from which the jacobian transformation is computed. Example: for triangles, it is the (0,0)-(1,0)-(0,1) triangle.
This class contains basic information on the element. Derived elements should also contain barycentric coefficients for node positioning and the methods to compute the basis functions.
Definition at line 47 of file ReferenceFE.hpp.
#include <ReferenceFE.hpp>
Public Member Functions | |
ReferenceFE ()=delete | |
Deleted default constructor. More... | |
ReferenceFE (CepsUInt dimension, CepsFeLagrangeType type) | |
Constructor with geometrical dimension. More... | |
ReferenceFE (const ReferenceFE &that)=default | |
Copy constructor. More... | |
ReferenceFE & | operator= (const ReferenceFE &that)=default |
Copy assignement. More... | |
~ReferenceFE () | |
Destructor. More... | |
CepsCellType | getCellType () const |
CellType. More... | |
CepsUInt | getPolynomialOrder () const |
Order. More... | |
CepsUInt | getNumberOfDofs () const |
Number of degrees of freedom. More... | |
CepsMathDynamic1D | computeBasisFunctions (const CepsReal3D &point) |
Get values of basis functions at given point. More... | |
CepsMathDynamic2D | computeBasisFunctionDerivatives (const CepsReal3D &point) |
Get values of basis function derivatives at given point. More... | |
const CepsVector< CepsReal3D > & | getBasisVertices () const |
Get vertices used to create basis functions. More... | |
const CepsReal3D & | getBasisVertex (CepsUInt i) const |
Get vertex 'i' used to create basis functions. More... | |
CepsInt | getBasisVertexGeomCellIndex (CepsUInt i) const |
Returns the index in geom cell of a basis vertex. -1 if basis vertex does not match a geom vertex. More... | |
GeomNode * | getNodeOfOwnerForBasisVertex (CepsUInt i, GeomCell *cell) const |
Returns a node that determines ownership of a basis vertex, especially for those that do not match a geom vertex. If the node is located on the face of the element, we use the node of minimal index that define the face. If the node is inside the cell, use cell owner. More... | |
CepsReal3D | getTransformedBasisVertex (CepsUInt i, GeomCell *cell) const |
Get vertex 'i' used to create basis functions and transform it on GeomCell. More... | |
CepsUInt | getNumberOfGeomVertices () const |
Get number of vertices of the geometric cell the element is based on. More... | |
CepsUInt | getDimension () const |
Get dimension of geom object. More... | |
CepsUInt | getNumberOfBasisVertices () const |
Get number of vertices used to create basis functions. More... | |
CepsUInt | getNumberOfBasisFunctions () const |
Get number of basis functions. More... | |
CepsFeLagrangeType | getFEType () const |
The type of Lagragian Finite Element return. May change in the future ? More... | |
CepsReal | computeBasisFunction (CepsUInt iPhi, const CepsReal3D &point) |
Get values of single basis function at given point. More... | |
CepsReal3D | computeBasisFunctionDerivative (CepsUInt iPhi, const CepsReal3D &point) |
Get values of single basis function derivative at given point. More... | |
Protected Member Functions | |
void | buildBasisFunction () |
Build all basis function and Vertex used. More... | |
Protected Attributes | |
CepsFeLagrangeType | m_type |
CepsFeLagrangeType. More... | |
CepsUInt | m_dim |
Geometrical dimension. More... | |
CepsUInt | m_order |
Order of Lagrangian base polynomial. More... | |
CepsUInt | m_nbDofs |
Number of degrees of freedom. More... | |
CepsVector< Polynomial< 3U > > | m_basisFunctions |
List of basis functions. More... | |
CepsVector< CepsReal3D > | m_vertices |
List of vertex used to build basis functions. More... | |
CepsVector< CepsInt > | m_geomCellIndex |
CepsUInt | m_nGeomVertices |
Nb of geom vertices the elem is made of. More... | |
CepsVector< CepsSet< CepsUInt > > | m_ownerDeductionRule |
Dirty: map that contains rules used to attribute ownership of nodes that do not coincide with geometry. More... | |
|
delete |
Deleted default constructor.
ReferenceFE::ReferenceFE | ( | CepsUInt | dimension, |
CepsFeLagrangeType | type | ||
) |
Constructor with geometrical dimension.
Definition at line 33 of file ReferenceFE.cpp.
|
default |
Copy constructor.
ReferenceFE::~ReferenceFE | ( | ) |
Destructor.
Definition at line 44 of file ReferenceFE.cpp.
|
protected |
Build all basis function and Vertex used.
Definition at line 194 of file ReferenceFE.cpp.
CepsReal ReferenceFE::computeBasisFunction | ( | CepsUInt | iPhi, |
const CepsReal3D & | point | ||
) |
Get values of single basis function at given point.
Definition at line 315 of file ReferenceFE.cpp.
CepsReal3D ReferenceFE::computeBasisFunctionDerivative | ( | CepsUInt | iPhi, |
const CepsReal3D & | point | ||
) |
Get values of single basis function derivative at given point.
Definition at line 324 of file ReferenceFE.cpp.
CepsMathDynamic2D ReferenceFE::computeBasisFunctionDerivatives | ( | const CepsReal3D & | point | ) |
Get values of basis function derivatives at given point.
Definition at line 77 of file ReferenceFE.cpp.
CepsMathDynamic1D ReferenceFE::computeBasisFunctions | ( | const CepsReal3D & | point | ) |
Get values of basis functions at given point.
Definition at line 66 of file ReferenceFE.cpp.
const CepsReal3D & ReferenceFE::getBasisVertex | ( | CepsUInt | i | ) | const |
Get vertex 'i' used to create basis functions.
Definition at line 98 of file ReferenceFE.cpp.
Returns the index in geom cell of a basis vertex. -1 if basis vertex does not match a geom vertex.
Definition at line 107 of file ReferenceFE.cpp.
const CepsVector< CepsReal3D > & ReferenceFE::getBasisVertices | ( | ) | const |
Get vertices used to create basis functions.
Definition at line 92 of file ReferenceFE.cpp.
CepsCellType ReferenceFE::getCellType | ( | ) | const |
CellType.
Definition at line 48 of file ReferenceFE.cpp.
CepsUInt ReferenceFE::getDimension | ( | ) | const |
Get dimension of geom object.
Definition at line 164 of file ReferenceFE.cpp.
CepsFeLagrangeType ReferenceFE::getFEType | ( | ) | const |
The type of Lagragian Finite Element return. May change in the future ?
Definition at line 188 of file ReferenceFE.cpp.
Returns a node that determines ownership of a basis vertex, especially for those that do not match a geom vertex. If the node is located on the face of the element, we use the node of minimal index that define the face. If the node is inside the cell, use cell owner.
Definition at line 116 of file ReferenceFE.cpp.
CepsUInt ReferenceFE::getNumberOfBasisFunctions | ( | ) | const |
Get number of basis functions.
Definition at line 182 of file ReferenceFE.cpp.
CepsUInt ReferenceFE::getNumberOfBasisVertices | ( | ) | const |
Get number of vertices used to create basis functions.
Definition at line 176 of file ReferenceFE.cpp.
CepsUInt ReferenceFE::getNumberOfDofs | ( | ) | const |
Number of degrees of freedom.
Definition at line 60 of file ReferenceFE.cpp.
CepsUInt ReferenceFE::getNumberOfGeomVertices | ( | ) | const |
Get number of vertices of the geometric cell the element is based on.
Definition at line 170 of file ReferenceFE.cpp.
CepsUInt ReferenceFE::getPolynomialOrder | ( | ) | const |
Order.
Definition at line 54 of file ReferenceFE.cpp.
CepsReal3D ReferenceFE::getTransformedBasisVertex | ( | CepsUInt | i, |
GeomCell * | cell | ||
) | const |
Get vertex 'i' used to create basis functions and transform it on GeomCell.
i | the vertex id |
cell | the GeomCell used |
Definition at line 145 of file ReferenceFE.cpp.
|
default |
Copy assignement.
|
protected |
List of basis functions.
Definition at line 161 of file ReferenceFE.hpp.
|
protected |
Geometrical dimension.
Definition at line 158 of file ReferenceFE.hpp.
|
protected |
Definition at line 165 of file ReferenceFE.hpp.
|
protected |
Number of degrees of freedom.
Definition at line 160 of file ReferenceFE.hpp.
|
protected |
Nb of geom vertices the elem is made of.
Definition at line 167 of file ReferenceFE.hpp.
|
protected |
Order of Lagrangian base polynomial.
Definition at line 159 of file ReferenceFE.hpp.
|
protected |
Dirty: map that contains rules used to attribute ownership of nodes that do not coincide with geometry.
Definition at line 171 of file ReferenceFE.hpp.
|
protected |
CepsFeLagrangeType.
Definition at line 157 of file ReferenceFE.hpp.
|
protected |
List of vertex used to build basis functions.
Tells if ith nodal vertex coincide with geometrical node (-1 if not), and which node in the geom cell order
Definition at line 162 of file ReferenceFE.hpp.