15 #include "../config/config.hpp"
16 #include "../linalg/densemat.hpp"
72 {
return GeomCenter[GeomType]; }
99 {
return *GeomToPerfGeomJac[GeomType]; }
101 {
return PerfGeomToGeomJac[GeomType]; }
117 case 0:
return POINT;
121 default: MFEM_ABORT(
"Invalid dimension.");
return INVALID;
132 static const int NumVert = 1;
134 static const int NumOrient = 1;
135 static const int Orient[NumOrient][NumVert];
136 static const int InvOrient[NumOrient];
142 static const int NumVert = 2;
146 static const int NumOrient = 2;
147 static const int Orient[NumOrient][NumVert];
148 static const int InvOrient[NumOrient];
154 static const int NumVert = 3;
160 static const int I[NumVert];
171 static const int NumOrient = 6;
172 static const int Orient[NumOrient][NumVert];
174 static const int InvOrient[NumOrient];
180 static const int NumVert = 4;
186 static const int I[NumVert];
192 static const int NumOrient = 8;
193 static const int Orient[NumOrient][NumVert];
194 static const int InvOrient[NumOrient];
200 static const int NumVert = 4;
205 static const int MaxFaceVert = 3;
210 static const int I[NumVert];
214 static const int NumOrient = 24;
215 static const int Orient[NumOrient][NumVert];
216 static const int InvOrient[NumOrient];
222 static const int NumVert = 8;
227 static const int MaxFaceVert = 4;
232 static const int I[NumVert];
240 static const int NumVert = 6;
245 static const int MaxFaceVert = 4;
250 static const int I[NumVert];
258 static const int NumVert = 5;
263 static const int MaxFaceVert = 4;
268 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.