Nektar++
|
#include <SegGeom.h>
Public Member Functions | |
SegGeom () | |
SegGeom (int id, const int coordim) | |
SegGeom (int id, const int coordim, const PointGeomSharedPtr vertex[]) | |
SegGeom (int id, const int coordim, const PointGeomSharedPtr vertex[], const CurveSharedPtr &curve) | |
SegGeom (const int id, const PointGeomSharedPtr &vert1, const PointGeomSharedPtr &vert2) | |
SegGeom (const SegGeom &in) | |
SegGeomSharedPtr | GenerateOneSpaceDimGeom (void) |
Generate a one dimensional space segment geometry where the vert[0] has the same x value and vert[1] is set to vert[0] plus the length of the original segment. More... | |
~SegGeom () | |
NekDouble | GetCoord (const int i, const Array< OneD, const NekDouble > &Lcoord) |
StdRegions::StdExpansion1DSharedPtr | operator[] (const int i) const |
Public Member Functions inherited from Nektar::SpatialDomains::Geometry1D | |
Geometry1D () | |
Geometry1D (const int coordim) | |
virtual | ~Geometry1D () |
PointGeomSharedPtr | GetVertex (const int i) const |
LibUtilities::ShapeType | DetShapeType () const |
int | GetEid () const |
Public Member Functions inherited from Nektar::SpatialDomains::Geometry | |
Geometry () | |
Geometry (int coordim) | |
virtual | ~Geometry () |
bool | IsElmtConnected (int gvo_id, int locid) const |
void | AddElmtConnected (int gvo_id, int locid) |
int | NumElmtConnected () const |
int | GetCoordim () const |
void | SetCoordim (int coordim) |
GeomFactorsSharedPtr | GetGeomFactors () |
GeomFactorsSharedPtr | GetRefGeomFactors (const Array< OneD, const LibUtilities::BasisSharedPtr > &tbasis) |
GeomFactorsSharedPtr | GetMetricInfo () |
LibUtilities::ShapeType | GetShapeType (void) |
int | GetGlobalID (void) |
void | SetGlobalID (int globalid) |
int | GetVid (int i) const |
int | GetEid (int i) const |
int | GetFid (int i) const |
int | GetTid (int i) const |
int | GetNumVerts () const |
PointGeomSharedPtr | GetVertex (int i) const |
StdRegions::Orientation | GetEorient (const int i) const |
StdRegions::Orientation | GetPorient (const int i) const |
StdRegions::Orientation | GetForient (const int i) const |
int | GetNumEdges () const |
int | GetNumFaces () const |
int | GetShapeDim () const |
StdRegions::StdExpansionSharedPtr | GetXmap () const |
const Array< OneD, const NekDouble > & | GetCoeffs (const int i) const |
bool | ContainsPoint (const Array< OneD, const NekDouble > &gloCoord, NekDouble tol=0.0) |
bool | ContainsPoint (const Array< OneD, const NekDouble > &gloCoord, Array< OneD, NekDouble > &locCoord, NekDouble tol) |
bool | ContainsPoint (const Array< OneD, const NekDouble > &gloCoord, Array< OneD, NekDouble > &locCoord, NekDouble tol, NekDouble &resid) |
int | GetVertexEdgeMap (int i, int j) const |
int | GetVertexFaceMap (int i, int j) const |
return the id of the face attached to the vertex More... | |
int | GetEdgeFaceMap (int i, int j) const |
void | FillGeom () |
Put all quadrature information into face/edge structure and backward transform. More... | |
NekDouble | GetLocCoords (const Array< OneD, const NekDouble > &coords, Array< OneD, NekDouble > &Lcoords) |
NekDouble | GetCoord (const int i, const Array< OneD, const NekDouble > &Lcoord) |
Given local collapsed coordinate Lcoord return the value of physical coordinate in direction i. More... | |
void | SetOwnData () |
const LibUtilities::BasisSharedPtr | GetBasis (const int i) |
Return the j-th basis of the i-th co-ordinate dimension. More... | |
const LibUtilities::PointsKeyVector | GetPointsKeys () |
void | Reset (CurveMap &curvedEdges, CurveMap &curvedFaces) |
Static Public Member Functions | |
static StdRegions::Orientation | GetEdgeOrientation (const SegGeom &edge1, const SegGeom &edge2) |
Get the orientation of edge1. More... | |
Static Public Attributes | |
static const int | kNverts = 2 |
static const int | kNedges = 1 |
Protected Member Functions | |
virtual int | v_GetVid (int i) const |
virtual PointGeomSharedPtr | v_GetVertex (const int i) const |
virtual int | v_GetEid () const |
virtual const LibUtilities::BasisSharedPtr | v_GetBasis (const int i) |
virtual StdRegions::StdExpansionSharedPtr | v_GetXmap () const |
virtual void | v_SetOwnData () |
virtual void | v_AddElmtConnected (int gvo_id, int locid) |
virtual int | v_NumElmtConnected () const |
virtual bool | v_IsElmtConnected (int gvoId, int locId) const |
virtual LibUtilities::ShapeType | v_DetShapeType () const |
virtual NekDouble | v_GetLocCoords (const Array< OneD, const NekDouble > &coords, Array< OneD, NekDouble > &Lcoords) |
virtual void | v_GenGeomFactors () |
Set up GeoFac for this geometry using Coord quadrature distribution. More... | |
virtual StdRegions::Orientation | v_GetPorient (const int i) const |
virtual void | v_FillGeom () |
put all quadrature information into edge structure and backward transform More... | |
virtual void | v_Reset (CurveMap &curvedEdges, CurveMap &curvedFaces) |
Reset this geometry object: unset the current state and remove allocated GeomFactors. More... | |
virtual NekDouble | v_GetCoord (const int i, const Array< OneD, const NekDouble > &Lcoord) |
virtual int | v_GetNumVerts () const |
virtual int | v_GetNumEdges () const |
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. More... | |
virtual bool | v_ContainsPoint (const Array< OneD, const NekDouble > &gloCoord, Array< OneD, NekDouble > &locCoord, NekDouble tol) |
virtual bool | v_ContainsPoint (const Array< OneD, const NekDouble > &gloCoord, Array< OneD, NekDouble > &locCoord, NekDouble tol, NekDouble &resid) |
Protected Member Functions inherited from Nektar::SpatialDomains::Geometry1D | |
virtual int | v_GetShapeDim () const |
Protected Member Functions inherited from Nektar::SpatialDomains::Geometry | |
void | GenGeomFactors () |
virtual int | v_GetEid (int i) const |
virtual int | v_GetFid (int i) const |
virtual StdRegions::Orientation | v_GetEorient (const int i) const |
virtual StdRegions::Orientation | v_GetForient (const int i) const |
virtual int | v_GetNumFaces () const |
virtual int | v_GetCoordim () const |
virtual int | v_GetVertexEdgeMap (int i, int j) const |
virtual int | v_GetVertexFaceMap (int i, int j) const |
virtual int | v_GetEdgeFaceMap (int i, int j) const |
void | SetUpCoeffs (const int nCoeffs) |
Initialise the m_coeffs array. More... | |
Protected Attributes | |
int | m_eid |
std::list< CompToElmt > | m_elmtMap |
SpatialDomains::PointGeomSharedPtr | m_verts [kNverts] |
StdRegions::Orientation | m_porient [kNverts] |
Protected Attributes inherited from Nektar::SpatialDomains::Geometry | |
int | m_coordim |
coordinate dimension More... | |
GeomFactorsSharedPtr | m_geomFactors |
GeomState | m_geomFactorsState |
StdRegions::StdExpansionSharedPtr | m_xmap |
GeomState | m_state |
enum identifier to determine if quad points are filled More... | |
GeomType | m_geomType |
LibUtilities::ShapeType | m_shapeType |
int | m_globalID |
Array< OneD, Array< OneD, NekDouble > > | m_coeffs |
Private Member Functions | |
void | SetUpXmap () |
Private Attributes | |
bool | m_ownData |
Boolean indicating whether object owns the data. More... | |
CurveSharedPtr | m_curve |
Additional Inherited Members | |
Static Protected Member Functions inherited from Nektar::SpatialDomains::Geometry | |
static GeomFactorsSharedPtr | ValidateRegGeomFactor (GeomFactorsSharedPtr geomFactor) |
Static Protected Attributes inherited from Nektar::SpatialDomains::Geometry | |
static GeomFactorsVector | m_regGeomFactorsManager |
Nektar::SpatialDomains::SegGeom::SegGeom | ( | ) |
Definition at line 48 of file SegGeom.cpp.
References Nektar::LibUtilities::eSegment, and Nektar::SpatialDomains::Geometry::m_shapeType.
Nektar::SpatialDomains::SegGeom::SegGeom | ( | int | id, |
const int | coordim | ||
) |
Definition at line 53 of file SegGeom.cpp.
References Nektar::LibUtilities::eSegment, m_eid, Nektar::SpatialDomains::Geometry::m_globalID, Nektar::SpatialDomains::Geometry::m_shapeType, Nektar::SpatialDomains::Geometry::m_xmap, Nektar::SpatialDomains::Geometry::SetUpCoeffs(), and SetUpXmap().
Nektar::SpatialDomains::SegGeom::SegGeom | ( | int | id, |
const int | coordim, | ||
const PointGeomSharedPtr | vertex[] | ||
) |
Definition at line 64 of file SegGeom.cpp.
References Nektar::SpatialDomains::eNotFilled, Nektar::LibUtilities::eSegment, m_eid, Nektar::SpatialDomains::Geometry::m_globalID, Nektar::SpatialDomains::Geometry::m_shapeType, Nektar::SpatialDomains::Geometry::m_state, m_verts, Nektar::SpatialDomains::Geometry::m_xmap, Nektar::SpatialDomains::Geometry::SetUpCoeffs(), and SetUpXmap().
Nektar::SpatialDomains::SegGeom::SegGeom | ( | int | id, |
const int | coordim, | ||
const PointGeomSharedPtr | vertex[], | ||
const CurveSharedPtr & | curve | ||
) |
Definition at line 85 of file SegGeom.cpp.
References Nektar::SpatialDomains::eNotFilled, Nektar::LibUtilities::eSegment, m_curve, m_eid, Nektar::SpatialDomains::Geometry::m_globalID, Nektar::SpatialDomains::Geometry::m_shapeType, Nektar::SpatialDomains::Geometry::m_state, m_verts, Nektar::SpatialDomains::Geometry::m_xmap, Nektar::SpatialDomains::Geometry::SetUpCoeffs(), and SetUpXmap().
Nektar::SpatialDomains::SegGeom::SegGeom | ( | const int | id, |
const PointGeomSharedPtr & | vert1, | ||
const PointGeomSharedPtr & | vert2 | ||
) |
Definition at line 106 of file SegGeom.cpp.
References Nektar::SpatialDomains::eNotFilled, Nektar::LibUtilities::eSegment, m_eid, Nektar::SpatialDomains::Geometry::m_globalID, Nektar::SpatialDomains::Geometry::m_shapeType, Nektar::SpatialDomains::Geometry::m_state, m_verts, Nektar::SpatialDomains::Geometry::m_xmap, Nektar::SpatialDomains::Geometry::SetUpCoeffs(), and SetUpXmap().
Nektar::SpatialDomains::SegGeom::SegGeom | ( | const SegGeom & | in | ) |
Definition at line 126 of file SegGeom.cpp.
References Nektar::SpatialDomains::Geometry::m_coordim, m_eid, m_elmtMap, Nektar::SpatialDomains::Geometry::m_globalID, Nektar::SpatialDomains::Geometry::m_shapeType, Nektar::SpatialDomains::Geometry::m_state, m_verts, Nektar::SpatialDomains::Geometry::m_xmap, and Nektar::SpatialDomains::Geometry::SetUpCoeffs().
Nektar::SpatialDomains::SegGeom::~SegGeom | ( | ) |
Definition at line 230 of file SegGeom.cpp.
SegGeomSharedPtr Nektar::SpatialDomains::SegGeom::GenerateOneSpaceDimGeom | ( | void | ) |
Generate a one dimensional space segment geometry where the vert[0] has the same x value and vert[1] is set to vert[0] plus the length of the original segment.
Definition at line 175 of file SegGeom.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::SpatialDomains::eNotFilled, Nektar::SpatialDomains::Geometry::GetVid(), m_eid, m_elmtMap, Nektar::SpatialDomains::Geometry::m_geomFactors, Nektar::SpatialDomains::Geometry::m_globalID, m_verts, Nektar::SpatialDomains::Geometry::m_xmap, and v_GenGeomFactors().
NekDouble Nektar::SpatialDomains::SegGeom::GetCoord | ( | const int | i, |
const Array< OneD, const NekDouble > & | Lcoord | ||
) |
|
static |
Get the orientation of edge1.
If edge1 is connected to edge2 in the same direction as the points comprising edge1 then it is forward, otherwise it is backward.
For example, assume edge1 is comprised of points 1 and 2, and edge2 is comprised of points 2 and 3, then edge1 is forward.
If edge1 is comprised of points 2 and 1 and edge2 is comprised of points 3 and 2, then edge1 is backward.
Since both edges are passed, it does not need any information from the EdgeComponent instance.
Backward direction. Vertex 0 is connected to edge 2.
Definition at line 293 of file SegGeom.cpp.
References ASSERTL0, Nektar::StdRegions::eBackwards, Nektar::StdRegions::eForwards, Nektar::SpatialDomains::Geometry1D::GetEid(), and Nektar::SpatialDomains::Geometry1D::GetVertex().
Referenced by Nektar::Utilities::Face::GetGeom(), Nektar::Utilities::Triangle::GetGeom(), Nektar::Utilities::Quadrilateral::GetGeom(), Nektar::SpatialDomains::MeshGraph2D::ReadElements(), and Nektar::SpatialDomains::MeshGraph3D::ReadFaces().
StdRegions::StdExpansion1DSharedPtr Nektar::SpatialDomains::SegGeom::operator[] | ( | const int | i | ) | const |
|
private |
Definition at line 151 of file SegGeom.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eModified_A, m_curve, Nektar::SpatialDomains::Geometry::m_xmap, and npts.
Referenced by SegGeom(), and v_Reset().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 249 of file SegGeom.cpp.
References m_elmtMap.
|
protectedvirtual |
Determines if a point specified in global coordinates is located within this tetrahedral geometry.
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 460 of file SegGeom.cpp.
References Nektar::SpatialDomains::Geometry::GetCoordim().
Referenced by v_ContainsPoint().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 468 of file SegGeom.cpp.
References v_ContainsPoint().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 477 of file SegGeom.cpp.
References Nektar::SpatialDomains::Geometry::GetLocCoords().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry1D.
Definition at line 545 of file SegGeom.cpp.
References Nektar::LibUtilities::eSegment.
|
protectedvirtual |
put all quadrature information into edge structure and backward transform
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 341 of file SegGeom.cpp.
References Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::SpatialDomains::ePtsFilled, ErrorUtil::ewarning, Nektar::eWrapper, Nektar::NekVector< DataType >::GetPtr(), Nektar::NekConstants::kVertexTheSameDouble, Nektar::SpatialDomains::Geometry::m_coeffs, Nektar::SpatialDomains::Geometry::m_coordim, m_curve, Nektar::SpatialDomains::Geometry::m_globalID, Nektar::SpatialDomains::Geometry::m_state, m_verts, Nektar::SpatialDomains::Geometry::m_xmap, NEKERROR, npts, and Nektar::LibUtilities::PointsManager().
Referenced by v_GenGeomFactors(), and v_GetLocCoords().
|
protectedvirtual |
Set up GeoFac for this geometry using Coord quadrature distribution.
Implements Nektar::SpatialDomains::Geometry.
Definition at line 319 of file SegGeom.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::SpatialDomains::eDeformed, Nektar::SpatialDomains::ePtsFilled, Nektar::SpatialDomains::eRegular, Nektar::SpatialDomains::Geometry::m_coeffs, Nektar::SpatialDomains::Geometry::m_coordim, Nektar::SpatialDomains::Geometry::m_geomFactors, Nektar::SpatialDomains::Geometry::m_geomFactorsState, Nektar::SpatialDomains::Geometry::m_xmap, and v_FillGeom().
Referenced by GenerateOneSpaceDimGeom().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 514 of file SegGeom.cpp.
References Nektar::SpatialDomains::Geometry::m_xmap.
|
protectedvirtual |
given local collapsed coordinate Lcoord return the value of physical coordinate in direction i
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 236 of file SegGeom.cpp.
References ASSERTL1, Nektar::SpatialDomains::ePtsFilled, Nektar::SpatialDomains::Geometry::m_coeffs, Nektar::SpatialDomains::Geometry::m_state, and Nektar::SpatialDomains::Geometry::m_xmap.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry1D.
Definition at line 509 of file SegGeom.cpp.
References m_eid.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 419 of file SegGeom.cpp.
References ErrorUtil::efatal, Nektar::SpatialDomains::eRegular, Nektar::SpatialDomains::Geometry::GetMetricInfo(), Nektar::SpatialDomains::Geometry::m_coeffs, Nektar::SpatialDomains::Geometry::m_coordim, Nektar::SpatialDomains::Geometry::m_xmap, NEKERROR, npts, and v_FillGeom().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 555 of file SegGeom.cpp.
References kNedges.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 550 of file SegGeom.cpp.
References kNverts.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 529 of file SegGeom.cpp.
References ASSERTL2, Nektar::StdRegions::eBwd, and Nektar::StdRegions::eFwd.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry1D.
Definition at line 497 of file SegGeom.cpp.
References kNverts, and m_verts.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry1D.
Definition at line 491 of file SegGeom.cpp.
References ASSERTL2, and m_verts.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 519 of file SegGeom.cpp.
References Nektar::SpatialDomains::Geometry::m_xmap.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 260 of file SegGeom.cpp.
References Nektar::StdRegions::find(), and m_elmtMap.
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 255 of file SegGeom.cpp.
References m_elmtMap.
|
protectedvirtual |
Reset this geometry object: unset the current state and remove allocated GeomFactors.
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 404 of file SegGeom.cpp.
References Nektar::iterator, m_curve, Nektar::SpatialDomains::Geometry::m_globalID, Nektar::SpatialDomains::Geometry::m_xmap, Nektar::SpatialDomains::Geometry::SetUpCoeffs(), SetUpXmap(), and Nektar::SpatialDomains::Geometry::v_Reset().
|
protectedvirtual |
Reimplemented from Nektar::SpatialDomains::Geometry.
Definition at line 524 of file SegGeom.cpp.
References m_ownData.
|
static |
Definition at line 99 of file SegGeom.h.
Referenced by v_GetNumEdges().
|
static |
Definition at line 98 of file SegGeom.h.
Referenced by v_GetNumVerts(), and v_GetVertex().
|
private |
Definition at line 174 of file SegGeom.h.
Referenced by SegGeom(), SetUpXmap(), v_FillGeom(), and v_Reset().
|
protected |
Definition at line 102 of file SegGeom.h.
Referenced by GenerateOneSpaceDimGeom(), SegGeom(), and v_GetEid().
|
protected |
Definition at line 103 of file SegGeom.h.
Referenced by GenerateOneSpaceDimGeom(), SegGeom(), v_AddElmtConnected(), v_IsElmtConnected(), and v_NumElmtConnected().
|
private |
Boolean indicating whether object owns the data.
Definition at line 173 of file SegGeom.h.
Referenced by v_SetOwnData().
|
protected |
|
protected |
Definition at line 104 of file SegGeom.h.
Referenced by GenerateOneSpaceDimGeom(), SegGeom(), v_FillGeom(), v_GetVertex(), and v_GetVid().