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

#include <geom.hpp>

Classes

struct  Constants
 
struct  Constants< Geometry::CUBE >
 
struct  Constants< Geometry::POINT >
 
struct  Constants< Geometry::SEGMENT >
 
struct  Constants< Geometry::SQUARE >
 
struct  Constants< Geometry::TETRAHEDRON >
 
struct  Constants< Geometry::TRIANGLE >
 

Public Types

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

Public Member Functions

 Geometry ()
 
 ~Geometry ()
 
const IntegrationRuleGetVertices (int GeomType)
 Return an IntegrationRule consisting of all vertices of the given Geometry::Type, GeomType. More...
 
const IntegrationPointGetCenter (int GeomType)
 Return the center of the given Geometry::Type, GeomType. More...
 
const DenseMatrixGetGeomToPerfGeomJac (int GeomType) const
 
DenseMatrixGetPerfGeomToGeomJac (int GeomType)
 
void GetPerfPointMat (int GeomType, DenseMatrix &pm)
 
void JacToPerfJac (int GeomType, const DenseMatrix &J, DenseMatrix &PJ) const
 
int NumBdr (int GeomType)
 Return the number of boundary "faces" of a given Geometry::Type. More...
 

Static Public Member Functions

static void GetRandomPoint (int GeomType, IntegrationPoint &ip)
 Get a random point in the reference element specified by GeomType. More...
 
static bool CheckPoint (int GeomType, const IntegrationPoint &ip)
 Check if the given point is inside the given reference element. More...
 
static bool CheckPoint (int GeomType, const IntegrationPoint &ip, double eps)
 Check if the given point is inside the given reference element. Overload for fuzzy tolerance. More...
 
static bool ProjectPoint (int GeomType, const IntegrationPoint &beg, IntegrationPoint &end)
 Project a point end, onto the given Geometry::Type, GeomType. More...
 
static bool ProjectPoint (int GeomType, IntegrationPoint &ip)
 Project a point ip, onto the given Geometry::Type, GeomType. More...
 

Static Public Attributes

static const int NumGeom = 6
 
static const int MaxDim = 3
 
static const int NumBdrArray [NumGeom] = { 0, 2, 3, 4, 4, 6 }
 
static const char * Name [NumGeom]
 
static const double Volume [NumGeom]
 
static const int Dimension [NumGeom] = { 0, 1, 2, 2, 3, 3 }
 
static const int NumVerts [NumGeom] = { 1, 2, 3, 4, 4, 8 }
 
static const int NumEdges [NumGeom] = { 0, 1, 3, 4, 6, 12 }
 
static const int NumFaces [NumGeom] = { 0, 0, 1, 1, 4, 6 }
 

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 178 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 297 of file geom.cpp.

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

Check if the given point is inside the given reference element. Overload for fuzzy tolerance.

Definition at line 328 of file geom.cpp.

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

Return the center of the given Geometry::Type, GeomType.

Definition at line 62 of file geom.hpp.

const DenseMatrix& mfem::Geometry::GetGeomToPerfGeomJac ( int  GeomType) const
inline

Definition at line 89 of file geom.hpp.

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

Definition at line 91 of file geom.hpp.

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

Definition at line 583 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 206 of file geom.cpp.

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

Return an IntegrationRule consisting of all vertices of the given Geometry::Type, GeomType.

Definition at line 188 of file geom.cpp.

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

Definition at line 644 of file geom.cpp.

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

Return the number of boundary "faces" of a given Geometry::Type.

Definition at line 98 of file geom.hpp.

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

Project a point end, onto the given Geometry::Type, GeomType.

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 446 of file geom.cpp.

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

Project a point ip, onto the given Geometry::Type, GeomType.

If ip is outside the element, replace it with the point on the boundary that is closest to the original ip and return false; otherwise, return true without changing ip.

Definition at line 497 of file geom.cpp.

Member Data Documentation

const int mfem::Geometry::Dimension = { 0, 1, 2, 2, 3, 3 }
static

Definition at line 39 of file geom.hpp.

const int mfem::Geometry::MaxDim = 3
static

Definition at line 35 of file geom.hpp.

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

Definition at line 37 of file geom.hpp.

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

Definition at line 36 of file geom.hpp.

const int mfem::Geometry::NumEdges = { 0, 1, 3, 4, 6, 12 }
static

Definition at line 41 of file geom.hpp.

const int mfem::Geometry::NumFaces = { 0, 0, 1, 1, 4, 6 }
static

Definition at line 42 of file geom.hpp.

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

Definition at line 34 of file geom.hpp.

const int mfem::Geometry::NumVerts = { 1, 2, 3, 4, 4, 8 }
static

Definition at line 40 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 38 of file geom.hpp.


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