Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
Nektar::SpatialDomains::Geometry Class Reference

Base class for shape geometry information. More...

#include <Geometry.h>

Inheritance diagram for Nektar::SpatialDomains::Geometry:
Inheritance graph
[legend]
Collaboration diagram for Nektar::SpatialDomains::Geometry:
Collaboration graph
[legend]

Public Member Functions

 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 $j^{th}$ face attached to the $ i^{th}$ vertex
int GetEdgeFaceMap (int i, int j) const
void FillGeom ()
 Put all quadrature information into face/edge structure and backward transform.
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.
void SetOwnData ()
const LibUtilities::BasisSharedPtr GetBasis (const int i)
 Return the j-th basis of the i-th co-ordinate dimension.
const LibUtilities::PointsKeyVector GetPointsKeys ()

Protected Member Functions

void GenGeomFactors ()
virtual bool v_IsElmtConnected (int gvo_id, int locid) const
virtual void v_AddElmtConnected (int gvo_id, int locid)
virtual int v_NumElmtConnected () const
virtual int v_GetEid (int i) const
virtual int v_GetVid (int i) const
virtual int v_GetFid (int i) const
virtual void v_GenGeomFactors ()=0
virtual int v_GetNumVerts () const
virtual PointGeomSharedPtr v_GetVertex (int i) const =0
virtual StdRegions::Orientation v_GetEorient (const int i) const
virtual StdRegions::Orientation v_GetPorient (const int i) const
virtual StdRegions::Orientation v_GetForient (const int i) const
virtual int v_GetNumEdges () const
virtual int v_GetNumFaces () const
virtual int v_GetShapeDim () const
virtual
StdRegions::StdExpansionSharedPtr 
v_GetXmap () const
virtual int v_GetCoordim () const
virtual bool v_ContainsPoint (const Array< OneD, const NekDouble > &gloCoord, NekDouble tol=0.0)
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)
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
virtual void v_FillGeom ()
virtual NekDouble v_GetCoord (const int i, const Array< OneD, const NekDouble > &Lcoord)
virtual NekDouble v_GetLocCoords (const Array< OneD, const NekDouble > &coords, Array< OneD, NekDouble > &Lcoords)
virtual void v_SetOwnData ()
virtual const
LibUtilities::BasisSharedPtr 
v_GetBasis (const int i)
void SetUpCoeffs (const int nCoeffs)

Static Protected Member Functions

static GeomFactorsSharedPtr ValidateRegGeomFactor (GeomFactorsSharedPtr geomFactor)

Protected Attributes

int m_coordim
 coordinate dimension
GeomFactorsSharedPtr m_geomFactors
GeomState m_geomFactorsState
StdRegions::StdExpansionSharedPtr m_xmap
GeomState m_state
 enum identifier to determine if quad points are filled
GeomType m_geomType
LibUtilities::ShapeType m_shapeType
int m_globalID
Array< OneD, Array< OneD,
NekDouble > > 
m_coeffs

Static Protected Attributes

static GeomFactorsVector m_regGeomFactorsManager

Detailed Description

Base class for shape geometry information.

Definition at line 71 of file Geometry.h.

Constructor & Destructor Documentation

Nektar::SpatialDomains::Geometry::Geometry ( )
Nektar::SpatialDomains::Geometry::Geometry ( int  coordim)

Definition at line 56 of file Geometry.cpp.

Nektar::SpatialDomains::Geometry::~Geometry ( )
virtual

Definition at line 65 of file Geometry.cpp.

{
}

Member Function Documentation

void Nektar::SpatialDomains::Geometry::AddElmtConnected ( int  gvo_id,
int  locid 
)
inline

Reimplemented in Nektar::SpatialDomains::PointGeom.

Definition at line 263 of file Geometry.h.

References v_AddElmtConnected().

{
return v_AddElmtConnected(gvo_id, locid);
}
bool Nektar::SpatialDomains::Geometry::ContainsPoint ( const Array< OneD, const NekDouble > &  gloCoord,
NekDouble  tol = 0.0 
)
inline

Definition at line 383 of file Geometry.h.

References v_ContainsPoint().

{
return v_ContainsPoint(gloCoord,tol);
}
bool Nektar::SpatialDomains::Geometry::ContainsPoint ( const Array< OneD, const NekDouble > &  gloCoord,
Array< OneD, NekDouble > &  locCoord,
NekDouble  tol 
)
inline

Definition at line 390 of file Geometry.h.

References v_ContainsPoint().

{
return v_ContainsPoint(gloCoord,locCoord,tol);
}
bool Nektar::SpatialDomains::Geometry::ContainsPoint ( const Array< OneD, const NekDouble > &  gloCoord,
Array< OneD, NekDouble > &  locCoord,
NekDouble  tol,
NekDouble resid 
)
inline

Definition at line 398 of file Geometry.h.

References v_ContainsPoint().

{
return v_ContainsPoint(gloCoord,locCoord,tol,resid);
}
void Nektar::SpatialDomains::Geometry::FillGeom ( )
inline

Put all quadrature information into face/edge structure and backward transform.

See Also
v_FillGeom()

Definition at line 435 of file Geometry.h.

References v_FillGeom().

{
}
void Nektar::SpatialDomains::Geometry::GenGeomFactors ( )
inlineprotected

Definition at line 423 of file Geometry.h.

References v_GenGeomFactors().

Referenced by GetGeomFactors().

{
return v_GenGeomFactors();
}
const LibUtilities::BasisSharedPtr Nektar::SpatialDomains::Geometry::GetBasis ( const int  i)
inline

Return the j-th basis of the i-th co-ordinate dimension.

Definition at line 465 of file Geometry.h.

References v_GetBasis().

