MFEM  v4.0
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
mfem::Tetrahedron Class Reference

Data type tetrahedron element. More...

#include <tetrahedron.hpp>

Inheritance diagram for mfem::Tetrahedron:
[legend]
Collaboration diagram for mfem::Tetrahedron:
[legend]

Public Types

enum  {
  TYPE_PU =0, TYPE_A =1, TYPE_PF =2, TYPE_O =3,
  TYPE_M =4
}
 Constants for different types of tetrahedrons. More...
 
typedef Geometry::Constants
< Geometry::TETRAHEDRON
geom_t
 
- Public Types inherited from mfem::Element
enum  Type {
  POINT, SEGMENT, TRIANGLE, QUADRILATERAL,
  TETRAHEDRON, HEXAHEDRON, WEDGE
}
 Constants for the classes derived from Element. More...
 

Public Member Functions

 Tetrahedron ()
 
 Tetrahedron (const int *ind, int attr=1)
 Constructs tetrahedron by specifying the indices and the attribute. More...
 
 Tetrahedron (int ind1, int ind2, int ind3, int ind4, int attr=1)
 Constructs tetrahedron by specifying the indices and the attribute. More...
 
void Init (int ind1, int ind2, int ind3, int ind4, int attr=1)
 Initialize the vertex indices and the attribute of a Tetrahedron. More...
 
virtual Type GetType () const
 Return element's type. More...
 
void ParseRefinementFlag (int refinement_edges[2], int &type, int &flag)
 
void CreateRefinementFlag (int refinement_edges[2], int type, int flag=0)
 
void GetMarkedFace (const int face, int *fv)
 
int GetRefinementFlag ()
 
void SetRefinementFlag (int rf)
 
virtual int NeedRefinement (HashTable< Hashed2 > &v_to_v) const
 Return 1 if the element needs refinement in order to get conforming mesh. More...
 
virtual void SetVertices (const int *ind)
 Set the vertices according to the given input. More...
 
virtual void MarkEdge (const DSTable &v_to_v, const int *length)
 
virtual void ResetTransform (int tr)
 Set current coarse-fine transformation number. More...
 
virtual unsigned GetTransform () const
 Return current coarse-fine transformation. More...
 
virtual void PushTransform (int tr)
 Add 'tr' to the current chain of coarse-fine transformations. More...
 
virtual void GetVertices (Array< int > &v) const
 Returns the indices of the element's vertices. More...
 
virtual int * GetVertices ()
 
virtual int GetNVertices () const
 
virtual int GetNEdges () const
 
virtual const int * GetEdgeVertices (int ei) const
 
virtual int GetNFaces (int &nFaceVertices) const
 
virtual const int * GetFaceVertices (int fi) const
 
virtual ElementDuplicate (Mesh *m) const
 
virtual ~Tetrahedron ()
 
- Public Member Functions inherited from mfem::Element
 Element (Geometry::Type bg=Geometry::POINT)
 Default element constructor. More...
 
Geometry::Type GetGeometryType () const
 
int GetAttribute () const
 Return element's attribute. More...
 
void SetAttribute (const int attr)
 Set element's attribute. More...
 
const int * GetVertices () const
 
virtual ~Element ()
 Destroys element. More...
 

Static Public Member Functions

static void GetPointMatrix (unsigned transform, DenseMatrix &pm)
 Calculate point matrix corresponding to a chain of transformations. More...
 

Protected Attributes

int indices [4]
 
int refinement_flag
 
unsigned transform
 
- Protected Attributes inherited from mfem::Element
int attribute
 Element's attribute (specifying material property, etc). More...
 
Geometry::Type base_geom
 Element's type from the Finite Element's perspective. More...
 

Detailed Description

Data type tetrahedron element.

Definition at line 22 of file tetrahedron.hpp.

Member Typedef Documentation

Definition at line 40 of file tetrahedron.hpp.

Member Enumeration Documentation

anonymous enum

Constants for different types of tetrahedrons.

Enumerator
TYPE_PU 
TYPE_A 
TYPE_PF 
TYPE_O 
TYPE_M 

Definition at line 43 of file tetrahedron.hpp.

Constructor & Destructor Documentation

mfem::Tetrahedron::Tetrahedron ( )
inline

Definition at line 45 of file tetrahedron.hpp.

mfem::Tetrahedron::Tetrahedron ( const int *  ind,
int  attr = 1 
)

Constructs tetrahedron by specifying the indices and the attribute.

Definition at line 19 of file tetrahedron.cpp.

mfem::Tetrahedron::Tetrahedron ( int  ind1,
int  ind2,
int  ind3,
int  ind4,
int  attr = 1 
)

Constructs tetrahedron by specifying the indices and the attribute.

Definition at line 31 of file tetrahedron.cpp.

