MFEM  v3.4
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

◆ Type

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

◆ Element()

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

Default element constructor.

Definition at line 42 of file element.hpp.

◆ ~Element()

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

Destroys element.

Definition at line 99 of file element.hpp.

Member Function Documentation

◆ Duplicate()

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

◆ GetAttribute()

int mfem::Element::GetAttribute ( ) const
inline

Return element's attribute.

Definition at line 50 of file element.hpp.

◆ GetEdgeVertices()

virtual const int* mfem::Element::GetEdgeVertices ( int  ) const
pure virtual

◆ GetFaceVertices()

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

◆ GetGeometryType()

int mfem::Element::GetGeometryType ( ) const
inline

Definition at line 47 of file element.hpp.

◆ GetNEdges()

virtual int mfem::Element::GetNEdges ( ) const
pure virtual

◆ GetNFaces()

virtual int mfem::Element::GetNFaces ( int &  nFaceVertices) const
pure virtual

◆ GetNVertices()

virtual int mfem::Element::GetNVertices ( ) const
pure virtual

◆ GetRefinementFlag()

virtual int mfem::Element::GetRefinementFlag ( )
inlinevirtual

Reimplemented in mfem::Tetrahedron.

Definition at line 94 of file element.hpp.

◆ GetTransform()

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.

◆ GetType()

virtual int mfem::Element::GetType ( ) const
pure virtual

◆ GetVertices() [1/3]

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.

◆ GetVertices() [2/3]

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

◆ GetVertices() [3/3]

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

Definition at line 63 of file element.hpp.

◆ MarkEdge() [1/2]

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.

◆ MarkEdge() [2/2]

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.

◆ NeedRefinement()

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.

◆ PushTransform()

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.

◆ ResetTransform()

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.

◆ SetAttribute()

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

Set element's attribute.

Definition at line 53 of file element.hpp.

◆ SetVertices()

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

◆ attribute

int mfem::Element::attribute
protected

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

Definition at line 32 of file element.hpp.

◆ base_geom

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: