MFEM  v3.1 Finite element discretization library
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

 enum mfem::Geometry::Type
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: