12 #ifndef MFEM_TETRAHEDRON
13 #define MFEM_TETRAHEDRON
15 #include "../config/config.hpp"
52 Tetrahedron(
int ind1,
int ind2,
int ind3,
int ind4,
int attr = 1);
103 { nFaceVertices = 3;
return 4; }
106 { MFEM_ABORT(
"not implemented");
return NULL; }
virtual int GetNFaces(int &nFaceVertices) const
virtual int GetNEdges() const
virtual int GetType() const
Return element's type.
Data type dense matrix using column-major storage.
virtual void SetVertices(const int *ind)
Set the vertices according to the given input.
virtual Element * Duplicate(Mesh *m) const
void CreateRefinementFlag(int refinement_edges[2], int type, int flag=0)
virtual void ResetTransform(int tr)
Set current coarse-fine transformation number.
static const int Edges[NumEdges][2]
Geometry::Constants< Geometry::TETRAHEDRON > geom_t
Data type tetrahedron element.
virtual const int * GetFaceVertices(int fi) const
virtual unsigned GetTransform() const
Return current coarse-fine transformation.
virtual void PushTransform(int tr)
Add 'tr' to the current chain of coarse-fine transformations.
virtual void MarkEdge(DenseMatrix &pmat)
Mark the longest edge by assuming/changing the order of the vertices.
Linear3DFiniteElement TetrahedronFE
virtual int * GetVertices()
virtual const int * GetEdgeVertices(int ei) const
virtual int NeedRefinement(DSTable &v_to_v, int *middle) const
Return 1 if the element needs refinement in order to get conforming mesh.
static void GetPointMatrix(unsigned transform, DenseMatrix &pm)
Calculate point matrix corresponding to a chain of transformations.
virtual int GetNVertices() const
void GetMarkedFace(const int face, int *fv)
void SetRefinementFlag(int rf)
void ParseRefinementFlag(int refinement_edges[2], int &type, int &flag)
virtual int GetRefinementFlag()
Abstract data type element.