45 namespace SpatialDomains
90 int npts =
m_curve->m_points.size();
119 returnval->m_coordim = 1;
123 vert0->SetGlobalID(vert0->GetGlobalID());
124 returnval->m_verts[0] = vert0;
130 v.push_back(base[0]->GetPointsKey());
145 for (
int i = 0; i < jac.size(); ++i)
147 len += jac[i] * w0[i];
153 vert1->SetGlobalID(vert1->GetGlobalID());
155 returnval->m_verts[1] = vert1;
158 returnval->m_xmap =
m_xmap;
159 returnval->SetUpCoeffs(
m_xmap->GetNcoeffs());
182 return m_xmap->PhysEvaluate(Lcoord, tmp);
215 std::ostringstream errstrm;
216 errstrm <<
"Connected edges do not share a vertex. Edges ";
236 if (
m_xmap->GetBasisNumModes(0) != 2)
255 int npts =
m_curve->m_points.size();
264 "Vertex 0 is separated from first point by more than ";
265 std::stringstream strstrm;
268 err += strstrm.str();
276 "Vertex 1 is separated from last point by more than ";
277 std::stringstream strstrm;
280 err += strstrm.str();
292 for (
int j = 0; j < npts; ++j)
294 tmp[j] = (
m_curve->m_points[j]->GetPtr())[i];
318 CurveMap::iterator it = curvedEdges.find(
m_globalID);
320 if (it != curvedEdges.end())
#define ASSERTL0(condition, msg)
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mode...
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
Describes the specification for a Basis.
Defines a specification for a set of points.
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
Array< OneD, DataType > & GetPtr()
bool m_setupState
Wether or not the setup routines have been run.
PointGeomSharedPtr GetVertex(int i) const
Returns vertex i of this object.
GeomState m_state
Enumeration to dictate whether coefficients are filled.
void SetUpCoeffs(const int nCoeffs)
Initialise the Geometry::m_coeffs array.
virtual void v_Reset(CurveMap &curvedEdges, CurveMap &curvedFaces)
Reset this geometry object: unset the current state, zero Geometry::m_coeffs and remove allocated Geo...
int GetGlobalID(void) const
Get the ID of this object.
LibUtilities::ShapeType m_shapeType
Type of shape.
Array< OneD, Array< OneD, NekDouble > > m_coeffs
Array containing expansion coefficients of m_xmap.
GeomState m_geomFactorsState
State of the geometric factors.
StdRegions::StdExpansionSharedPtr m_xmap
mapping containing isoparametric transformation.
GeomFactorsSharedPtr m_geomFactors
Geometric factors.
int m_coordim
Coordinate dimension of this geometry object.
virtual int v_GetNumVerts() const
Get the number of vertices of this object.
virtual PointGeomSharedPtr v_GetVertex(const int i) const
virtual LibUtilities::ShapeType v_GetShapeType() const
virtual void v_Reset(CurveMap &curvedEdges, CurveMap &curvedFaces)
Reset this geometry object: unset the current state, zero Geometry::m_coeffs and remove allocated Geo...
virtual void v_GenGeomFactors()
SegGeomSharedPtr GenerateOneSpaceDimGeom(void)
Generate a one dimensional space segment geometry where the vert[0] has the same x value and vert[1] ...
CurveSharedPtr m_curve
Boolean indicating whether object owns the data.
SpatialDomains::PointGeomSharedPtr m_verts[kNverts]
static StdRegions::Orientation GetEdgeOrientation(const SegGeom &edge1, const SegGeom &edge2)
Get the orientation of edge1.
virtual NekDouble v_GetCoord(const int i, const Array< OneD, const NekDouble > &Lcoord)
Given local collapsed coordinate Lcoord, return the value of physical coordinate in direction i.
virtual void v_FillGeom()
Populate the coordinate mapping Geometry::m_coeffs information from any children geometry elements.
PointsManagerT & PointsManager(void)
std::vector< PointsKey > PointsKeyVector
@ eGaussLobattoLegendre
1D Gauss-Lobatto-Legendre quadrature points
@ eModified_A
Principle Modified Functions .
static const NekDouble kVertexTheSameDouble
std::shared_ptr< Curve > CurveSharedPtr
std::unordered_map< int, CurveSharedPtr > CurveMap
GeomType
Indicates the type of element geometry.
@ eRegular
Geometry is straight-sided with constant geometric factors.
@ eDeformed
Geometry is curved or has non-constant factors.
std::shared_ptr< SegGeom > SegGeomSharedPtr
std::shared_ptr< PointGeom > PointGeomSharedPtr
@ eNotFilled
Geometric information has not been generated.
@ ePtsFilled
Geometric information has been generated.
The above copyright notice and this permission notice shall be included.
std::shared_ptr< DNekMat > DNekMatSharedPtr