46 namespace SpatialDomains
102 m_verts[1] = vertex[1];
135 std::list<CompToElmt>::const_iterator def;
180 returnval->m_eid =
m_eid;
186 returnval->m_coordim = 1;
189 vert0->SetGlobalID(vert0->GetVid());
190 returnval->m_verts[0] = vert0;
195 v.push_back(base[0]->GetPointsKey());
201 if(jac.num_elements() == 1)
210 for(
int i = 0; i < jac.num_elements(); ++i)
217 vert1->SetGlobalID(vert1->GetVid());
219 returnval->m_verts[1] = vert1;
222 returnval->m_xmap =
m_xmap;
223 returnval->SetUpCoeffs(
m_xmap->GetNcoeffs());
241 "Geometry is not in physical space");
246 return m_xmap->PhysEvaluate(Lcoord, tmp);
262 std::list<CompToElmt>::const_iterator def;
309 std::ostringstream errstrm;
310 errstrm <<
"Connected edges do not share a vertex. Edges ";
327 if(
m_xmap->GetBasisNumModes(0)!=2)
355 std::string err =
"Vertex 0 is separated from first point by more than ";
356 std::stringstream strstrm;
359 err += strstrm.str();
365 std::string err =
"Vertex 1 is separated from last point by more than ";
366 std::stringstream strstrm;
369 err += strstrm.str();
381 for(
int j = 0; j <
npts; ++j)
383 tmp[j] = (
m_curve->m_points[j]->GetPtr())[i];
410 if (it != curvedEdges.end())
439 len += (pts[npts-1]-pts[0])*(pts[npts-1]-pts[0]);
440 xi += (coords[i]-pts[0])*(coords[i]-pts[0]);
446 Lcoords[0] = 2*xi/len-1.0;
451 "inverse mapping must be set up to use this call");
484 if (stdCoord[0] >= -(1+tol) && stdCoord[0] <= 1+tol)
493 ASSERTL2((i >=0) && (i <= 1),
"Verted id must be between 0 and 1");
522 return m_xmap->GetBasis(i);
538 ASSERTL2((i >=0) && (i <= 1),
"Point id must be between 0 and 1");
StdRegions::StdExpansionSharedPtr m_xmap
#define ASSERTL0(condition, msg)
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
virtual PointGeomSharedPtr v_GetVertex(const int i) const
std::vector< PointsKey > PointsKeyVector
static boost::shared_ptr< DataType > AllocateSharedPtr()
Allocate a shared pointer from the memory pool.
GeomFactorsSharedPtr m_geomFactors
Structure holding graphvertexobject id and local element facet id.
virtual int v_GetNumVerts() const
bool m_ownData
Boolean indicating whether object owns the data.
virtual NekDouble v_GetLocCoords(const Array< OneD, const NekDouble > &coords, Array< OneD, NekDouble > &Lcoords)
virtual StdRegions::StdExpansionSharedPtr v_GetXmap() const
Principle Modified Functions .
virtual int v_GetNumEdges() const
virtual void v_Reset(CurveMap &curvedEdges, CurveMap &curvedFaces)
Reset this geometry object: unset the current state and remove allocated GeomFactors.
virtual bool v_IsElmtConnected(int gvoId, int locId) const
static const NekDouble kVertexTheSameDouble
boost::shared_ptr< DNekMat > DNekMatSharedPtr
GeomState m_geomFactorsState
virtual StdRegions::Orientation v_GetPorient(const int i) const
static StdRegions::Orientation GetEdgeOrientation(const SegGeom &edge1, const SegGeom &edge2)
Get the orientation of edge1.
boost::shared_ptr< Curve > CurveSharedPtr
SegGeomSharedPtr GenerateOneSpaceDimGeom(void)
Generate a one dimensional space segment geometry where the vert[0] has the same x value and vert[1] ...
virtual LibUtilities::ShapeType v_DetShapeType() const
virtual void v_GenGeomFactors()
Set up GeoFac for this geometry using Coord quadrature distribution.
Geometric information has not been generated.
virtual int v_NumElmtConnected() const
boost::shared_ptr< SegGeom > SegGeomSharedPtr
virtual const LibUtilities::BasisSharedPtr v_GetBasis(const int i)
PointsManagerT & PointsManager(void)
Defines a specification for a set of points.
PointGeomSharedPtr GetVertex(const int i) const
SpatialDomains::PointGeomSharedPtr m_verts[kNverts]
virtual int v_GetShapeDim() const
StandardMatrixTag boost::call_traits< LhsDataType >::const_reference rhs typedef NekMatrix< LhsDataType, StandardMatrixTag >::iterator iterator
virtual void v_SetOwnData()
Array< OneD, Array< OneD, NekDouble > > m_coeffs
#define ASSERTL2(condition, msg)
Assert Level 2 – Debugging which is used FULLDEBUG compilation mode. This level assert is designed t...
Geometry is straight-sided with constant geometric factors.
std::list< CompToElmt > m_elmtMap
NekDouble GetLocCoords(const Array< OneD, const NekDouble > &coords, Array< OneD, NekDouble > &Lcoords)
virtual NekDouble v_GetCoord(const int i, const Array< OneD, const NekDouble > &Lcoord)
LibUtilities::ShapeType m_shapeType
InputIterator find(InputIterator first, InputIterator last, InputIterator startingpoint, const EqualityComparable &value)
virtual void v_FillGeom()
put all quadrature information into edge structure and backward transform
virtual bool v_ContainsPoint(const Array< OneD, const NekDouble > &gloCoord, NekDouble tol=0.0)
Determines if a point specified in global coordinates is located within this tetrahedral geometry...
boost::unordered_map< int, CurveSharedPtr > CurveMap
virtual void v_Reset(CurveMap &curvedEdges, CurveMap &curvedFaces)
Reset this geometry object: unset the current state and remove allocated GeomFactors.
Geometric information has been generated.
void SetUpCoeffs(const int nCoeffs)
Initialise the m_coeffs array.
GeomFactorsSharedPtr GetMetricInfo()
virtual void v_AddElmtConnected(int gvo_id, int locid)
GeomType
Indicates the type of element geometry.
virtual int v_GetEid() const
boost::shared_ptr< Basis > BasisSharedPtr
GeomState m_state
enum identifier to determine if quad points are filled
boost::shared_ptr< StdExpansion > StdExpansionSharedPtr
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Geometry is curved or has non-constant factors.
int m_coordim
coordinate dimension
Describes the specification for a Basis.
Array< OneD, DataType > & GetPtr()
boost::shared_ptr< PointGeom > PointGeomSharedPtr
1D Gauss-Lobatto-Legendre quadrature points
virtual int v_GetVid(int i) const