MFEM  v3.1
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
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, BISECTED, QUADRISECTED,
  OCTASECTED
}
 Constants for the classes derived from Element. More...
 

Public Member Functions

 Element (int bg=Geometry::POINT)
 Default element constructor. More...
 
virtual void SetVertices (const int *ind)
 Set the indices the element according to the input. More...
 
virtual int GetType () const =0
 Returns element's type. More...
 
int GetGeometryType () const
 
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...
 
int GetAttribute () const
 Return element's attribute. More...
 
void SetAttribute (const int attr)
 Set element's attribute. 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 
BISECTED 
QUADRISECTED 
OCTASECTED 

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 90 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 80 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 50 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 85 of file element.hpp.

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

Definition at line 57 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::RefinedElement, mfem::Tetrahedron, and mfem::Triangle.

Definition at line 71 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::RefinedElement, mfem::Tetrahedron, and mfem::Triangle.

Definition at line 74 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::RefinedElement, mfem::Tetrahedron, and mfem::Triangle.

Definition at line 77 of file element.hpp.

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

Set element's attribute.

Definition at line 83 of file element.hpp.

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

Set the indices the element according to the input.

Reimplemented in mfem::RefinedElement, 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: