36#ifndef NEKTAR_SPATIALDOMAINS_QUADGEOM_H
37#define NEKTAR_SPATIALDOMAINS_QUADGEOM_H
62 std::array<SegGeom *, kNverts> edges,
63 Curve *curve =
nullptr);
72 std::array<PointGeom *, 4> face1, std::array<PointGeom *, 4> face2,
73 bool doRot =
false,
int dir = 0,
NekDouble angle = 0.0,
86 const int facedir)
const override;
#define SPATIAL_DOMAINS_EXPORT
std::array< PointGeom *, kNverts > m_verts
void v_Reset(CurveMap &curvedEdges, CurveMap &curvedFaces) override
Reset this geometry object: unset the current state, zero Geometry::m_coeffs and remove allocated Geo...
static const std::string XMLElementType
static StdRegions::Orientation GetFaceOrientation(const QuadGeom &face1, const QuadGeom &face2, bool doRot=false, int dir=0, NekDouble angle=0.0, NekDouble tol=1e-8)
Get the orientation of face1.
std::array< StdRegions::Orientation, kNedges > m_eorient
static const int kNfacets
NekDouble v_GetCoord(const int i, const Array< OneD, const NekDouble > &Lcoord) override
Given local collapsed coordinate Lcoord, return the value of physical coordinate in direction i.
void PreSolveStraightEdge()
int v_GetNumVerts() const final
Get the number of vertices of this object.
GeomFactorsUniquePtr v_GenGeomFactors(LibUtilities::PointsKeyVector &keyTgt) override
Used by Expansion to generate associated GeomFactors.
PointGeom * v_GetVertex(const int i) const final
Returns vertex i of this object.
StdRegions::Orientation v_GetEorient(const int i) const final
Returns the orientation of edge i with respect to the ordering of edges in the standard element.
std::array< SegGeom *, kNedges > m_edges
void v_FillGeom() override
Geometry1D * v_GetEdge(const int i) const final
Returns edge i of this object.
int v_GetNumEdges() const final
Get the number of edges of this object.
~QuadGeom() override=default
int v_GetDir(const int faceidx, const int facedir) const override
Returns the element coordinate direction corresponding to a given face coordinate direction.
QuadGeom(const int id, std::array< SegGeom *, kNverts > edges, Curve *curve=nullptr)
int v_AllLeftCheck(const Array< OneD, const NekDouble > &gloCoord) override
GeomType v_CalcGeomType() override
std::vector< PointsKey > PointsKeyVector
unique_ptr_objpool< GeomFactors > GeomFactorsUniquePtr
std::map< int, CurveUniquePtr > CurveMap
GeomType
Indicates the type of element geometry.