37 m_reference(reference)
40 "Cannot create finite element as ptr to geometrical element is null"
43 "Cannot create finite element as ptr to reference element is null"
48 "Cannot create finite element as the passed geometric cell and reference element\n" <<
49 " do not share the same geometrical properties"
62 "Cannot create finite element as ptr to geometrical element 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...
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.
CepsArray3< CepsReal > CepsReal3D
Three real scalars, used like this for compatibility in polynomials.
CepsMathVertex getCoordinatesForEigen() const
Get three coordinates.
Abstract class for finite elements.
FEBase()=delete
Deleted default construtcor.
CepsUInt getNumberOfDofs() const
Number of DoFs.
void setGeomObject(GeomCell *object, CepsBool owned=false) override
Set the geom object.
const CepsVector< CepsReal3D > & getBasisVertices() const
Direct access to positionning coefficients.
CepsMathVertex getOrigin() const
Access to coordinate of the first node (the origin node) as eigen object.
const GeomCell::JacobianMatrixType & getJacobianMatrix() const
Jacobian matrix from the geometrical element.
~FEBase() override
Destructor.
CepsUInt getPolynomialOrder() const
Polynomial order.
CepsReal getJacobianDeterminant() const
Jacobian determinant from the geometrical element.
CepsReal getMeasure() const
Size of the element.
const CepsReal3D & getBasisVertex(CepsUInt i) const
Direct access to positionning coefficients.
const GeomCell::InverseJacobianMatrixType & getInverseJacobian() const
Inverse of the jacobian matrix from the geometrical element.
ReferenceFE * getReferenceElement() const
Pointer on Reference element.
ReferenceFE * m_reference
Link to reference element.
CepsCellType getCellType() const
Cell type.
A nodal point on a finite element. It is different from a geom node as it may have different properti...
Abstract class for geometrical cell. On top of index and attributes managament, the cell has informat...
virtual CepsUInt getNumberOfNodes() const =0
Volume for 3D, area for 2D, length for 1D, 0 for points.
Eigen::Matrix< CepsReal, 3, Eigen::Dynamic > JacobianMatrixType
Typedef for jaccobian matrix.
virtual CepsReal getMeasure() const =0
Volume for 3D, area for 2D, length for 1D, 0 for points.
Eigen::Matrix< CepsReal, Eigen::Dynamic, 3 > InverseJacobianMatrixType
Typedef for inverse jaccobian matrix.
CepsReal getJacobianDeterminant() const
Jacobian of geometrical deformation from reference cell.
virtual const JacobianMatrixType & getJacobianMatrix()
Jacobian Matrix of deformation from reference cell (3 rows for R^3, element dimension columns)
virtual const InverseJacobianMatrixType & getInverseJacobianMatrix()
Jacobian Matrix of deformation from reference cell (3 rows for R^3, element dimension columns)
Base class for reference finite elements.
CepsUInt getNumberOfDofs() const
Number of degrees of freedom.
CepsUInt getDimension() const
Get dimension of geom object.
CepsUInt getPolynomialOrder() const
Order.
CepsCellType getCellType() const
CellType.
const CepsVector< CepsReal3D > & getBasisVertices() const
Get vertices used to create basis functions.
CepsUInt getNumberOfGeomVertices() const
Get number of vertices of the geometric cell the element is based on.
const CepsReal3D & getBasisVertex(CepsUInt i) const
Get vertex 'i' used to create basis functions.
void setCells(const CepsVector< FEBase * > &cells)
Replaces currently held cell pointers.
const CepsUInt & getDimension() const
Get the dimension of the object.
_GeomObject * getProperties() const
Get the properties (in fact it's just the geom object)
virtual void setGeomObject(_GeomObject *object, CepsBool owned)
Set the geom object.
GeomCell * getGeomObject() const
Get the geom object.
FENode * getNodeAt(const CepsUInt &i)
Pointer to the i-th node.
void setNodes(const CepsVector< FENode * > &nodes)
Assign all nodes.
A namespace for all utility methods.
CepsBool isNullPtr(_Type *ptr)
Tells if passed pointer is null.