Referenced by Nektar::SpatialDomains::PrismGeom::PrismGeom(), Nektar::SpatialDomains::PyrGeom::PyrGeom(), Nektar::SpatialDomains::QuadGeom::QuadGeom(), and Nektar::SpatialDomains::TriGeom::TriGeom().

{
return v_GetBasis(i);
}
const Array< OneD, const NekDouble > & Nektar::SpatialDomains::Geometry::GetCoeffs ( const int  i) const
inline

Definition at line 378 of file Geometry.h.

References m_coeffs.

{
return m_coeffs[i];
}
NekDouble Nektar::SpatialDomains::Geometry::GetCoord ( const int  i,
const Array< OneD, const NekDouble > &  Lcoord 
)
inline

Given local collapsed coordinate Lcoord return the value of physical coordinate in direction i.

Reimplemented in Nektar::SpatialDomains::TriGeom, Nektar::SpatialDomains::QuadGeom, and Nektar::SpatialDomains::SegGeom.

Definition at line 451 of file Geometry.h.

References v_GetCoord().

Referenced by Nektar::SpatialDomains::PointGeom::v_GetCoord().

{
return v_GetCoord(i, Lcoord);
}
int Nektar::SpatialDomains::Geometry::GetCoordim ( ) const
inline

Definition at line 278 of file Geometry.h.

References v_GetCoordim().

Referenced by Nektar::SpatialDomains::PointGeom::Add(), Nektar::SpatialDomains::MeshGraph::CheckRange(), Nektar::SpatialDomains::PointGeom::Sub(), Nektar::SpatialDomains::TetGeom::v_ContainsPoint(), Nektar::SpatialDomains::PrismGeom::v_ContainsPoint(), Nektar::SpatialDomains::HexGeom::v_ContainsPoint(), Nektar::SpatialDomains::SegGeom::v_ContainsPoint(), Nektar::SpatialDomains::QuadGeom::v_ContainsPoint(), and Nektar::SpatialDomains::TriGeom::v_ContainsPoint().

{
return v_GetCoordim();
}
int Nektar::SpatialDomains::Geometry::GetEdgeFaceMap ( int  i,
int  j 
) const
inline

Definition at line 418 of file Geometry.h.

References v_GetEdgeFaceMap().

{
return v_GetEdgeFaceMap(i,j);
}
int Nektar::SpatialDomains::Geometry::GetEid ( int  i) const
inline

Reimplemented in Nektar::SpatialDomains::Geometry3D.

Definition at line 314 of file Geometry.h.

References v_GetEid().

{
return v_GetEid(i);
}
StdRegions::Orientation Nektar::SpatialDomains::Geometry::GetEorient ( const int  i) const
inline

Definition at line 343 of file Geometry.h.

References v_GetEorient().

{
return v_GetEorient(i);
}
int Nektar::SpatialDomains::Geometry::GetFid ( int  i) const
inline

Definition at line 319 of file Geometry.h.

References v_GetFid().

Referenced by Nektar::SpatialDomains::PyrGeom::SetUpLocalEdges(), Nektar::SpatialDomains::TetGeom::SetUpLocalEdges(), Nektar::SpatialDomains::PrismGeom::SetUpLocalEdges(), and Nektar::SpatialDomains::HexGeom::SetUpLocalEdges().

{
return v_GetFid(i);
}
StdRegions::Orientation Nektar::SpatialDomains::Geometry::GetForient ( const int  i) const
inline

Definition at line 353 of file Geometry.h.

References v_GetForient().

{
return v_GetForient(i);
}
GeomFactorsSharedPtr Nektar::SpatialDomains::Geometry::GetGeomFactors ( )
inline

Definition at line 283 of file Geometry.h.

References GenGeomFactors(), m_geomFactors, and ValidateRegGeomFactor().

int Nektar::SpatialDomains::Geometry::GetGlobalID ( void  )
inline

Definition at line 299 of file Geometry.h.

References m_globalID.

{
return m_globalID;
}
NekDouble Nektar::SpatialDomains::Geometry::GetLocCoords ( const Array< OneD, const NekDouble > &  coords,
Array< OneD, NekDouble > &  Lcoords 
)
inline

Definition at line 440 of file Geometry.h.

References v_GetLocCoords().

Referenced by Nektar::SpatialDomains::SegGeom::v_ContainsPoint(), Nektar::SpatialDomains::QuadGeom::v_ContainsPoint(), Nektar::SpatialDomains::TriGeom::v_ContainsPoint(), and Nektar::SpatialDomains::PointGeom::v_GetLocCoords().

{
return v_GetLocCoords(coords, Lcoords);
}
GeomFactorsSharedPtr Nektar::SpatialDomains::Geometry::GetMetricInfo ( void  )
inline

Definition at line 289 of file Geometry.h.

References m_geomFactors.

Referenced by Nektar::SpatialDomains::TetGeom::v_ContainsPoint(), Nektar::SpatialDomains::PrismGeom::v_ContainsPoint(), Nektar::SpatialDomains::HexGeom::v_ContainsPoint(), Nektar::SpatialDomains::TetGeom::v_GetLocCoords(), Nektar::SpatialDomains::PyrGeom::v_GetLocCoords(), Nektar::SpatialDomains::PrismGeom::v_GetLocCoords(), Nektar::SpatialDomains::HexGeom::v_GetLocCoords(), Nektar::SpatialDomains::SegGeom::v_GetLocCoords(), Nektar::SpatialDomains::QuadGeom::v_GetLocCoords(), and Nektar::SpatialDomains::TriGeom::v_GetLocCoords().

{
return m_geomFactors;
}
int Nektar::SpatialDomains::Geometry::GetNumEdges ( ) const
inline

Definition at line 358 of file Geometry.h.

References v_GetNumEdges().