virtual mfem::Tetrahedron::~Tetrahedron ( )
inlinevirtual

Definition at line 110 of file tetrahedron.hpp.

Member Function Documentation

void mfem::Tetrahedron::CreateRefinementFlag ( int  refinement_edges[2],
int  type,
int  flag = 0 
)

Definition at line 68 of file tetrahedron.cpp.

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

Implements mfem::Element.

Definition at line 332 of file tetrahedron.cpp.

virtual const int* mfem::Tetrahedron::GetEdgeVertices ( int  ei) const
inlinevirtual

Implements mfem::Element.

Definition at line 99 of file tetrahedron.hpp.

virtual const int* mfem::Tetrahedron::GetFaceVertices ( int  fi) const
inlinevirtual

Implements mfem::Element.

Definition at line 105 of file tetrahedron.hpp.

void mfem::Tetrahedron::GetMarkedFace ( const int  face,
int *  fv 
)

Definition at line 134 of file tetrahedron.cpp.

virtual int mfem::Tetrahedron::GetNEdges ( ) const
inlinevirtual

Implements mfem::Element.

Definition at line 97 of file tetrahedron.hpp.

virtual int mfem::Tetrahedron::GetNFaces ( int &  nFaceVertices) const
inlinevirtual

Implements mfem::Element.

Definition at line 102 of file tetrahedron.hpp.

virtual int mfem::Tetrahedron::GetNVertices ( ) const
inlinevirtual

Implements mfem::Element.

Definition at line 95 of file tetrahedron.hpp.

void mfem::Tetrahedron::GetPointMatrix ( unsigned  transform,
DenseMatrix pm 
)
static

Calculate point matrix corresponding to a chain of transformations.

Definition at line 281 of file tetrahedron.cpp.

int mfem::Tetrahedron::GetRefinementFlag ( )
inline

Definition at line 65 of file tetrahedron.hpp.

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

Return current coarse-fine transformation.

Reimplemented from mfem::Element.

Definition at line 81 of file tetrahedron.hpp.

virtual Type mfem::Tetrahedron::GetType ( ) const
inlinevirtual

Return element's type.

Implements mfem::Element.

Definition at line 58 of file tetrahedron.hpp.

void mfem::Tetrahedron::GetVertices ( Array< int > &  v) const
virtual

Returns the indices of the element's vertices.

Implements mfem::Element.

Definition at line 323 of file tetrahedron.cpp.

virtual int* mfem::Tetrahedron::GetVertices ( )
inlinevirtual

Implements mfem::Element.

Definition at line 93 of file tetrahedron.hpp.

void mfem::Tetrahedron::Init ( int  ind1,
int  ind2,
int  ind3,
int  ind4,
int  attr = 1 
)

Initialize the vertex indices and the attribute of a Tetrahedron.

Definition at line 43 of file tetrahedron.cpp.

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

Reorder the vertices so that the longest edge is from vertex 0 to vertex 1. If called it should be once from the mesh constructor, because the order may be used later for setting the edges.

Reimplemented from mfem::Element.

Definition at line 184 of file tetrahedron.cpp.

int mfem::Tetrahedron::NeedRefinement ( HashTable< Hashed2 > &  v_to_v) const
virtual

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

Reimplemented from mfem::Element.

Definition at line 165 of file tetrahedron.cpp.

void mfem::Tetrahedron::ParseRefinementFlag ( int  refinement_edges[2],
int &  type,
int &  flag 
)

Definition at line 52 of file tetrahedron.cpp.

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

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

Reimplemented from mfem::Element.

Definition at line 84 of file tetrahedron.hpp.

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

Set current coarse-fine transformation number.

Reimplemented from mfem::Element.

Definition at line 80 of file tetrahedron.hpp.

void mfem::Tetrahedron::SetRefinementFlag ( int  rf)
inline

Definition at line 67 of file tetrahedron.hpp.

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

Set the vertices according to the given input.

Reimplemented from mfem::Element.

Definition at line 176 of file tetrahedron.cpp.

Member Data Documentation

int mfem::Tetrahedron::indices[4]
protected

Definition at line 25 of file tetrahedron.hpp.

int mfem::Tetrahedron::refinement_flag
protected

The refinement flag keeps (in order) :

  1. Two marked edges given with local index (0..5) for the two faces that don't have the refinement edge as edge. The refinement edge is determined by the first two nodes of the tetrahedron. Each marked edge is stored in 3 bits (or as implemented in the functions CreateRefinementFlag and ParseRefinementFlag.
  2. Type of the element, stored in the next 3 bits.
  3. The rest is free for now.

Definition at line 35 of file tetrahedron.hpp.

unsigned mfem::Tetrahedron::transform
protected

Definition at line 37 of file tetrahedron.hpp.


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