15 #include "../config/config.hpp"
16 #include "../linalg/densemat.hpp"
63 {
return GeomCenter[GeomType]; }
90 {
return *GeomToPerfGeomJac[GeomType]; }
92 {
return PerfGeomToGeomJac[GeomType]; }
104 static const int NumVert = 1;
106 static const int NumOrient = 1;
107 static const int Orient[NumOrient][NumVert];
108 static const int InvOrient[NumOrient];
114 static const int NumVert = 2;
118 static const int NumOrient = 2;
119 static const int Orient[NumOrient][NumVert];
120 static const int InvOrient[NumOrient];
126 static const int NumVert = 3;
132 static const int I[NumVert];
143 static const int NumOrient = 6;
144 static const int Orient[NumOrient][NumVert];
146 static const int InvOrient[NumOrient];
152 static const int NumVert = 4;
158 static const int I[NumVert];
164 static const int NumOrient = 8;
165 static const int Orient[NumOrient][NumVert];
166 static const int InvOrient[NumOrient];
172 static const int NumVert = 4;
177 static const int MaxFaceVert = 3;
182 static const int I[NumVert];
190 static const int NumVert = 8;
195 static const int MaxFaceVert = 4;
200 static const int I[NumVert];
227 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.