{
return v_GetNumEdges();
}
int Nektar::SpatialDomains::Geometry::GetNumFaces ( ) const
inline

Definition at line 363 of file Geometry.h.

References v_GetNumFaces().

{
return v_GetNumFaces();
}
int Nektar::SpatialDomains::Geometry::GetNumVerts ( ) const
inline

Definition at line 333 of file Geometry.h.

References v_GetNumVerts().

Referenced by Nektar::SpatialDomains::MeshGraph::CheckRange().

{
return v_GetNumVerts();
}
const LibUtilities::PointsKeyVector Nektar::SpatialDomains::Geometry::GetPointsKeys ( )
inline

Definition at line 481 of file Geometry.h.

References m_xmap.

{
return m_xmap->GetPointsKeys();
}
StdRegions::Orientation Nektar::SpatialDomains::Geometry::GetPorient ( const int  i) const
inline

Definition at line 348 of file Geometry.h.

References v_GetPorient().

{
return v_GetPorient(i);
}
GeomFactorsSharedPtr Nektar::SpatialDomains::Geometry::GetRefGeomFactors ( const Array< OneD, const LibUtilities::BasisSharedPtr > &  tbasis)
int Nektar::SpatialDomains::Geometry::GetShapeDim ( ) const
inline

Definition at line 368 of file Geometry.h.

References v_GetShapeDim().

Referenced by GetTid().

{
return v_GetShapeDim();
}
LibUtilities::ShapeType Nektar::SpatialDomains::Geometry::GetShapeType ( void  )
inline

Definition at line 294 of file Geometry.h.

References m_shapeType.

Referenced by Nektar::SpatialDomains::MeshGraph::CheckRange().

{
return m_shapeType;
}
int Nektar::SpatialDomains::Geometry::GetTid ( int  i) const
inline

Definition at line 324 of file Geometry.h.

References GetShapeDim(), v_GetEid(), v_GetFid(), and v_GetVid().

{
const int nDim = GetShapeDim();
return
nDim == 1 ? v_GetVid(i) :
nDim == 2 ? v_GetEid(i) :
nDim == 3 ? v_GetFid(i) : 0;
}
PointGeomSharedPtr Nektar::SpatialDomains::Geometry::GetVertex ( int  i) const
inline

Reimplemented in Nektar::SpatialDomains::Geometry1D.

Definition at line 338 of file Geometry.h.

References v_GetVertex().

Referenced by Nektar::SpatialDomains::MeshGraph::CheckRange(), Nektar::SpatialDomains::QuadGeom::QuadGeom(), Nektar::SpatialDomains::PyrGeom::SetUpFaceOrientation(), Nektar::SpatialDomains::TetGeom::SetUpFaceOrientation(), Nektar::SpatialDomains::PrismGeom::SetUpFaceOrientation(), Nektar::SpatialDomains::HexGeom::SetUpFaceOrientation(), Nektar::SpatialDomains::PyrGeom::SetUpLocalVertices(), Nektar::SpatialDomains::TetGeom::SetUpLocalVertices(), Nektar::SpatialDomains::PrismGeom::SetUpLocalVertices(), Nektar::SpatialDomains::HexGeom::SetUpLocalVertices(), and Nektar::SpatialDomains::TriGeom::TriGeom().

{
return v_GetVertex(i);
}
int Nektar::SpatialDomains::Geometry::GetVertexEdgeMap ( int  i,
int  j 
) const
inline

Definition at line 407 of file Geometry.h.

References v_GetVertexEdgeMap().

{
return v_GetVertexEdgeMap(i,j);
}
int Nektar::SpatialDomains::Geometry::GetVertexFaceMap ( int  i,
int  j 
) const
inline

return the id of the $j^{th}$ face attached to the $ i^{th}$ vertex

Definition at line 413 of file Geometry.h.

References v_GetVertexFaceMap().

{
return v_GetVertexFaceMap(i,j);
}
int Nektar::SpatialDomains::Geometry::GetVid ( int  i) const
inline

Definition at line 309 of file Geometry.h.

References v_GetVid().

Referenced by Nektar::SpatialDomains::SegGeom::GenerateOneSpaceDimGeom(), Nektar::SpatialDomains::PyrGeom::SetUpEdgeOrientation(), Nektar::SpatialDomains::TetGeom::SetUpEdgeOrientation(), Nektar::SpatialDomains::PrismGeom::SetUpEdgeOrientation(), Nektar::SpatialDomains::HexGeom::SetUpEdgeOrientation(), Nektar::SpatialDomains::PyrGeom::SetUpFaceOrientation(), Nektar::SpatialDomains::TetGeom::SetUpFaceOrientation(), Nektar::SpatialDomains::PrismGeom::SetUpFaceOrientation(), Nektar::SpatialDomains::HexGeom::SetUpFaceOrientation(), Nektar::SpatialDomains::PyrGeom::SetUpLocalVertices(), Nektar::SpatialDomains::TetGeom::SetUpLocalVertices(), Nektar::SpatialDomains::PrismGeom::SetUpLocalVertices(), and Nektar::SpatialDomains::HexGeom::SetUpLocalVertices().

{
return v_GetVid(i);
}
StdRegions::StdExpansionSharedPtr Nektar::SpatialDomains::Geometry::GetXmap ( ) const
inline

Definition at line 373 of file Geometry.h.

References v_GetXmap().

Referenced by Nektar::SpatialDomains::HexGeom::HexGeom(), Nektar::SpatialDomains::PrismGeom::PrismGeom(), Nektar::SpatialDomains::PyrGeom::PyrGeom(), Nektar::SpatialDomains::QuadGeom::QuadGeom(), Nektar::SpatialDomains::TetGeom::TetGeom(), Nektar::SpatialDomains::TriGeom::TriGeom(), and Nektar::SpatialDomains::Geometry3D::v_FillGeom().

