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"
20 #include "../general/hash.hpp"
78 virtual int GetNFaces(
int &nFaceVertices)
const = 0;
Geometry::Type GetGeometryType() const
virtual int * GetVertices()=0
virtual Element * Duplicate(Mesh *m) const =0
virtual int GetNEdges() const =0
virtual void SetVertices(const int *ind)
Set the indices the element according to the input.
virtual void ResetTransform(int tr)
Set current coarse-fine transformation number.
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 GetNFaceVertices(int fi) const =0
Element(Geometry::Type bg=Geometry::POINT)
Default element constructor.
virtual const int * GetEdgeVertices(int) const =0
Geometry::Type base_geom
Element's type from the Finite Element's perspective.
Type
Constants for the classes derived from Element.
int GetAttribute() const
Return element's attribute.
virtual unsigned GetTransform() const
Return current coarse-fine transformation.
int attribute
Element's attribute (specifying material property, etc).
virtual int NeedRefinement(HashTable< Hashed2 > &v_to_v) const
Return 1 if the element needs refinement in order to get conforming mesh.
const int * GetVertices() const
virtual ~Element()
Destroys element.
virtual int GetNVertices() const =0
void SetAttribute(const int attr)
Set element's attribute.
virtual const int * GetFaceVertices(int fi) const =0
virtual int GetNFaces() const =0
Abstract data type element.
virtual void PushTransform(int tr)
Add 'tr' to the current chain of coarse-fine transformations.
virtual Type GetType() const =0
Returns element's type.