MFEM
v4.0
Finite element discretization library
|
Data type tetrahedron element. More...
#include <tetrahedron.hpp>
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 Element * | Duplicate (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... | |
Data type tetrahedron element.
Definition at line 22 of file tetrahedron.hpp.
Definition at line 40 of file tetrahedron.hpp.
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.
|
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.
|
inlinevirtual |
Definition at line 110 of file tetrahedron.hpp.
void mfem::Tetrahedron::CreateRefinementFlag | ( | int | refinement_edges[2], |
int | type, | ||
int | flag = 0 |
||
) |
Definition at line 68 of file tetrahedron.cpp.
Implements mfem::Element.
Definition at line 332 of file tetrahedron.cpp.
|
inlinevirtual |
Implements mfem::Element.
Definition at line 99 of file tetrahedron.hpp.
|
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.
|
inlinevirtual |
Implements mfem::Element.
Definition at line 97 of file tetrahedron.hpp.
|
inlinevirtual |
Implements mfem::Element.
Definition at line 102 of file tetrahedron.hpp.
|
inlinevirtual |
Implements mfem::Element.
Definition at line 95 of file tetrahedron.hpp.
|
static |
Calculate point matrix corresponding to a chain of transformations.
Definition at line 281 of file tetrahedron.cpp.
|
inline |
Definition at line 65 of file tetrahedron.hpp.
|
inlinevirtual |
Return current coarse-fine transformation.
Reimplemented from mfem::Element.
Definition at line 81 of file tetrahedron.hpp.
|
inlinevirtual |
|
virtual |
Returns the indices of the element's vertices.
Implements mfem::Element.
Definition at line 323 of file tetrahedron.cpp.
|
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.
|
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.
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.
|
inlinevirtual |
Add 'tr' to the current chain of coarse-fine transformations.
Reimplemented from mfem::Element.
Definition at line 84 of file tetrahedron.hpp.
|
inlinevirtual |
Set current coarse-fine transformation number.
Reimplemented from mfem::Element.
Definition at line 80 of file tetrahedron.hpp.
|
inline |
Definition at line 67 of file tetrahedron.hpp.
|
virtual |
Set the vertices according to the given input.
Reimplemented from mfem::Element.
Definition at line 176 of file tetrahedron.cpp.
|
protected |
Definition at line 25 of file tetrahedron.hpp.
|
protected |
The refinement flag keeps (in order) :
Definition at line 35 of file tetrahedron.hpp.
|
protected |
Definition at line 37 of file tetrahedron.hpp.