{
return v_GetXmap();
}
bool Nektar::SpatialDomains::Geometry::IsElmtConnected ( int  gvo_id,
int  locid 
) const
inline

Reimplemented in Nektar::SpatialDomains::PointGeom.

Definition at line 273 of file Geometry.h.

References v_IsElmtConnected().

{
return v_IsElmtConnected(gvo_id,locid);
}
int Nektar::SpatialDomains::Geometry::NumElmtConnected ( ) const
inline

Reimplemented in Nektar::SpatialDomains::PointGeom.

Definition at line 268 of file Geometry.h.

References v_NumElmtConnected().

{
}
void Nektar::SpatialDomains::Geometry::SetCoordim ( int  coordim)
inline

Definition at line 95 of file Geometry.h.

References m_coordim.

{
m_coordim = coordim;
}
void Nektar::SpatialDomains::Geometry::SetGlobalID ( int  globalid)
inline

Definition at line 304 of file Geometry.h.

References m_globalID.

{
m_globalID = globalid;
}
void Nektar::SpatialDomains::Geometry::SetOwnData ( )
inline

Definition at line 457 of file Geometry.h.

References v_SetOwnData().

{
}
void Nektar::SpatialDomains::Geometry::SetUpCoeffs ( const int  nCoeffs)
inlineprotected

Definition at line 471 of file Geometry.h.

References m_coeffs, and m_coordim.

Referenced by Nektar::SpatialDomains::HexGeom::HexGeom(), Nektar::SpatialDomains::PrismGeom::PrismGeom(), Nektar::SpatialDomains::PyrGeom::PyrGeom(), Nektar::SpatialDomains::QuadGeom::QuadGeom(), Nektar::SpatialDomains::SegGeom::SegGeom(), Nektar::SpatialDomains::TetGeom::TetGeom(), and Nektar::SpatialDomains::TriGeom::TriGeom().

{
m_coeffs = Array<OneD, Array<OneD, NekDouble> >(m_coordim);
for (int i = 0; i < m_coordim; ++i)
{
m_coeffs[i] = Array<OneD, NekDouble>(nCoeffs, 0.0);
}
}
void Nektar::SpatialDomains::Geometry::v_AddElmtConnected ( int  gvo_id,
int  locid 
)
protectedvirtual

Reimplemented in Nektar::SpatialDomains::Geometry3D, Nektar::SpatialDomains::SegGeom, Nektar::SpatialDomains::TriGeom, and Nektar::SpatialDomains::QuadGeom.

Definition at line 113 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by AddElmtConnected().

{
"This function is only valid for shape type geometries");
}
bool Nektar::SpatialDomains::Geometry::v_ContainsPoint ( const Array< OneD, const NekDouble > &  gloCoord,
NekDouble  tol = 0.0 
)
protectedvirtual

Reimplemented in Nektar::SpatialDomains::TriGeom, Nektar::SpatialDomains::QuadGeom, Nektar::SpatialDomains::SegGeom, Nektar::SpatialDomains::HexGeom, Nektar::SpatialDomains::PrismGeom, and Nektar::SpatialDomains::TetGeom.

Definition at line 208 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by ContainsPoint().

{
"This function has not been defined for this geometry");
return false;
}
bool Nektar::SpatialDomains::Geometry::v_ContainsPoint ( const Array< OneD, const NekDouble > &  gloCoord,
Array< OneD, NekDouble > &  locCoord,
NekDouble  tol 
)
protectedvirtual

Reimplemented in Nektar::SpatialDomains::TriGeom, Nektar::SpatialDomains::QuadGeom, Nektar::SpatialDomains::SegGeom, Nektar::SpatialDomains::HexGeom, Nektar::SpatialDomains::PrismGeom, and Nektar::SpatialDomains::TetGeom.

Definition at line 217 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

{
"This function has not been defined for this geometry");
return false;
}
bool Nektar::SpatialDomains::Geometry::v_ContainsPoint ( const Array< OneD, const NekDouble > &  gloCoord,
Array< OneD, NekDouble > &  locCoord,
NekDouble  tol,
NekDouble resid 
)
protectedvirtual

Reimplemented in Nektar::SpatialDomains::TriGeom, Nektar::SpatialDomains::QuadGeom, Nektar::SpatialDomains::SegGeom, Nektar::SpatialDomains::HexGeom, Nektar::SpatialDomains::PrismGeom, and Nektar::SpatialDomains::TetGeom.

Definition at line 227 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

{
"This function has not been defined for this geometry");
return false;
}
void Nektar::SpatialDomains::Geometry::v_FillGeom ( )
protectedvirtual

Reimplemented in Nektar::SpatialDomains::TriGeom, Nektar::SpatialDomains::QuadGeom, Nektar::SpatialDomains::SegGeom, and Nektar::SpatialDomains::Geometry3D.

Definition at line 277 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by FillGeom().

{
"This function is only valid for expansion type geometries");
}
virtual void Nektar::SpatialDomains::Geometry::v_GenGeomFactors ( )
protectedpure virtual

Implemented in Nektar::SpatialDomains::TriGeom, Nektar::SpatialDomains::QuadGeom, Nektar::SpatialDomains::SegGeom, Nektar::SpatialDomains::Geometry3D, Nektar::SpatialDomains::PointGeom, Nektar::SpatialDomains::HexGeom, Nektar::SpatialDomains::PrismGeom, and Nektar::SpatialDomains::PyrGeom.

Referenced by GenGeomFactors().

const LibUtilities::BasisSharedPtr Nektar::SpatialDomains::Geometry::v_GetBasis ( const int  i)
protectedvirtual

