39 m_ownerDeductionRule({})
82 for (
CepsUInt iPhi=0U; iPhi<n; iPhi++)
86 gradPhi(iPhi,i) = dpdx[i];
88 return gradPhi.transpose();
122 "Passed ptr on cell is null"
151 "Passed ptr on cell is null"
CepsCellType
Enum for different shapes of cells.
#define CEPS_ABORT_IF(condition, message)
Stops the execution with a message if condition is true. If testing is enabled, only throws a runtime...
Eigen::Matrix< CepsScalar, Eigen::Dynamic, 1 > CepsMathDynamic1D
Dynamic 1D array, eigen format.
std::vector< _Type, _Alloc > CepsVector
C++ vector.
std::make_unsigned_t< CepsInt > CepsUInt
Unsigned version on CepsInt.
float CepsReal
Need single precision floating point.
Eigen::Matrix< CepsScalar, 3, 1 > CepsMathVertex
Vertex, eigen format.
CepsGlobalIndex CepsNodeGlobalIndex
Indices of nodes.
CepsArray3< CepsReal > CepsReal3D
Three real scalars, used like this for compatibility in polynomials.
int32_t CepsInt
Need 32 bit integer.
Eigen::Matrix< CepsScalar, Eigen::Dynamic, Eigen::Dynamic > CepsMathDynamic2D
Dynamic 2D array, eigen format.
CepsCellType getCategory(const CepsFeLagrangeType &type)
Returns either Simplex, of Quad, the type of Lagrange finite element.
CepsUInt getOrder(const CepsFeLagrangeType &type)
Returns the order of the Lagrange finite element.
std::pair< CepsCellType, CepsUInt > CepsFeLagrangeType
Typedef for descriptor of Lagrange finite elements type.
void buildPolysBasisFunction(CepsUInt dim, CepsUInt order, CepsVector< CepsReal3D > &points, CepsVector< CepsInt > &geomCellIndex, CepsVector< Polynomial< 3U >> &polys, void(*pointBuilder)(CepsUInt, CepsUInt, CepsVector< CepsReal3D > &, CepsVector< CepsInt > &))
Constructs the list of base functions in the form of Polynomials.
void buildSimplexUniformPoints(CepsUInt dim, CepsUInt numberOfPoints, CepsVector< CepsReal3D > &points, CepsVector< CepsInt > &geomCellIndex)
Constructs the list of uniform points of the simplex of given dimension.
CepsMathVertex getCoordinatesForEigen() const
Get three coordinates.
Abstract class for geometrical cell. On top of index and attributes managament, the cell has informat...
virtual const JacobianMatrixType & getJacobianMatrix()
Jacobian Matrix of deformation from reference cell (3 rows for R^3, element dimension columns)
Base class for nodes used in meshes.
CepsReal3D computeBasisFunctionDerivative(CepsUInt iPhi, const CepsReal3D &point)
Get values of single basis function derivative at given point.
CepsUInt m_order
Order of Lagrangian base polynomial.
CepsUInt getNumberOfBasisFunctions() const
Get number of basis functions.
CepsUInt getNumberOfDofs() const
Number of degrees of freedom.
CepsUInt m_nGeomVertices
Nb of geom vertices the elem is made of.
CepsUInt m_dim
Geometrical dimension.
CepsUInt getDimension() const
Get dimension of geom object.
CepsReal3D getTransformedBasisVertex(CepsUInt i, GeomCell *cell) const
Get vertex 'i' used to create basis functions and transform it on GeomCell.
CepsUInt getPolynomialOrder() const
Order.
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.
void buildBasisFunction()
Build all basis function and Vertex used.
CepsVector< CepsInt > m_geomCellIndex
CepsVector< Polynomial< 3U > > m_basisFunctions
List of basis functions.
CepsMathDynamic1D computeBasisFunctions(const CepsReal3D &point)
Get values of basis functions at given point.
CepsVector< CepsSet< CepsUInt > > m_ownerDeductionRule
Dirty: map that contains rules used to attribute ownership of nodes that do not coincide with geometr...
CepsUInt getNumberOfBasisVertices() const
Get number of vertices used to create basis functions.
CepsVector< CepsReal3D > m_vertices
List of vertex used to build basis functions.
ReferenceFE()=delete
Deleted default constructor.
CepsCellType getCellType() const
CellType.
CepsFeLagrangeType m_type
CepsFeLagrangeType.
const CepsVector< CepsReal3D > & getBasisVertices() const
Get vertices used to create basis functions.
~ReferenceFE()
Destructor.
CepsFeLagrangeType getFEType() const
The type of Lagragian Finite Element return. May change in the future ?
CepsUInt getNumberOfGeomVertices() const
Get number of vertices of the geometric cell the element is based on.
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 ...
CepsReal computeBasisFunction(CepsUInt iPhi, const CepsReal3D &point)
Get values of single basis function at given point.
const CepsReal3D & getBasisVertex(CepsUInt i) const
Get vertex 'i' used to create basis functions.
CepsMathDynamic2D computeBasisFunctionDerivatives(const CepsReal3D &point)
Get values of basis function derivatives at given point.
CepsUInt m_nbDofs
Number of degrees of freedom.
const CepsGlobalIndex & getGlobalIndex() const
Get the index
NodeType * getNodeAt(const CepsUInt &i)
Pointer to the i-th node.
CepsBool isNullPtr(_Type *ptr)
Tells if passed pointer is null.