CepsCellType
Enum for different shapes of cells.
CepsGlobalIndex CepsCellGlobalIndex
Indices of cells.
std::set< _Type, _Compare, _Alloc > CepsSet
C++ set.
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.
CepsStandardArgs getStandardArgsFrom(GeomCell *cell)
Returns a CepsStandardArgs structure with data from given cell.
Abstract class for geometrical cell. On top of index and attributes managament, the cell has informat...
JacobianMatrixType m_jacobian
Jacobian Matrix.
void setNodeSharingCellsIndices(const CepsSet< CepsCellGlobalIndex > &nCellIds)
Cells that share at least one node with self.
InverseJacobianMatrixType m_invJacobian
Inverse of Jacobian Matrix.
virtual CepsUInt getNumberOfNodes() const =0
Volume for 3D, area for 2D, length for 1D, 0 for points.
CepsBool m_invJcomputed
Flag to trigger computation of invJ.
void initialize(CepsUInt dim, CepsCellType cellType, CepsUInt nNodes)
internal init method
Eigen::Matrix< CepsReal, 3, Eigen::Dynamic > JacobianMatrixType
Typedef for jaccobian matrix.
virtual void computeJacobianMatrix()=0
Compute geometrical Jacobian matrix.
const CepsCellType & getCellType() const
Get the type of cell.
CepsMathVertex getNormal() const
Sets the normal vector, (useful for boundary cells only)
GeomCell(GeomCell &&)=default
copy constructor
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.
friend class TestGeomCells
virtual void reset()
Wipes content.
GeomCell()
default constructor
GeomCell & operator=(GeomCell &&)=default
assignment operator
CepsReal getJacobianDeterminant() const
Jacobian of geometrical deformation from reference cell.
~GeomCell() override=default
destructor
virtual CepsBool checkJacobianDeterminant()=0
Tells if determinant is negative, tries to swap points to make it positive.
const CepsSet< CepsCellGlobalIndex > & getNodeSharingCellsIndices() const
Cells that share at least one node with self.
GeomCell & operator=(const GeomCell &)=default
assignment operator
virtual void initializeNodes(GeomNode *const *nodes, CepsUInt nNodes)
internal init method
CepsReal m_detJacobian
determinant of Jacobian matrix
virtual const JacobianMatrixType & getJacobianMatrix()
Jacobian Matrix of deformation from reference cell (3 rows for R^3, element dimension columns)
GeomCell(const GeomCell &)=default
copy constructor
CepsReal getDiameter()
Size of cell.
CepsSet< CepsCellGlobalIndex > m_nodeSharingCells
IDs of cells that have a node in common.
virtual const InverseJacobianMatrixType & getInverseJacobianMatrix()
Jacobian Matrix of deformation from reference cell (3 rows for R^3, element dimension columns)
CepsReal m_diameter
Size of cell.
virtual void refresh()
Recomputes jacobian matrix and determinant.
virtual void computeInverseJacobianMatrix()=0
Compute inverse of geometrical Jacobian matrix.
CepsMathVertex m_normal
For boundary cells, outward normal vector.
void setNormal(CepsMathVertex n)
Sets the normal vector, (useful for boundary cells only)
virtual void computeJacobianDeterminant()=0
Compute geometrical Jacobian determinant.
void computeDiameter()
Computes size of cell (max edge length)
CepsCellType m_cellType
Cell type.
GeomNode * getNodeWithMinimalIndex() const
Returns node with smallest index (used eg to determine ownership)
Base class for nodes used in meshes.
An abstract class from which all objects that contain region attributes should derive.
Abstract class to describe if an entity is on a boundary or not Objects that can be located in a mesh...
An abstract class for objects that regroup pointers to cells (eg a mesh, a finite elements discretiza...
Abstract class for objects that have a dimensionality (0D to 3D)
Abstract class for objects that have a global index.
Abstract class for objects that contain a CPU Id.
Structure used to pass arguments to SAFunc (see pde directory) The flags of the SAFunc allows extract...