Reimplemented in Nektar::SpatialDomains::TriGeom, Nektar::SpatialDomains::Geometry3D, Nektar::SpatialDomains::QuadGeom, and Nektar::SpatialDomains::SegGeom.

Definition at line 289 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetBasis().

{
"This function is only valid for shape type geometries");
return returnval;
}
NekDouble Nektar::SpatialDomains::Geometry::v_GetCoord ( const int  i,
const Array< OneD, const NekDouble > &  Lcoord 
)
protectedvirtual

Reimplemented in Nektar::SpatialDomains::SegGeom, Nektar::SpatialDomains::TriGeom, Nektar::SpatialDomains::QuadGeom, and Nektar::SpatialDomains::Geometry3D.

Definition at line 259 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetCoord().

{
"This function is only valid for expansion type geometries");
return 0.0;
}
int Nektar::SpatialDomains::Geometry::v_GetCoordim ( void  ) const
protectedvirtual

Reimplemented in Nektar::SpatialDomains::TriGeom, and Nektar::SpatialDomains::QuadGeom.

Definition at line 297 of file Geometry.cpp.

References m_coordim.

Referenced by GetCoordim().

{
return m_coordim;
}
int Nektar::SpatialDomains::Geometry::v_GetEdgeFaceMap ( int  i,
int  j 
) const
protectedvirtual

Reimplemented in Nektar::SpatialDomains::HexGeom, Nektar::SpatialDomains::PrismGeom, and Nektar::SpatialDomains::TetGeom.

Definition at line 252 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetEdgeFaceMap().

{
"This function has not been defined for this geometry");
return 0;
}
int Nektar::SpatialDomains::Geometry::v_GetEid ( int  i) const
protectedvirtual

Reimplemented in Nektar::SpatialDomains::TriGeom, Nektar::SpatialDomains::QuadGeom, and Nektar::SpatialDomains::Geometry3D.

Definition at line 140 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetEid(), and GetTid().

{
"This function is only valid for shape type geometries");
return 0;
}
StdRegions::Orientation Nektar::SpatialDomains::Geometry::v_GetEorient ( const int  i) const
protectedvirtual

Reimplemented in Nektar::SpatialDomains::TriGeom, Nektar::SpatialDomains::QuadGeom, and Nektar::SpatialDomains::Geometry3D.

Definition at line 161 of file Geometry.cpp.

References ErrorUtil::efatal, Nektar::StdRegions::eForwards, and NEKERROR.

Referenced by GetEorient().

{
"This function is not valid for this geometry.");
}
int Nektar::SpatialDomains::Geometry::v_GetFid ( int  i) const
protectedvirtual

Reimplemented in Nektar::SpatialDomains::Geometry3D.

Definition at line 147 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetFid(), and GetTid().

{
"This function is only valid for expansion type geometries");
return 0;
}
StdRegions::Orientation Nektar::SpatialDomains::Geometry::v_GetForient ( const int  i) const
protectedvirtual

Reimplemented in Nektar::SpatialDomains::Geometry3D.

Definition at line 175 of file Geometry.cpp.

References ErrorUtil::efatal, Nektar::StdRegions::eFwd, and NEKERROR.

Referenced by GetForient().

{
"This function is not valid for this geometry.");
}
NekDouble Nektar::SpatialDomains::Geometry::v_GetLocCoords ( const Array< OneD, const NekDouble > &  coords,
Array< OneD, NekDouble > &  Lcoords 
)
protectedvirtual

Reimplemented in Nektar::SpatialDomains::TriGeom, Nektar::SpatialDomains::QuadGeom, Nektar::SpatialDomains::SegGeom, Nektar::SpatialDomains::HexGeom, Nektar::SpatialDomains::PrismGeom, Nektar::SpatialDomains::PyrGeom, and Nektar::SpatialDomains::TetGeom.

Definition at line 268 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetLocCoords().

{
"This function is only valid for expansion type geometries");
return 0.0;
}
int Nektar::SpatialDomains::Geometry::v_GetNumEdges ( ) const
protectedvirtual

Reimplemented in Nektar::SpatialDomains::TriGeom, Nektar::SpatialDomains::QuadGeom, Nektar::SpatialDomains::SegGeom, Nektar::SpatialDomains::HexGeom, Nektar::SpatialDomains::PrismGeom, Nektar::SpatialDomains::TetGeom, and Nektar::SpatialDomains::PyrGeom.

Definition at line 182 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetNumEdges().

{
"This function is only valid for shape type geometries");
return 0;
}
int Nektar::SpatialDomains::Geometry::v_GetNumFaces ( ) const
protectedvirtual

Reimplemented in Nektar::SpatialDomains::HexGeom, Nektar::SpatialDomains::PrismGeom, and Nektar::SpatialDomains::TetGeom.

Definition at line 189 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetNumFaces().

{
"This function is only valid for shape type geometries");
return 0;
}
int Nektar::SpatialDomains::Geometry::v_GetNumVerts ( ) const
protectedvirtual

Reimplemented in Nektar::SpatialDomains::TriGeom, Nektar::SpatialDomains::QuadGeom, Nektar::SpatialDomains::SegGeom, Nektar::SpatialDomains::HexGeom, Nektar::SpatialDomains::PrismGeom, Nektar::SpatialDomains::TetGeom, and Nektar::SpatialDomains::PyrGeom.

Definition at line 154 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetNumVerts().

{
"This function is only valid for shape type geometries");
return 0;
}
StdRegions::Orientation Nektar::SpatialDomains::Geometry::v_GetPorient ( const int  i) const
protectedvirtual

Reimplemented in Nektar::SpatialDomains::SegGeom.

Definition at line 168 of file Geometry.cpp.

