15 #include "../config/config.hpp"
16 #include "../linalg/densemat.hpp"
71 {
return GeomCenter[GeomType]; }
98 {
return *GeomToPerfGeomJac[GeomType]; }
100 {
return PerfGeomToGeomJac[GeomType]; }
116 case 0:
return POINT;
120 default: MFEM_ABORT(
"Invalid dimension.");
return INVALID;
131 static const int NumVert = 1;
133 static const int NumOrient = 1;
134 static const int Orient[NumOrient][NumVert];
135 static const int InvOrient[NumOrient];
141 static const int NumVert = 2;
145 static const int NumOrient = 2;
146 static const int Orient[NumOrient][NumVert];
147 static const int InvOrient[NumOrient];
153 static const int NumVert = 3;
159 static const int I[NumVert];
170 static const int NumOrient = 6;
171 static const int Orient[NumOrient][NumVert];
173 static const int InvOrient[NumOrient];
179 static const int NumVert = 4;
185 static const int I[NumVert];
191 static const int NumOrient = 8;
192 static const int Orient[NumOrient][NumVert];
193 static const int InvOrient[NumOrient];
199 static const int NumVert = 4;
204 static const int MaxFaceVert = 3;
209 static const int I[NumVert];
213 static const int NumOrient = 24;
214 static const int Orient[NumOrient][NumVert];
215 static const int InvOrient[NumOrient];
221 static const int NumVert = 8;
226 static const int MaxFaceVert = 4;
231 static const int I[NumVert];
239 static const int NumVert = 6;
244 static const int MaxFaceVert = 4;
249 static const int I[NumVert];
Class for an integration rule - an Array of IntegrationPoint.
static Type TensorProductGeometry(int dim)
RefinedGeometry(int NPts, int NRefG, int NRefE, int NBdrE=0)
void JacToPerfJac(int GeomType, const DenseMatrix &J, DenseMatrix &PJ) const
static void GetRandomPoint(int GeomType, IntegrationPoint &ip)
Get a random point in the reference element specified by GeomType.
Data type dense matrix using column-major storage.
static const double Volume[NumGeom]
static const int NumEdges[NumGeom]
const IntegrationPoint & GetCenter(int GeomType)
Return the center of the given Geometry::Type, GeomType.
const IntegrationRule * GetVertices(int GeomType)
Return an IntegrationRule consisting of all vertices of the given Geometry::Type, GeomType...
const IntegrationRule * RefineInterior(Geometry::Type Geom, int Times)
const DenseMatrix & GetGeomToPerfGeomJac(int GeomType) const
static const int NumFaces[NumGeom]
static const int Dimension[NumGeom]
void SetType(const int t)
Set the Quadrature1D type of points to use for subdivision.
static const int NumVerts[NumGeom]
GeometryRefiner GlobGeometryRefiner
static const int NumBdrArray[NumGeom]
RefinedGeometry * Refine(Geometry::Type Geom, int Times, int ETimes=1)
virtual int GetRefinementLevelFromElems(Geometry::Type geom, int Npts)
Get the Refinement level based on number of elements.
static const char * Name[NumGeom]
static bool ProjectPoint(int GeomType, const IntegrationPoint &beg, IntegrationPoint &end)
Project a point end, onto the given Geometry::Type, GeomType.
void GetPerfPointMat(int GeomType, DenseMatrix &pm)
int NumBdr(int GeomType)
Return the number of boundary "faces" of a given Geometry::Type.
DenseMatrix * GetPerfGeomToGeomJac(int GeomType)
static bool IsTensorProduct(Type geom)
Class for integration point with weight.
int GetType() const
Get the Quadrature1D type of points used for subdivision.
virtual int GetRefinementLevelFromPoints(Geometry::Type Geom, int Npts)
Get the Refinement level based on number of points.
static const int DimStart[MaxDim+2]
static bool CheckPoint(int GeomType, const IntegrationPoint &ip)
Check if the given point is inside the given reference element.