MFEM  v3.3
Finite element discretization library
Public Types | Public Member Functions | Protected Attributes | List of all members
mfem::Element Class Referenceabstract

Abstract data type element. More...

#include <element.hpp>

Inheritance diagram for mfem::Element:
[legend]

Public Types

enum  Type {
  POINT, SEGMENT, TRIANGLE, QUADRILATERAL,
  TETRAHEDRON, HEXAHEDRON
}
 Constants for the classes derived from Element. More...
 

Public Member Functions

 Element (int bg=Geometry::POINT)
 Default element constructor. More...
 
virtual int GetType () const =0
 Returns element's type. More...
 
int GetGeometryType () const
 
int GetAttribute () const
 Return element's attribute. More...
 
void SetAttribute (const int attr)
 Set element's attribute. More...
 
virtual void SetVertices (const int *ind)
 Set the indices the element according to the input. More...
 
virtual void GetVertices (Array< int > &v) const =0
 Returns element's vertices. More...
 
virtual int * GetVertices ()=0
 
const int * GetVertices () const
 
virtual int GetNVertices () const =0
 
virtual int GetNEdges () const =0
 
virtual const int * GetEdgeVertices (int) const =0
 
virtual int GetNFaces (int &nFaceVertices) const =0
 
virtual const int * GetFaceVertices (int fi) const =0
 
virtual void MarkEdge (DenseMatrix &pmat)
 Mark the longest edge by assuming/changing the order of the vertices. More...
 
virtual void MarkEdge (const DSTable &v_to_v, const int *length)
 Mark the longest edge by assuming/changing the order of the vertices. More...
 
virtual int NeedRefinement (DSTable &v_to_v, int *middle) const
 Return 1 if the element needs refinement in order to get conforming mesh. More...
 
virtual void ResetTransform (int tr)
 Set current coarse-fine transformation number. More...
 
virtual void PushTransform (int tr)
 Add 'tr' to the current chain of coarse-fine transformations. More...
 
virtual unsigned GetTransform () const
 Return current coarse-fine transformation. More...
 
virtual int GetRefinementFlag ()
 
virtual ElementDuplicate (Mesh *m) const =0
 
virtual ~Element ()
 Destroys element. More...
 

Protected Attributes

int attribute
 Element's attribute (specifying material property, etc). More...
 
int base_geom
 

Detailed Description

Abstract data type element.

Definition at line 27 of file element.hpp.

Member Enumeration Documentation

Constants for the classes derived from Element.

Enumerator
POINT 
SEGMENT 
TRIANGLE 
QUADRILATERAL 
TETRAHEDRON 
HEXAHEDRON 

Definition at line 37 of file element.hpp.

Constructor & Destructor Documentation

mfem::Element::Element ( int  bg = Geometry::POINT)
inlineexplicit

Default element constructor.

Definition at line 42 of file element.hpp.

virtual mfem::Element::~Element ( )
inlinevirtual

Destroys element.

Definition at line 99 of file element.hpp.

Member Function Documentation

virtual Element* mfem::Element::Duplicate ( Mesh m) const
pure virtual
int mfem::Element::GetAttribute ( ) const
inline

Return element's attribute.

Definition at line 50 of file element.hpp.

virtual const int* mfem::Element::GetEdgeVertices ( int  ) const
pure virtual
virtual const int* mfem::Element::GetFaceVertices ( int  fi) const
pure virtual
int mfem::Element::GetGeometryType ( ) const
inline

Definition at line 47 of file element.hpp.

virtual int mfem::Element::GetNEdges ( ) const
pure virtual
virtual int mfem::Element::GetNFaces ( int &  nFaceVertices) const
pure virtual
virtual int mfem::Element::GetNVertices ( ) const
pure virtual
virtual int mfem::Element::GetRefinementFlag ( )
inlinevirtual

Reimplemented in mfem::Tetrahedron.

Definition at line 94 of file element.hpp.

virtual unsigned mfem::Element::GetTransform ( ) const
inlinevirtual

Return current coarse-fine transformation.

Reimplemented in mfem::Tetrahedron, and mfem::Triangle.

Definition at line 92 of file element.hpp.

virtual int mfem::Element::GetType ( ) const
pure virtual
virtual void mfem::Element::GetVertices ( Array< int > &  v) const
pure virtual

Returns element's vertices.

Implemented in mfem::Tetrahedron, mfem::Triangle, mfem::Quadrilateral, mfem::Segment, mfem::Hexahedron, and mfem::Point.

virtual int* mfem::Element::GetVertices ( )
pure virtual
const int* mfem::Element::GetVertices ( ) const
inline

Definition at line 63 of file element.hpp.

virtual void mfem::Element::MarkEdge ( DenseMatrix pmat)
inlinevirtual

Mark the longest edge by assuming/changing the order of the vertices.

Reimplemented in mfem::Tetrahedron, and mfem::Triangle.

Definition at line 77 of file element.hpp.

virtual void mfem::Element::MarkEdge ( const DSTable v_to_v,
const int *  length 
)
inlinevirtual

Mark the longest edge by assuming/changing the order of the vertices.

Reimplemented in mfem::Tetrahedron, and mfem::Triangle.

Definition at line 80 of file element.hpp.

virtual int mfem::Element::NeedRefinement ( DSTable v_to_v,
int *  middle 
) const
inlinevirtual

Return 1 if the element needs refinement in order to get conforming mesh.

Reimplemented in mfem::Tetrahedron, and mfem::Triangle.

Definition at line 83 of file element.hpp.

virtual void mfem::Element::PushTransform ( int  tr)
inlinevirtual

Add 'tr' to the current chain of coarse-fine transformations.

Reimplemented in mfem::Tetrahedron, and mfem::Triangle.

Definition at line 89 of file element.hpp.

virtual void mfem::Element::ResetTransform ( int  tr)
inlinevirtual

Set current coarse-fine transformation number.

Reimplemented in mfem::Tetrahedron, and mfem::Triangle.

Definition at line 86 of file element.hpp.

void mfem::Element::SetAttribute ( const int  attr)
inline

Set element's attribute.

Definition at line 53 of file element.hpp.

void mfem::Element::SetVertices ( const int *  ind)
virtual

Set the indices the element according to the input.

Reimplemented in mfem::Tetrahedron, mfem::Triangle, mfem::Quadrilateral, and mfem::Segment.

Definition at line 17 of file element.cpp.

Member Data Documentation

int mfem::Element::attribute
protected

Element's attribute (specifying material property, etc).

Definition at line 32 of file element.hpp.

int mfem::Element::base_geom
protected

Definition at line 32 of file element.hpp.


The documentation for this class was generated from the following files: