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

#include <geom.hpp>

Public Types

enum  Type {
  POINT, SEGMENT, TRIANGLE, SQUARE,
  TETRAHEDRON, CUBE
}
 

Public Member Functions

 Geometry ()
 
 ~Geometry ()
 
const IntegrationRuleGetVertices (int GeomType)
 
const IntegrationPointGetCenter (int GeomType)
 
DenseMatrixGetPerfGeomToGeomJac (int GeomType)
 
void GetPerfPointMat (int GeomType, DenseMatrix &pm)
 
void JacToPerfJac (int GeomType, const DenseMatrix &J, DenseMatrix &PJ) const
 
int NumBdr (int GeomType)
 

Static Public Member Functions

static void GetRandomPoint (int GeomType, IntegrationPoint &ip)
 
static bool CheckPoint (int GeomType, const IntegrationPoint &ip)
 Check if the given point is inside the given reference element. More...
 
static bool ProjectPoint (int GeomType, const IntegrationPoint &beg, IntegrationPoint &end)
 

Static Public Attributes

static const int NumGeom = 6
 
static const int NumBdrArray [] = { 0, 2, 3, 4, 4, 6 }
 
static const char * Name [NumGeom]
 
static const double Volume [NumGeom]
 

Detailed Description

Types of domains for integration rules and reference finite elements: Geometry::POINT - a point Geometry::SEGMENT - the interval [0,1] Geometry::TRIANGLE - triangle with vertices (0,0), (1,0), (0,1) Geometry::SQUARE - the unit square (0,1)x(0,1) Geometry::TETRAHEDRON - w/ vert. (0,0,0),(1,0,0),(0,1,0),(0,0,1) Geometry::CUBE - the unit cube

Definition at line 29 of file geom.hpp.

Member Enumeration Documentation

Enumerator
POINT 
SEGMENT 
TRIANGLE 
SQUARE 
TETRAHEDRON 
CUBE 

Definition at line 32 of file geom.hpp.

Constructor & Destructor Documentation

mfem::Geometry::Geometry ( )

Definition at line 23 of file geom.cpp.

mfem::Geometry::~Geometry ( )

Definition at line 163 of file geom.cpp.

Member Function Documentation

bool mfem::Geometry::CheckPoint ( int  GeomType,
const IntegrationPoint ip 
)
static

Check if the given point is inside the given reference element.

Definition at line 255 of file geom.cpp.

const IntegrationPoint& mfem::Geometry::GetCenter ( int  GeomType)
inline

Definition at line 51 of file geom.hpp.

DenseMatrix* mfem::Geometry::GetPerfGeomToGeomJac ( int  GeomType)
inline

Definition at line 65 of file geom.hpp.

void mfem::Geometry::GetPerfPointMat ( int  GeomType,
DenseMatrix pm 
)

Definition at line 367 of file geom.cpp.

void mfem::Geometry::GetRandomPoint ( int  GeomType,
IntegrationPoint ip 
)
static

Get a random point in the reference element specified by GeomType. This method uses the function rand() for random number generation.

Definition at line 190 of file geom.cpp.

const IntegrationRule * mfem::Geometry::GetVertices ( int  GeomType)

Definition at line 172 of file geom.cpp.

void mfem::Geometry::JacToPerfJac ( int  GeomType,
const DenseMatrix J,
DenseMatrix PJ 
) const

Definition at line 428 of file geom.cpp.

int mfem::Geometry::NumBdr ( int  GeomType)
inline

Definition at line 71 of file geom.hpp.

bool mfem::Geometry::ProjectPoint ( int  GeomType,
const IntegrationPoint beg,
IntegrationPoint end 
)
static

Check if the end point is inside the reference element, if not overwrite it with the point on the boundary that lies on the line segment between beg and end (beg must be inside the element). Return true if end is inside the element, and false otherwise.

Definition at line 317 of file geom.cpp.

Member Data Documentation

const char * mfem::Geometry::Name
static
Initial value:
=
{ "Point", "Segment", "Triangle", "Square", "Tetrahedron", "Cube" }

Definition at line 36 of file geom.hpp.

const int mfem::Geometry::NumBdrArray = { 0, 2, 3, 4, 4, 6 }
static

Definition at line 35 of file geom.hpp.

const int mfem::Geometry::NumGeom = 6
static

Definition at line 34 of file geom.hpp.

const double mfem::Geometry::Volume
static
Initial value:
=
{ 1.0, 1.0, 0.5, 1.0, 1./6, 1.0 }

Definition at line 37 of file geom.hpp.


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