References ErrorUtil::efatal, Nektar::StdRegions::eFwd, and NEKERROR.

Referenced by GetPorient().

{
"This function is not valid for this geometry.");
}
int Nektar::SpatialDomains::Geometry::v_GetShapeDim ( ) const
protectedvirtual

Reimplemented in Nektar::SpatialDomains::Geometry3D, and Nektar::SpatialDomains::Geometry1D.

Definition at line 196 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetShapeDim().

{
"This function is only valid for shape type geometries");
return 0;
}
virtual PointGeomSharedPtr Nektar::SpatialDomains::Geometry::v_GetVertex ( int  i) const
protectedpure virtual

Implemented in Nektar::SpatialDomains::TriGeom, Nektar::SpatialDomains::QuadGeom, Nektar::SpatialDomains::Geometry3D, Nektar::SpatialDomains::PointGeom, Nektar::SpatialDomains::SegGeom, and Nektar::SpatialDomains::Geometry1D.

Referenced by GetVertex().

int Nektar::SpatialDomains::Geometry::v_GetVertexEdgeMap ( int  i,
int  j 
) const
protectedvirtual

Reimplemented in Nektar::SpatialDomains::HexGeom, Nektar::SpatialDomains::PrismGeom, and Nektar::SpatialDomains::TetGeom.

Definition at line 238 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetVertexEdgeMap().

{
"This function has not been defined for this geometry");
return 0;
}
int Nektar::SpatialDomains::Geometry::v_GetVertexFaceMap ( int  i,
int  j 
) const
protectedvirtual

Reimplemented in Nektar::SpatialDomains::HexGeom, Nektar::SpatialDomains::PrismGeom, and Nektar::SpatialDomains::TetGeom.

Definition at line 245 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetVertexFaceMap().

{
"This function has not been defined for this geometry");
return 0;
}
int Nektar::SpatialDomains::Geometry::v_GetVid ( int  i) const
protectedvirtual

Reimplemented in Nektar::SpatialDomains::TriGeom, Nektar::SpatialDomains::QuadGeom, Nektar::SpatialDomains::Geometry3D, Nektar::SpatialDomains::PointGeom, Nektar::SpatialDomains::SegGeom, and Nektar::SpatialDomains::Geometry1D.

Definition at line 133 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetTid(), and GetVid().

{
"This function is only valid for shape type geometries");
return 0;
}
StdRegions::StdExpansionSharedPtr Nektar::SpatialDomains::Geometry::v_GetXmap ( ) const
protectedvirtual

Reimplemented in Nektar::SpatialDomains::SegGeom.

Definition at line 203 of file Geometry.cpp.

References m_xmap.

Referenced by GetXmap().

{
return m_xmap;
}
bool Nektar::SpatialDomains::Geometry::v_IsElmtConnected ( int  gvo_id,
int  locid 
) const
protectedvirtual

Reimplemented in Nektar::SpatialDomains::Geometry3D, Nektar::SpatialDomains::SegGeom, Nektar::SpatialDomains::TriGeom, and Nektar::SpatialDomains::QuadGeom.

Definition at line 126 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by IsElmtConnected().

{
"This function is only valid for shape type geometries");
return false;
}
int Nektar::SpatialDomains::Geometry::v_NumElmtConnected ( ) const
protectedvirtual

Reimplemented in Nektar::SpatialDomains::Geometry3D, Nektar::SpatialDomains::SegGeom, Nektar::SpatialDomains::TriGeom, and Nektar::SpatialDomains::QuadGeom.

Definition at line 119 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by NumElmtConnected().

{
"This function is only valid for shape type geometries");
return 0;
}
void Nektar::SpatialDomains::Geometry::v_SetOwnData ( )
protectedvirtual

Reimplemented in Nektar::SpatialDomains::TriGeom, Nektar::SpatialDomains::Geometry3D, Nektar::SpatialDomains::QuadGeom, and Nektar::SpatialDomains::SegGeom.

Definition at line 283 of file Geometry.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by SetOwnData().

{
"This function is only valid for expansion type geometries");
}
GeomFactorsSharedPtr Nektar::SpatialDomains::Geometry::ValidateRegGeomFactor ( GeomFactorsSharedPtr  geomFactor)
staticprotected
Todo:
should this '#if 0' statement be removed?

Definition at line 69 of file Geometry.cpp.

References Nektar::SpatialDomains::eRegular, and m_regGeomFactorsManager.

Referenced by GetGeomFactors().

{
GeomFactorsSharedPtr returnval = geomFactor;
/// \todo should this '#if 0' statement be removed?
#if 0
bool found = false;
if (geomFactor->GetGtype() == eRegular)
{
iter != m_regGeomFactorsManager.end();
++iter)
{
if (**iter == *geomFactor)
{
returnval = *iter;
found = true;
break;
}
}
if (!found)
{
m_regGeomFactorsManager.push_back(geomFactor);
returnval = geomFactor;
}
}
#endif
return returnval;
}

Member Data Documentation

Array<OneD, Array<OneD, NekDouble> > Nektar::SpatialDomains::Geometry::m_coeffs
protected

Definition at line 172 of file Geometry.h.

