MFEM v4.7.0
Finite element discretization library
|
#include <geom.hpp>
Classes | |
struct | Constants |
struct | Constants< Geometry::CUBE > |
struct | Constants< Geometry::POINT > |
struct | Constants< Geometry::PRISM > |
struct | Constants< Geometry::PYRAMID > |
struct | Constants< Geometry::SEGMENT > |
struct | Constants< Geometry::SQUARE > |
struct | Constants< Geometry::TETRAHEDRON > |
struct | Constants< Geometry::TRIANGLE > |
Public Types | |
enum | Type { INVALID = -1 , POINT = 0 , SEGMENT , TRIANGLE , SQUARE , TETRAHEDRON , CUBE , PRISM , PYRAMID , NUM_GEOMETRIES } |
Public Member Functions | |
Geometry () | |
~Geometry () | |
const IntegrationRule * | GetVertices (int GeomType) const |
Return an IntegrationRule consisting of all vertices of the given Geometry::Type, GeomType. | |
const IntegrationPoint & | GetCenter (int GeomType) const |
Return the center of the given Geometry::Type, GeomType. | |
const DenseMatrix & | GetGeomToPerfGeomJac (int GeomType) const |
const DenseMatrix * | GetPerfGeomToGeomJac (int GeomType) const |
void | GetPerfPointMat (int GeomType, DenseMatrix &pm) const |
void | JacToPerfJac (int GeomType, const DenseMatrix &J, DenseMatrix &PJ) const |
int | NumBdr (int GeomType) const |
Return the number of boundary "faces" of a given Geometry::Type. | |
Static Public Member Functions | |
static void | GetRandomPoint (int GeomType, IntegrationPoint &ip) |
Get a random point in the reference element specified by GeomType. | |
static bool | CheckPoint (int GeomType, const IntegrationPoint &ip) |
Check if the given point is inside the given reference element. | |
static bool | CheckPoint (int GeomType, const IntegrationPoint &ip, real_t eps) |
Check if the given point is inside the given reference element. Overload for fuzzy tolerance. | |
static bool | ProjectPoint (int GeomType, const IntegrationPoint &beg, IntegrationPoint &end) |
Project a point end, onto the given Geometry::Type, GeomType. | |
static bool | ProjectPoint (int GeomType, IntegrationPoint &ip) |
Project a point ip, onto the given Geometry::Type, GeomType. | |
static bool | IsTensorProduct (Type geom) |
static Type | TensorProductGeometry (int dim) |
static int | GetInverseOrientation (Type geom_type, int orientation) |
Return the inverse of the given orientation for the specified geometry type. | |
Static Public Attributes | |
static const int | NumGeom = NUM_GEOMETRIES |
static const int | MaxDim = 3 |
static const int | NumBdrArray [NumGeom] = { 0, 2, 3, 4, 4, 6, 5, 5 } |
static const char * | Name [NumGeom] |
static const real_t | Volume [NumGeom] |
static const int | Dimension [NumGeom] = { 0, 1, 2, 2, 3, 3, 3, 3 } |
static const int | DimStart [MaxDim+2] |
static const int | NumVerts [NumGeom] = { 1, 2, 3, 4, 4, 8, 6, 5 } |
static const int | NumEdges [NumGeom] = { 0, 1, 3, 4, 6, 12, 9, 8 } |
static const int | NumFaces [NumGeom] = { 0, 0, 1, 1, 4, 6, 5, 5 } |
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 Geometry::PRISM - w/ vert. (0,0,0),(1,0,0),(0,1,0),(0,0,1),(1,0,1),(0,1,1) Geometry::PYRAMID - w/ vert. (0,0,0),(1,0,0),(1,1,0),(0,1,0),(0,0,1)
enum mfem::Geometry::Type |
|
static |
|
static |
|
inline |
Return the center of the given Geometry::Type, GeomType.
|
inline |
|
static |
|
inline |
void mfem::Geometry::GetPerfPointMat | ( | int | GeomType, |
DenseMatrix & | pm ) const |
|
static |
const IntegrationRule * mfem::Geometry::GetVertices | ( | int | GeomType | ) | const |
Return an IntegrationRule consisting of all vertices of the given Geometry::Type, GeomType.
|
inlinestatic |
void mfem::Geometry::JacToPerfJac | ( | int | GeomType, |
const DenseMatrix & | J, | ||
DenseMatrix & | PJ ) const |
|
inline |
Return the number of boundary "faces" of a given Geometry::Type.
|
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.
|
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.
|
inlinestatic |
Returns the Geometry::Type corresponding to a tensor-product of the given dimension.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |