15 #include "../config/config.hpp"
16 #include "../general/array.hpp"
17 #include "../general/table.hpp"
18 #include "../linalg/densemat.hpp"
19 #include "../fem/geom.hpp"
47 virtual int GetType()
const = 0;
65 virtual int GetNFaces(
int &nFaceVertices)
const = 0;
167 {
mfem_error(
"BisectedElement::Duplicate()");
return NULL; }
180 {
mfem_error(
"QuadrisectedElement::Duplicate()");
return NULL; }
193 {
mfem_error(
"OctasectedElement::Duplicate()");
return NULL; }
196 #ifdef MFEM_USE_MEMALLOC
198 extern MemAlloc <BisectedElement, 1024>
BEMemory;
virtual int GetNFaces(int &nFaceVertices) const
virtual int GetType() const
Returns element's type.
virtual int * GetVertices()=0
virtual int GetType() const
Returns element's type.
virtual Element * Duplicate(Mesh *m) const =0
virtual int GetNEdges() const =0
virtual void GetVertices(Array< int > &v) const =0
Returns element's vertices.
virtual int GetNEdges() const
OctasectedElement(Element *ce)
virtual void MarkEdge(DenseMatrix &pmat)
Mark the longest edge by assuming/changing the order of the vertices.
virtual void GetVertices(Array< int > &v) const
Returns element's vertices.
virtual Element * Duplicate(Mesh *m) const
virtual int GetNVertices() const
virtual void SetVertices(const int *ind)
Set the indices the element according to the input.
QuadrisectedElement(Element *ce)
virtual Element * Duplicate(Mesh *m) const
int GetGeometryType() const
virtual Element * Duplicate(Mesh *m) const
virtual const int * GetFaceVertices(int fi) const
virtual void MarkEdge(const DSTable &v_to_v, const int *length)
Mark the longest edge by assuming/changing the order of the vertices.
virtual const int * GetEdgeVertices(int) const =0
virtual int GetRefinementFlag()
Type
Constants for the classes derived from Element.
const Element * IAm() const
virtual void MarkEdge(const DSTable &v_to_v, const int *length)
Mark the longest edge by assuming/changing the order of the vertices.
virtual int NeedRefinement(DSTable &v_to_v, int *middle) const
Return 1 if the element needs refinement in order to get conforming mesh.
int GetAttribute() const
Return element's attribute.
virtual void SetVertices(const int *ind)
Set the indices the element according to the input.
virtual void MarkEdge(DenseMatrix &pmat)
Mark the longest edge by assuming/changing the order of the vertices.
void SetCoarseElem(Element *ce)
MemAlloc< BisectedElement, 1024 > BEMemory
int attribute
Element's attribute (specifying material property, etc).
BisectedElement(Element *ce)
void mfem_error(const char *msg)
RefinedElement(Element *ce)
virtual int NeedRefinement(DSTable &v_to_v, int *middle) const
Return 1 if the element needs refinement in order to get conforming mesh.
Element(int bg=Geometry::POINT)
Default element constructor.
virtual int GetNFaces(int &nFaceVertices) const =0
const int * GetVertices() const
virtual ~Element()
Destroys element.
virtual int * GetVertices()
virtual int GetNVertices() const =0
void SetAttribute(const int attr)
Set element's attribute.
virtual const int * GetFaceVertices(int fi) const =0
virtual int GetType() const
Returns element's type.
virtual const int * GetEdgeVertices(int ei) const
Abstract data type element.
virtual int GetType() const =0
Returns element's type.