Referenced by GetCoeffs(), Nektar::SpatialDomains::QuadGeom::GetCoord(), Nektar::SpatialDomains::TriGeom::GetCoord(), Nektar::SpatialDomains::QuadGeom::QuadGeom(), Nektar::SpatialDomains::SegGeom::SegGeom(), SetUpCoeffs(), Nektar::SpatialDomains::TriGeom::TriGeom(), Nektar::SpatialDomains::TetGeom::v_ContainsPoint(), Nektar::SpatialDomains::PrismGeom::v_ContainsPoint(), Nektar::SpatialDomains::HexGeom::v_ContainsPoint(), Nektar::SpatialDomains::Geometry3D::v_FillGeom(), Nektar::SpatialDomains::QuadGeom::v_FillGeom(), Nektar::SpatialDomains::SegGeom::v_FillGeom(), Nektar::SpatialDomains::TriGeom::v_FillGeom(), Nektar::SpatialDomains::PyrGeom::v_GenGeomFactors(), Nektar::SpatialDomains::PrismGeom::v_GenGeomFactors(), Nektar::SpatialDomains::HexGeom::v_GenGeomFactors(), Nektar::SpatialDomains::Geometry3D::v_GenGeomFactors(), Nektar::SpatialDomains::SegGeom::v_GenGeomFactors(), Nektar::SpatialDomains::QuadGeom::v_GenGeomFactors(), Nektar::SpatialDomains::TriGeom::v_GenGeomFactors(), Nektar::SpatialDomains::Geometry3D::v_GetCoord(), Nektar::SpatialDomains::SegGeom::v_GetCoord(), Nektar::SpatialDomains::TetGeom::v_GetLocCoords(), Nektar::SpatialDomains::PrismGeom::v_GetLocCoords(), Nektar::SpatialDomains::HexGeom::v_GetLocCoords(), Nektar::SpatialDomains::SegGeom::v_GetLocCoords(), Nektar::SpatialDomains::QuadGeom::v_GetLocCoords(), and Nektar::SpatialDomains::TriGeom::v_GetLocCoords().

int Nektar::SpatialDomains::Geometry::m_coordim
protected

coordinate dimension

Definition at line 161 of file Geometry.h.

Referenced by Nektar::SpatialDomains::PointGeom::Add(), Nektar::SpatialDomains::Geometry2D::Geometry2D(), Nektar::SpatialDomains::Geometry3D::Geometry3D(), Nektar::SpatialDomains::PointGeom::GetCoords(), Nektar::SpatialDomains::PointGeom::Mult(), Nektar::SpatialDomains::PointGeom::PointGeom(), Nektar::SpatialDomains::QuadGeom::QuadGeom(), Nektar::SpatialDomains::SegGeom::SegGeom(), SetCoordim(), SetUpCoeffs(), Nektar::SpatialDomains::PyrGeom::SetUpFaceOrientation(), Nektar::SpatialDomains::TetGeom::SetUpFaceOrientation(), Nektar::SpatialDomains::PrismGeom::SetUpFaceOrientation(), Nektar::SpatialDomains::HexGeom::SetUpFaceOrientation(), Nektar::SpatialDomains::PointGeom::Sub(), Nektar::SpatialDomains::TriGeom::TriGeom(), Nektar::SpatialDomains::Geometry3D::v_FillGeom(), Nektar::SpatialDomains::QuadGeom::v_FillGeom(), Nektar::SpatialDomains::SegGeom::v_FillGeom(), Nektar::SpatialDomains::TriGeom::v_FillGeom(), Nektar::SpatialDomains::PyrGeom::v_GenGeomFactors(), Nektar::SpatialDomains::PrismGeom::v_GenGeomFactors(), Nektar::SpatialDomains::HexGeom::v_GenGeomFactors(), Nektar::SpatialDomains::Geometry3D::v_GenGeomFactors(), Nektar::SpatialDomains::SegGeom::v_GenGeomFactors(), Nektar::SpatialDomains::QuadGeom::v_GenGeomFactors(), Nektar::SpatialDomains::TriGeom::v_GenGeomFactors(), Nektar::SpatialDomains::QuadGeom::v_GetCoordim(), Nektar::SpatialDomains::TriGeom::v_GetCoordim(), v_GetCoordim(), Nektar::SpatialDomains::TetGeom::v_GetLocCoords(), Nektar::SpatialDomains::PyrGeom::v_GetLocCoords(), Nektar::SpatialDomains::PrismGeom::v_GetLocCoords(), Nektar::SpatialDomains::HexGeom::v_GetLocCoords(), Nektar::SpatialDomains::SegGeom::v_GetLocCoords(), Nektar::SpatialDomains::QuadGeom::v_GetLocCoords(), and Nektar::SpatialDomains::TriGeom::v_GetLocCoords().

GeomFactorsSharedPtr Nektar::SpatialDomains::Geometry::m_geomFactors
protected

Definition at line 162 of file Geometry.h.

Referenced by Nektar::SpatialDomains::SegGeom::GenerateOneSpaceDimGeom(), GetGeomFactors(), GetMetricInfo(), Nektar::SpatialDomains::Geometry2D::NewtonIterationForLocCoord(), Nektar::SpatialDomains::Geometry3D::NewtonIterationForLocCoord(), Nektar::SpatialDomains::PyrGeom::v_GenGeomFactors(), Nektar::SpatialDomains::PrismGeom::v_GenGeomFactors(), Nektar::SpatialDomains::HexGeom::v_GenGeomFactors(), Nektar::SpatialDomains::Geometry3D::v_GenGeomFactors(), Nektar::SpatialDomains::QuadGeom::v_GenGeomFactors(), Nektar::SpatialDomains::SegGeom::v_GenGeomFactors(), and Nektar::SpatialDomains::TriGeom::v_GenGeomFactors().

GeomState Nektar::SpatialDomains::Geometry::m_geomFactorsState
protected

Definition at line 163 of file Geometry.h.

Referenced by Nektar::SpatialDomains::PyrGeom::v_GenGeomFactors(), Nektar::SpatialDomains::PrismGeom::v_GenGeomFactors(), Nektar::SpatialDomains::HexGeom::v_GenGeomFactors(), Nektar::SpatialDomains::Geometry3D::v_GenGeomFactors(), Nektar::SpatialDomains::QuadGeom::v_GenGeomFactors(), Nektar::SpatialDomains::SegGeom::v_GenGeomFactors(), and Nektar::SpatialDomains::TriGeom::v_GenGeomFactors().

