CEPS  24.01
Cardiac ElectroPhysiology Simulator
ReferenceFE Class Reference

Detailed Description

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...
 
ReferenceFEoperator= (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 CepsReal3DgetBasisVertex (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...
 
GeomNodegetNodeOfOwnerForBasisVertex (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< CepsReal3Dm_vertices
 List of vertex used to build basis functions. More...
 
CepsVector< CepsIntm_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...
 

Constructor & Destructor Documentation

◆ ReferenceFE() [1/3]

ReferenceFE::ReferenceFE ( )
delete

Deleted default constructor.

◆ ReferenceFE() [2/3]

ReferenceFE::ReferenceFE ( CepsUInt  dimension,
CepsFeLagrangeType  type 
)

Constructor with geometrical dimension.

Definition at line 33 of file ReferenceFE.cpp.

◆ ReferenceFE() [3/3]

ReferenceFE::ReferenceFE ( const ReferenceFE that)
default

Copy constructor.

◆ ~ReferenceFE()

ReferenceFE::~ReferenceFE ( )

Destructor.

Definition at line 44 of file ReferenceFE.cpp.

Member Function Documentation

◆ buildBasisFunction()

void ReferenceFE::buildBasisFunction ( )
protected

Build all basis function and Vertex used.

Definition at line 194 of file ReferenceFE.cpp.

◆ computeBasisFunction()

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.

◆ computeBasisFunctionDerivative()

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.

◆ computeBasisFunctionDerivatives()

CepsMathDynamic2D ReferenceFE::computeBasisFunctionDerivatives ( const CepsReal3D point)

Get values of basis function derivatives at given point.

Definition at line 77 of file ReferenceFE.cpp.

◆ computeBasisFunctions()

CepsMathDynamic1D ReferenceFE::computeBasisFunctions ( const CepsReal3D point)

Get values of basis functions at given point.

Definition at line 66 of file ReferenceFE.cpp.

◆ getBasisVertex()

const CepsReal3D & ReferenceFE::getBasisVertex ( CepsUInt  i) const

Get vertex 'i' used to create basis functions.

Definition at line 98 of file ReferenceFE.cpp.

◆ getBasisVertexGeomCellIndex()

CepsInt ReferenceFE::getBasisVertexGeomCellIndex ( CepsUInt  i) const

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.

◆ getBasisVertices()

const CepsVector< CepsReal3D > & ReferenceFE::getBasisVertices ( ) const

Get vertices used to create basis functions.

Definition at line 92 of file ReferenceFE.cpp.

◆ getCellType()

CepsCellType ReferenceFE::getCellType ( ) const

CellType.

Definition at line 48 of file ReferenceFE.cpp.

◆ getDimension()

CepsUInt ReferenceFE::getDimension ( ) const

Get dimension of geom object.

Definition at line 164 of file ReferenceFE.cpp.

◆ getFEType()

CepsFeLagrangeType ReferenceFE::getFEType ( ) const

The type of Lagragian Finite Element return. May change in the future ?

Definition at line 188 of file ReferenceFE.cpp.

◆ getNodeOfOwnerForBasisVertex()

GeomNode * ReferenceFE::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.

Definition at line 116 of file ReferenceFE.cpp.

◆ getNumberOfBasisFunctions()

CepsUInt ReferenceFE::getNumberOfBasisFunctions ( ) const

Get number of basis functions.

Definition at line 182 of file ReferenceFE.cpp.

◆ getNumberOfBasisVertices()

CepsUInt ReferenceFE::getNumberOfBasisVertices ( ) const

Get number of vertices used to create basis functions.

Definition at line 176 of file ReferenceFE.cpp.

◆ getNumberOfDofs()

CepsUInt ReferenceFE::getNumberOfDofs ( ) const

Number of degrees of freedom.

Definition at line 60 of file ReferenceFE.cpp.

◆ getNumberOfGeomVertices()

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.

◆ getPolynomialOrder()

CepsUInt ReferenceFE::getPolynomialOrder ( ) const

Order.

Definition at line 54 of file ReferenceFE.cpp.

◆ getTransformedBasisVertex()

CepsReal3D ReferenceFE::getTransformedBasisVertex ( CepsUInt  i,
GeomCell cell 
) const

Get vertex 'i' used to create basis functions and transform it on GeomCell.

Parameters
ithe vertex id
cellthe GeomCell used
Returns
const CepsReal3D&

Definition at line 145 of file ReferenceFE.cpp.

◆ operator=()

ReferenceFE& ReferenceFE::operator= ( const ReferenceFE that)
default

Copy assignement.

Field Documentation

◆ m_basisFunctions

CepsVector<Polynomial<3U> > ReferenceFE::m_basisFunctions
protected

List of basis functions.

Definition at line 161 of file ReferenceFE.hpp.

◆ m_dim

CepsUInt ReferenceFE::m_dim
protected

Geometrical dimension.

Definition at line 158 of file ReferenceFE.hpp.

◆ m_geomCellIndex

CepsVector<CepsInt> ReferenceFE::m_geomCellIndex
protected

Definition at line 165 of file ReferenceFE.hpp.

◆ m_nbDofs

CepsUInt ReferenceFE::m_nbDofs
protected

Number of degrees of freedom.

Definition at line 160 of file ReferenceFE.hpp.

◆ m_nGeomVertices

CepsUInt ReferenceFE::m_nGeomVertices
protected

Nb of geom vertices the elem is made of.

Definition at line 167 of file ReferenceFE.hpp.

◆ m_order

CepsUInt ReferenceFE::m_order
protected

Order of Lagrangian base polynomial.

Definition at line 159 of file ReferenceFE.hpp.

◆ m_ownerDeductionRule

CepsVector<CepsSet<CepsUInt> > ReferenceFE::m_ownerDeductionRule
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.

◆ m_type

CepsFeLagrangeType ReferenceFE::m_type
protected

CepsFeLagrangeType.

Definition at line 157 of file ReferenceFE.hpp.

◆ m_vertices

CepsVector<CepsReal3D> ReferenceFE::m_vertices
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.


The documentation for this class was generated from the following files: