15 #include "../config/config.hpp"
16 #include "../linalg/densemat.hpp"
62 {
return GeomCenter[GeomType]; }
89 {
return *GeomToPerfGeomJac[GeomType]; }
91 {
return PerfGeomToGeomJac[GeomType]; }
103 static const int NumVert = 1;
105 static const int NumOrient = 1;
106 static const int Orient[NumOrient][NumVert];
107 static const int InvOrient[NumOrient];
113 static const int NumVert = 2;
117 static const int NumOrient = 2;
118 static const int Orient[NumOrient][NumVert];
119 static const int InvOrient[NumOrient];
125 static const int NumVert = 3;
131 static const int I[NumVert];
142 static const int NumOrient = 6;
143 static const int Orient[NumOrient][NumVert];
145 static const int InvOrient[NumOrient];
151 static const int NumVert = 4;
157 static const int I[NumVert];
163 static const int NumOrient = 8;
164 static const int Orient[NumOrient][NumVert];
165 static const int InvOrient[NumOrient];
171 static const int NumVert = 4;
176 static const int MaxFaceVert = 3;
181 static const int I[NumVert];
189 static const int NumVert = 8;
194 static const int MaxFaceVert = 4;
199 static const int I[NumVert];
226 RefinedGeometry *FindInRGeom(
int Geom,
int Times,
int ETimes,
int Type);
Class for an integration rule - an Array of IntegrationPoint.
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.
RefinedGeometry * Refine(int Geom, int Times, int ETimes=1)
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 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.
const IntegrationRule * RefineInterior(int Geom, int Times)
static const int NumVerts[NumGeom]
GeometryRefiner GlobGeometryRefiner
static const int NumBdrArray[NumGeom]
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)
Class for integration point with weight.
int GetType() const
Get the Quadrature1D type of points used for subdivision.
static bool CheckPoint(int GeomType, const IntegrationPoint &ip)
Check if the given point is inside the given reference element.