GeomType Nektar::SpatialDomains::Geometry::m_geomType
protected

Definition at line 168 of file Geometry.h.

int Nektar::SpatialDomains::Geometry::m_globalID
protected

Definition at line 170 of file Geometry.h.

Referenced by Nektar::SpatialDomains::SegGeom::GenerateOneSpaceDimGeom(), GetGlobalID(), Nektar::SpatialDomains::PointGeom::PointGeom(), Nektar::SpatialDomains::QuadGeom::QuadGeom(), Nektar::SpatialDomains::SegGeom::SegGeom(), SetGlobalID(), and Nektar::SpatialDomains::TriGeom::TriGeom().

GeomFactorsVector Nektar::SpatialDomains::Geometry::m_regGeomFactorsManager
staticprotected

Definition at line 158 of file Geometry.h.

Referenced by ValidateRegGeomFactor().

LibUtilities::ShapeType Nektar::SpatialDomains::Geometry::m_shapeType
protected

Definition at line 169 of file Geometry.h.

Referenced by GetShapeType(), Nektar::SpatialDomains::HexGeom::HexGeom(), Nektar::SpatialDomains::PointGeom::PointGeom(), Nektar::SpatialDomains::PrismGeom::PrismGeom(), Nektar::SpatialDomains::PyrGeom::PyrGeom(), Nektar::SpatialDomains::QuadGeom::QuadGeom(), Nektar::SpatialDomains::SegGeom::SegGeom(), Nektar::SpatialDomains::TetGeom::TetGeom(), and Nektar::SpatialDomains::TriGeom::TriGeom().

GeomState Nektar::SpatialDomains::Geometry::m_state
protected

enum identifier to determine if quad points are filled

Definition at line 167 of file Geometry.h.

Referenced by Nektar::SpatialDomains::QuadGeom::GetCoord(), Nektar::SpatialDomains::TriGeom::GetCoord(), Nektar::SpatialDomains::SegGeom::SegGeom(), Nektar::SpatialDomains::Geometry3D::v_FillGeom(), Nektar::SpatialDomains::QuadGeom::v_FillGeom(), Nektar::SpatialDomains::SegGeom::v_FillGeom(), Nektar::SpatialDomains::TriGeom::v_FillGeom(), Nektar::SpatialDomains::Geometry3D::v_GetCoord(), and Nektar::SpatialDomains::SegGeom::v_GetCoord().

StdRegions::StdExpansionSharedPtr Nektar::SpatialDomains::Geometry::m_xmap
protected

Definition at line 164 of file Geometry.h.

Referenced by Nektar::SpatialDomains::SegGeom::GenerateOneSpaceDimGeom(), Nektar::SpatialDomains::QuadGeom::GetCoord(), Nektar::SpatialDomains::TriGeom::GetCoord(), GetPointsKeys(), Nektar::SpatialDomains::HexGeom::HexGeom(), Nektar::SpatialDomains::Geometry2D::NewtonIterationForLocCoord(), Nektar::SpatialDomains::Geometry3D::NewtonIterationForLocCoord(), Nektar::SpatialDomains::PrismGeom::PrismGeom(), Nektar::SpatialDomains::PyrGeom::PyrGeom(), Nektar::SpatialDomains::QuadGeom::QuadGeom(), Nektar::SpatialDomains::SegGeom::SegGeom(), Nektar::SpatialDomains::TetGeom::TetGeom(), Nektar::SpatialDomains::TriGeom::TriGeom(), Nektar::SpatialDomains::TetGeom::v_ContainsPoint(), Nektar::SpatialDomains::PrismGeom::v_ContainsPoint(), Nektar::SpatialDomains::HexGeom::v_ContainsPoint(), Nektar::SpatialDomains::Geometry3D::v_FillGeom(), Nektar::SpatialDomains::QuadGeom::v_FillGeom(), Nektar::SpatialDomains::TriGeom::v_FillGeom(), Nektar::SpatialDomains::PyrGeom::v_GenGeomFactors(), Nektar::SpatialDomains::PrismGeom::v_GenGeomFactors(), Nektar::SpatialDomains::HexGeom::v_GenGeomFactors(), Nektar::SpatialDomains::Geometry3D::v_GenGeomFactors(), Nektar::SpatialDomains::QuadGeom::v_GenGeomFactors(), Nektar::SpatialDomains::SegGeom::v_GenGeomFactors(), Nektar::SpatialDomains::TriGeom::v_GenGeomFactors(), Nektar::SpatialDomains::SegGeom::v_GetBasis(), Nektar::SpatialDomains::QuadGeom::v_GetBasis(), Nektar::SpatialDomains::Geometry3D::v_GetBasis(), Nektar::SpatialDomains::TriGeom::v_GetBasis(), Nektar::SpatialDomains::Geometry3D::v_GetCoord(), Nektar::SpatialDomains::SegGeom::v_GetCoord(), Nektar::SpatialDomains::QuadGeom::v_GetEdgeBasis(), Nektar::SpatialDomains::TriGeom::v_GetEdgeBasis(), Nektar::SpatialDomains::TetGeom::v_GetLocCoords(), Nektar::SpatialDomains::PrismGeom::v_GetLocCoords(), Nektar::SpatialDomains::HexGeom::v_GetLocCoords(), Nektar::SpatialDomains::SegGeom::v_GetLocCoords(), Nektar::SpatialDomains::QuadGeom::v_GetLocCoords(), Nektar::SpatialDomains::TriGeom::v_GetLocCoords(), Nektar::SpatialDomains::SegGeom::v_GetXmap(), and v_GetXmap().