Nektar++
Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations | Functions | Variables
Nektar::SpatialDomains Namespace Reference

Classes

class  Array3D
 
struct  BoundaryConditionBase
 
class  BoundaryConditions
 
struct  Composite
 
struct  Curve
 
struct  DirichletBoundaryCondition
 
class  EntityHolder
 
class  EntityHolder1D
 
struct  ExpansionInfo
 
class  Geometry
 Base class for shape geometry information. More...
 
class  Geometry0D
 1D geometry information More...
 
class  Geometry1D
 1D geometry information More...
 
class  Geometry2D
 2D geometry information More...
 
class  Geometry3D
 3D geometry information More...
 
struct  GeometryHash
 Unary function that constructs a hash of a Geometry object, based on the vertex IDs. More...
 
class  GeomFactors
 Calculation and storage of geometric factors associated with the mapping from StdRegions reference elements to a given LocalRegions physical element in the mesh. More...
 
struct  GeomFactorsHash
 A hash functor for geometric factors. Utilises GeomFactors::GetHash. More...
 
class  GeomMapView
 
class  HexGeom
 
struct  Interface
 A interface which is a single edge on a zone for handling non-conformality. More...
 
struct  InterfacePair
 
class  LinearMeshGraph
 
struct  MeshCurvedInfo
 
struct  MeshCurvedPts
 
struct  MeshEdge
 
struct  MeshEntity
 
class  MeshGraph
 Base class for a spectral/hp element mesh. More...
 
class  MeshGraphIO
 
class  MeshGraphIOHDF5
 
class  MeshGraphIOXml
 
class  MeshGraphIOXmlCompressed
 
struct  MeshHex
 
class  MeshPartition
 
class  MeshPartitionMetis
 
class  MeshPartitionPtScotch
 
class  MeshPartitionScotch
 
struct  MeshPrism
 
struct  MeshPyr
 
struct  MeshQuad
 
struct  MeshTet
 
struct  MeshTri
 
struct  MeshVertex
 
class  Movement
 
struct  NeumannBoundaryCondition
 
struct  NotDefinedBoundaryCondition
 
struct  PeriodicBoundaryCondition
 
class  PointGeom
 
class  PrismGeom
 
class  PyrGeom
 
class  QuadGeom
 
class  RefRegion
 Abstract base class for the refinement surface region. More...
 
class  RefRegionCylinder
 Derived class for the refinement surface region. More...
 
class  RefRegionLine
 Derived class for the refinement surface region. More...
 
class  RefRegionParallelogram
 Derived class for the refinement surface region. More...
 
class  RefRegionSphere
 Derived class for the refinement surface region. More...
 
struct  RobinBoundaryCondition
 
class  SegGeom
 
class  TetGeom
 
class  TriGeom
 
class  XmapFactory
 A simple factory for Xmap objects that is based on the element type, the basis and quadrature selection. More...
 
struct  ZoneBase
 Zone base: Contains the shared functions and variables. More...
 
struct  ZoneFixed
 Fixed zone: does not move. More...
 
struct  ZoneRotate
 Rotating zone: Motion of every point around a given axis on an origin. More...
 
struct  ZoneTranslate
 Translating zone: addition of a constant vector to every point. More...
 

Typedefs

typedef std::map< int, CompositeSharedPtrBoundaryRegion
 
typedef std::shared_ptr< BoundaryRegionBoundaryRegionShPtr
 
typedef std::shared_ptr< const BoundaryRegionConstBoundaryRegionShPtr
 
typedef std::map< int, BoundaryRegionShPtrBoundaryRegionCollection
 
typedef std::shared_ptr< BoundaryConditionBaseBoundaryConditionShPtr
 
typedef std::shared_ptr< DirichletBoundaryConditionDirichletBCShPtr
 
typedef std::shared_ptr< NeumannBoundaryConditionNeumannBCShPtr
 
typedef std::shared_ptr< RobinBoundaryConditionRobinBCShPtr
 
typedef std::map< std::string, BoundaryConditionShPtrBoundaryConditionMap
 
typedef std::shared_ptr< BoundaryConditionMapBoundaryConditionMapShPtr
 
typedef std::map< int, BoundaryConditionMapShPtrBoundaryConditionCollection
 
typedef std::shared_ptr< BoundaryConditionsBoundaryConditionsSharedPtr
 
typedef unique_ptr_objpool< GeometryGeometryUniquePtr
 
typedef unique_ptr_objpool< GeomFactorsGeomFactorsUniquePtr
 
typedef unique_ptr_objpool< CurveCurveUniquePtr
 
typedef std::map< int, CurveUniquePtrCurveMap
 
typedef std::vector< GeomFactors * > GeomFactorsVector
 A vector of GeomFactor pointers.
 
typedef std::unordered_set< GeomFactors * > GeomFactorsSet
 An unordered set of GeomFactor pointers.
 
typedef Array< OneD, Array< OneD, Array< OneD, NekDouble > > > DerivStorage
 Storage type for derivative of mapping.
 
template<typename T >
using GeomMap = std::map< int, unique_ptr_objpool< T > >
 
typedef unique_ptr_objpool< PointGeomPointGeomUniquePtr
 
typedef unique_ptr_objpool< SegGeomSegGeomUniquePtr
 
typedef unique_ptr_objpool< TriGeomTriGeomUniquePtr
 
typedef unique_ptr_objpool< QuadGeomQuadGeomUniquePtr
 
typedef unique_ptr_objpool< TetGeomTetGeomUniquePtr
 
typedef unique_ptr_objpool< PyrGeomPyrGeomUniquePtr
 
typedef unique_ptr_objpool< PrismGeomPrismGeomUniquePtr
 
typedef unique_ptr_objpool< HexGeomHexGeomUniquePtr
 
typedef unique_ptr_objpool< Geometry2DGeometry2DUniquePtr
 
typedef unique_ptr_objpool< Geometry3DGeometry3DUniquePtr
 
typedef std::map< int, std::pair< LibUtilities::ShapeType, std::vector< int > > > CompositeDescriptor
 
typedef std::map< int, std::vector< unsigned int > > CompositeOrdering
 
typedef std::map< int, std::vector< unsigned int > > BndRegionOrdering
 
typedef std::shared_ptr< CompositeCompositeSharedPtr
 
typedef std::map< int, CompositeSharedPtrCompositeMap
 
typedef std::shared_ptr< ExpansionInfoExpansionInfoShPtr
 
typedef std::map< int, ExpansionInfoShPtrExpansionInfoMap
 
typedef std::shared_ptr< ExpansionInfoMapExpansionInfoMapShPtr
 
typedef std::map< std::string, ExpansionInfoMapShPtrExpansionInfoMapShPtrMap
 
typedef std::map< std::string, std::string > GeomInfoMap
 
typedef std::shared_ptr< std::vector< std::pair< Geometry *, int > > > GeometryLinkSharedPtr
 
typedef std::map< std::string, std::string > MeshMetaDataMap
 
typedef std::shared_ptr< MeshGraphMeshGraphSharedPtr
 
typedef std::shared_ptr< MovementMovementSharedPtr
 
typedef LibUtilities::NekFactory< std::string, MeshGraphMeshGraphFactory
 
typedef std::shared_ptr< MeshGraphIOMeshGraphIOSharedPtr
 
typedef LibUtilities::NekFactory< std::string, MeshGraphIOMeshGraphIOFactory
 
typedef LibUtilities::NekFactory< std::string, MeshPartition, const LibUtilities::SessionReaderSharedPtr, LibUtilities::CommSharedPtr, int, std::map< int, MeshEntity >, CompositeDescriptorMeshPartitionFactory
 Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class.
 
typedef std::shared_ptr< MeshPartitionMeshPartitionSharedPtr
 
typedef std::shared_ptr< InterfaceInterfaceShPtr
 
typedef std::shared_ptr< InterfacePairInterfacePairShPtr
 
typedef std::map< std::pair< int, std::string >, InterfacePairShPtrInterfaceCollection
 
typedef std::shared_ptr< ZoneBaseZoneBaseShPtr
 
typedef std::shared_ptr< ZoneRotateZoneRotateShPtr
 
typedef std::shared_ptr< ZoneTranslateZoneTranslateShPtr
 
typedef std::shared_ptr< ZoneFixedZoneFixedShPtr
 

Enumerations

enum  BoundaryConditionType {
  eDirichlet , eNeumann , eRobin , ePeriodic ,
  eNotDefined
}
 
enum  ExpansionType {
  eNoExpansionType , eModified , eModifiedQuadPlus1 , eModifiedQuadPlus2 ,
  eModifiedGLLRadau10 , eOrthogonal , eGLL_Lagrange , eGLL_Lagrange_SEM ,
  eGauss_Lagrange , eGauss_Lagrange_SEM , eFourier , eFourierSingleMode ,
  eFourierHalfModeRe , eFourierHalfModeIm , eChebyshev , eFourierChebyshev ,
  eChebyshevFourier , eFourierModified , eExpansionTypeSize
}
 
enum  MovementType {
  eNone , eFixed , eRotate , eTranslate ,
  SIZE_MovementType
}
 Enum of zone movement type. More...
 
enum  GeomType { eNoGeomType , eRegular , eDeformed , eMovingRegular }
 Indicates the type of element geometry. More...
 
enum  GeomState { eNotFilled , ePtsFilled }
 Indicates if the geometric information for an element has been populated. More...
 
enum  GeomMMF {
  eTangentX , eTangentY , eTangentXY , eTangentZ ,
  eTangentCircular , eTangentIrregular , eTangentNonconvex , eLOCAL
}
 Principle direction for MMF. More...
 

Functions

Array< OneD, int > ToArray (const std::set< int > &set)
 
std::set< int > ShareAllBoundaryIDs (const BoundaryRegionCollection &boundaryRegions, LibUtilities::CommSharedPtr comm)
 
bool SortByGlobalId (const Geometry *&lhs, const Geometry *&rhs)
 Less than operator to sort Geometry objects by global id when sorting STL containers.
 
bool GlobalIdEquality (const Geometry *&lhs, const Geometry *&rhs)
 
bool operator== (const GeomFactors &lhs, const GeomFactors &rhs)
 Equivalence test for GeomFactors objects.
 
XmapFactory< StdRegions::StdHexExp, 3 > & GetStdHexFactory ()
 
MeshGraphFactoryGetMeshGraphFactory ()
 
MeshGraphIOFactoryGetMeshGraphIOFactory ()
 
std::pair< size_t, size_t > SplitWork (size_t vecsize, int rank, int nprocs)
 Utility function to split a vector equally amongst a number of processors.
 
template<class T , typename std::enable_if< T::kDim==0, int >::type = 0>
int GetGeomDataDim (GeomMapView< T > &geomMap)
 
template<class... T>
void UniqueValues (std::unordered_set< int > &unique)
 
template<class... T>
void UniqueValues (std::unordered_set< int > &unique, const std::vector< int > &input, T &...args)
 
template<class T , typename std::enable_if< T::kDim==0, int >::type = 0>
NekDouble GetGeomData (T *geom, int i)
 
template<class T , typename std::enable_if< T::kDim==1, int >::type = 0>
int GetGeomData (T *geom, int i)
 
void WriteVert (PointGeom *vert, TiXmlElement *vertTag)
 
void WriteEdge (SegGeom *seg, TiXmlElement *edgeTag, std::string &tag, int edgeID)
 
void WriteTri (TriGeom *tri, TiXmlElement *faceTag, std::string &tag, int triID)
 
void WriteQuad (QuadGeom *quad, TiXmlElement *faceTag, std::string &tag, int quadID)
 
void WriteHex (HexGeom *hex, TiXmlElement *elmtTag, std::string &tag, int hexID)
 
void WritePrism (PrismGeom *pri, TiXmlElement *elmtTag, std::string &tag, int priID)
 
void WritePyr (PyrGeom *pyr, TiXmlElement *elmtTag, std::string &tag, int pyrID)
 
void WriteTet (TetGeom *tet, TiXmlElement *elmtTag, std::string &tag, int tetID)
 
void WriteCurvedEdge (CurveUniquePtr &curve, TiXmlElement *curveTag, int &curveId)
 
void WriteCurvedFace (CurveUniquePtr &curve, TiXmlElement *curveTag, int &curveId)
 
void WriteVert (PointGeom *vert, std::vector< MeshVertex > &vertInfo, int vertID)
 
void WriteEdge (SegGeom *seg, std::vector< MeshEdge > &edgeInfo, int edgeID)
 
void WriteTri (TriGeom *tri, std::vector< MeshTri > &triInfo, int triID)
 
void WriteQuad (QuadGeom *quad, std::vector< MeshQuad > &quadInfo, int quadID)
 
void WriteHex (HexGeom *hex, std::vector< MeshHex > &elementInfo, int hexID)
 
void WritePrism (PrismGeom *prism, std::vector< MeshPrism > &elementInfo, int prismID)
 
void WritePyr (PyrGeom *pyr, std::vector< MeshPyr > &elementInfo, int pyrID)
 
void WriteTet (TetGeom *tet, std::vector< MeshTet > &elementInfo, int tetID)
 
void WriteCurvedEdge (CurveUniquePtr &curve, int key, std::vector< MeshCurvedInfo > &edgeInfo, int &edgeCnt, int &ptOffset, int &newIdx, MeshCurvedPts &curvedPts)
 
void WriteCurvedFace (CurveUniquePtr &curve, int key, std::vector< MeshCurvedInfo > &faceInfo, int &faceCnt, int &ptOffset, int &newIdx, MeshCurvedPts &curvedPts)
 
MeshPartitionFactoryGetMeshPartitionFactory ()
 
static std::string ReadTag (std::string &tagStr)
 
static std::string StripParentheses (const std::string &str)
 
bool operator== (const PointGeom &x, const PointGeom &y)
 Determine equivalence by the ids. No matter what the position, if the ids are the same, then they are equivalent, and vice versa.
 
bool operator== (const PointGeom &x, const PointGeom *y)
 
bool operator== (const PointGeom *x, const PointGeom &y)
 
bool operator!= (const PointGeom &x, const PointGeom &y)
 
bool operator!= (const PointGeom &x, const PointGeom *y)
 
bool operator!= (const PointGeom *x, const PointGeom &y)
 
XmapFactory< StdRegions::StdPrismExp, 3 > & GetStdPrismFactory ()
 
XmapFactory< StdRegions::StdPyrExp, 3 > & GetStdPyrFactory ()
 
XmapFactory< StdRegions::StdQuadExp, 2 > & GetStdQuadFactory ()
 
XmapFactory< StdRegions::StdSegExp, 1 > & GetStdSegFactory ()
 
XmapFactory< StdRegions::StdTetExp, 3 > & GetStdTetFactory ()
 
XmapFactory< StdRegions::StdTriExp, 2 > & GetStdTriFactory ()
 

Variables

static const Array< OneD, BoundaryConditionShPtrNullBoundaryConditionShPtrArray
 
const std::string kExpansionTypeStr []
 
const std::string MovementTypeStr []
 Map of zone movement type to movement type string.
 
const char *const GeomMMFMap []
 Session file names associated with tangent principle directions.
 

Typedef Documentation

◆ BndRegionOrdering

typedef std::map<int, std::vector<unsigned int> > Nektar::SpatialDomains::BndRegionOrdering

Definition at line 178 of file MeshGraph.h.

◆ BoundaryConditionCollection

Definition at line 258 of file Conditions.h.

◆ BoundaryConditionMap

Definition at line 256 of file Conditions.h.

◆ BoundaryConditionMapShPtr

Definition at line 257 of file Conditions.h.

◆ BoundaryConditionShPtr

Definition at line 251 of file Conditions.h.

◆ BoundaryConditionsSharedPtr

Definition at line 327 of file Conditions.h.

◆ BoundaryRegion

Definition at line 246 of file Conditions.h.

◆ BoundaryRegionCollection

Definition at line 249 of file Conditions.h.

◆ BoundaryRegionShPtr

Definition at line 247 of file Conditions.h.

◆ CompositeDescriptor

typedef std::map< int, std::pair< LibUtilities::ShapeType, std::vector< int > > > Nektar::SpatialDomains::CompositeDescriptor

Definition at line 131 of file MeshGraph.h.

◆ CompositeMap

Definition at line 186 of file MeshGraph.h.

◆ CompositeOrdering

typedef std::map<int, std::vector<unsigned int> > Nektar::SpatialDomains::CompositeOrdering

Definition at line 177 of file MeshGraph.h.

◆ CompositeSharedPtr

Definition at line 185 of file MeshGraph.h.

◆ ConstBoundaryRegionShPtr

Definition at line 248 of file Conditions.h.

◆ CurveMap

Definition at line 71 of file Geometry.h.

◆ CurveUniquePtr

Definition at line 70 of file Geometry.h.

◆ DerivStorage

Storage type for derivative of mapping.

Definition at line 62 of file GeomFactors.h.

◆ DirichletBCShPtr

Definition at line 252 of file Conditions.h.

◆ ExpansionInfoMap

Definition at line 191 of file MeshGraph.h.

◆ ExpansionInfoMapShPtr

Definition at line 193 of file MeshGraph.h.

◆ ExpansionInfoMapShPtrMap

Definition at line 194 of file MeshGraph.h.

◆ ExpansionInfoShPtr

Definition at line 190 of file MeshGraph.h.

◆ Geometry2DUniquePtr

Definition at line 109 of file MeshGraph.h.

◆ Geometry3DUniquePtr

Definition at line 110 of file MeshGraph.h.

◆ GeometryLinkSharedPtr

typedef std::shared_ptr<std::vector<std::pair<Geometry *, int> > > Nektar::SpatialDomains::GeometryLinkSharedPtr

Definition at line 216 of file MeshGraph.h.

◆ GeometryUniquePtr

Definition at line 61 of file Geometry.h.

◆ GeomFactorsSet

typedef std::unordered_set<GeomFactors *> Nektar::SpatialDomains::GeomFactorsSet

An unordered set of GeomFactor pointers.

Definition at line 60 of file GeomFactors.h.

◆ GeomFactorsUniquePtr

Definition at line 62 of file Geometry.h.

◆ GeomFactorsVector

A vector of GeomFactor pointers.

Definition at line 58 of file GeomFactors.h.

◆ GeomInfoMap

typedef std::map<std::string, std::string> Nektar::SpatialDomains::GeomInfoMap

Definition at line 214 of file MeshGraph.h.

◆ GeomMap

template<typename T >
using Nektar::SpatialDomains::GeomMap = typedef std::map<int, unique_ptr_objpool<T> >

Definition at line 96 of file MeshGraph.h.

◆ HexGeomUniquePtr

Definition at line 108 of file MeshGraph.h.

◆ InterfaceCollection

typedef std::map<std::pair<int, std::string>, InterfacePairShPtr> Nektar::SpatialDomains::InterfaceCollection

Definition at line 50 of file Movement.h.

◆ InterfacePairShPtr

Definition at line 167 of file InterfaceInterpolation.h.

◆ InterfaceShPtr

Definition at line 128 of file InterfaceInterpolation.h.

◆ MeshGraphFactory

Definition at line 972 of file MeshGraph.h.

◆ MeshGraphIOFactory

Definition at line 110 of file MeshGraphIO.h.

◆ MeshGraphIOSharedPtr

Definition at line 46 of file MeshGraphIO.h.

◆ MeshGraphSharedPtr

Definition at line 224 of file MeshGraph.h.

◆ MeshMetaDataMap

typedef std::map<std::string, std::string> Nektar::SpatialDomains::MeshMetaDataMap

Definition at line 221 of file MeshGraph.h.

◆ MeshPartitionFactory

Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class.

Definition at line 61 of file MeshPartition.h.

◆ MeshPartitionSharedPtr

Definition at line 174 of file MeshPartition.h.

◆ MovementSharedPtr

Definition at line 227 of file MeshGraph.h.

◆ NeumannBCShPtr

Definition at line 253 of file Conditions.h.

◆ PointGeomUniquePtr

Definition at line 99 of file MeshGraph.h.

◆ PrismGeomUniquePtr

Definition at line 107 of file MeshGraph.h.

◆ PyrGeomUniquePtr

Definition at line 106 of file MeshGraph.h.

◆ QuadGeomUniquePtr

Definition at line 104 of file MeshGraph.h.

◆ RobinBCShPtr

Definition at line 254 of file Conditions.h.

◆ SegGeomUniquePtr

Definition at line 102 of file MeshGraph.h.

◆ TetGeomUniquePtr

Definition at line 105 of file MeshGraph.h.

◆ TriGeomUniquePtr

Definition at line 103 of file MeshGraph.h.

◆ ZoneBaseShPtr

Definition at line 177 of file Zones.h.

◆ ZoneFixedShPtr

Definition at line 377 of file Zones.h.

◆ ZoneRotateShPtr

Definition at line 375 of file Zones.h.

◆ ZoneTranslateShPtr

Definition at line 376 of file Zones.h.

Enumeration Type Documentation

◆ BoundaryConditionType

Enumerator
eDirichlet 
eNeumann 
eRobin 
ePeriodic 
eNotDefined 

Definition at line 52 of file Conditions.h.

◆ ExpansionType

Enumerator
eNoExpansionType 
eModified 
eModifiedQuadPlus1 
eModifiedQuadPlus2 
eModifiedGLLRadau10 
eOrthogonal 
eGLL_Lagrange 
eGLL_Lagrange_SEM 
eGauss_Lagrange 
eGauss_Lagrange_SEM 
eFourier 
eFourierSingleMode 
eFourierHalfModeRe 
eFourierHalfModeIm 
eChebyshev 
eFourierChebyshev 
eChebyshevFourier 
eFourierModified 
eExpansionTypeSize 

Definition at line 133 of file MeshGraph.h.

134{
136 eModified,
145 eFourier,
154};
@ eGauss_Lagrange
Lagrange Polynomials using the Gauss points.
Definition BasisType.h:57
@ eGLL_Lagrange
Lagrange for SEM basis .
Definition BasisType.h:56
@ eFourierSingleMode
Fourier ModifiedExpansion with just the first mode .
Definition BasisType.h:65
@ eFourierHalfModeIm
Fourier Modified expansions with just the imaginary part of the first mode .
Definition BasisType.h:69
@ eFourierHalfModeRe
Fourier Modified expansions with just the real part of the first mode .
Definition BasisType.h:67
@ eFourier
Fourier Expansion .
Definition BasisType.h:55

◆ GeomMMF

Principle direction for MMF.

Enumerator
eTangentX 

X coordinate direction.

eTangentY 

Y coordinate direction.

eTangentXY 

XY direction.

eTangentZ 

Z coordinate direction.

eTangentCircular 

Circular around the centre of domain.

eTangentIrregular 

Circular around the centre of domain.

eTangentNonconvex 

Circular around the centre of domain.

eLOCAL 

No Principal direction.

Definition at line 71 of file SpatialDomains.hpp.

72{
73 eTangentX, ///< X coordinate direction.
74 eTangentY, ///< Y coordinate direction.
75 eTangentXY, ///< XY direction.
76 eTangentZ, ///< Z coordinate direction.
77 eTangentCircular, ///< Circular around the centre of domain.
78 eTangentIrregular, ///< Circular around the centre of domain.
79 eTangentNonconvex, ///< Circular around the centre of domain.
80 eLOCAL, ///< No Principal direction.
81};
@ eLOCAL
No Principal direction.
@ eTangentIrregular
Circular around the centre of domain.
@ eTangentX
X coordinate direction.
@ eTangentCircular
Circular around the centre of domain.
@ eTangentNonconvex
Circular around the centre of domain.
@ eTangentZ
Z coordinate direction.
@ eTangentY
Y coordinate direction.

◆ GeomState

Indicates if the geometric information for an element has been populated.

Enumerator
eNotFilled 

Geometric information has not been generated.

ePtsFilled 

Geometric information has been generated.

Definition at line 62 of file SpatialDomains.hpp.

63{
64 eNotFilled, ///< Geometric information has not been generated.
65 ePtsFilled ///< Geometric information has been generated.
66};
@ eNotFilled
Geometric information has not been generated.
@ ePtsFilled
Geometric information has been generated.

◆ GeomType

Indicates the type of element geometry.

This property of the element geometry is used to indicate the necessary storage for the element's geometric information and its corresponding computational complexity. In many cases significant savings in both cases can be made based on this information, in comparison to the most generic case.

Enumerator
eNoGeomType 

No type defined.

eRegular 

Geometry is straight-sided with constant geometric factors.

eDeformed 

Geometry is curved or has non-constant factors.

eMovingRegular 

Currently unused.

Definition at line 49 of file SpatialDomains.hpp.

50{
51 eNoGeomType, ///< No type defined.
52 eRegular, ///< Geometry is straight-sided with constant
53 /// geometric factors.
54 eDeformed, ///< Geometry is curved or has non-constant factors.
55 eMovingRegular, ///< Currently unused.
56};
@ eRegular
Geometry is straight-sided with constant geometric factors.
@ eNoGeomType
No type defined.
@ eMovingRegular
Currently unused.
@ eDeformed
Geometry is curved or has non-constant factors.

◆ MovementType

Enum of zone movement type.

Enumerator
eNone 
eFixed 
eRotate 
eTranslate 
SIZE_MovementType 

Definition at line 47 of file Zones.h.

Function Documentation

◆ GetGeomData() [1/2]

template<class T , typename std::enable_if< T::kDim==0, int >::type = 0>
NekDouble Nektar::SpatialDomains::GetGeomData ( T *  geom,
int  i 
)
inline

Definition at line 1521 of file MeshGraphIOHDF5.cpp.

1522{
1523 return (*geom)(i);
1524}

Referenced by Nektar::SpatialDomains::MeshGraphIOHDF5::WriteGeometryMap().

◆ GetGeomData() [2/2]

template<class T , typename std::enable_if< T::kDim==1, int >::type = 0>
int Nektar::SpatialDomains::GetGeomData ( T *  geom,
int  i 
)
inline

Definition at line 1527 of file MeshGraphIOHDF5.cpp.

1528{
1529 return geom->GetVid(i);
1530}

◆ GetGeomDataDim()

template<class T , typename std::enable_if< T::kDim==0, int >::type = 0>
int Nektar::SpatialDomains::GetGeomDataDim ( GeomMapView< T > &  geomMap)
inline

◆ GetMeshGraphFactory()

MeshGraphFactory & Nektar::SpatialDomains::GetMeshGraphFactory ( )

Returns an instance of the MeshGraph factory, held as a singleton.

Definition at line 88 of file MeshGraph.cpp.

89{
90 static MeshGraphFactory instance;
91 return instance;
92}
Provides a generic Factory class.

◆ GetMeshGraphIOFactory()

MeshGraphIOFactory & Nektar::SpatialDomains::GetMeshGraphIOFactory ( )

Returns an instance of the MeshGraphIO factory, held as a singleton.

Definition at line 45 of file MeshGraphIO.cpp.

46{
47 static MeshGraphIOFactory instance;
48 return instance;
49}

Referenced by MeshGraphIO_Create(), Nektar::SpatialDomains::MeshGraphIO::Read(), Nektar::FieldUtils::OutputXml::v_Process(), and Nektar::IterativeElasticSystem::WriteGeometry().

◆ GetMeshPartitionFactory()

MeshPartitionFactory & Nektar::SpatialDomains::GetMeshPartitionFactory ( )

◆ GetStdHexFactory()

XmapFactory< StdRegions::StdHexExp, 3 > & Nektar::SpatialDomains::GetStdHexFactory ( )

Definition at line 46 of file HexGeom.cpp.

47{
49 return factory;
50}
A simple factory for Xmap objects that is based on the element type, the basis and quadrature selecti...

Referenced by Nektar::SpatialDomains::HexGeom::SetUpXmap().

◆ GetStdPrismFactory()

XmapFactory< StdRegions::StdPrismExp, 3 > & Nektar::SpatialDomains::GetStdPrismFactory ( )

Definition at line 55 of file PrismGeom.cpp.

56{
58 return factory;
59}

Referenced by Nektar::SpatialDomains::PrismGeom::SetUpXmap().

◆ GetStdPyrFactory()

XmapFactory< StdRegions::StdPyrExp, 3 > & Nektar::SpatialDomains::GetStdPyrFactory ( )

Definition at line 49 of file PyrGeom.cpp.

50{
52 return factory;
53}

Referenced by Nektar::SpatialDomains::PyrGeom::SetUpXmap().

◆ GetStdQuadFactory()

XmapFactory< StdRegions::StdQuadExp, 2 > & Nektar::SpatialDomains::GetStdQuadFactory ( )

Definition at line 48 of file QuadGeom.cpp.

49{
51 return factory;
52}

Referenced by Nektar::SpatialDomains::QuadGeom::SetUpXmap().

◆ GetStdSegFactory()

XmapFactory< StdRegions::StdSegExp, 1 > & Nektar::SpatialDomains::GetStdSegFactory ( )

Definition at line 59 of file SegGeom.cpp.

60{
62 return factory;
63}

◆ GetStdTetFactory()

XmapFactory< StdRegions::StdTetExp, 3 > & Nektar::SpatialDomains::GetStdTetFactory ( )

Definition at line 53 of file TetGeom.cpp.

54{
56 return factory;
57}

Referenced by Nektar::SpatialDomains::TetGeom::SetUpXmap().

◆ GetStdTriFactory()

XmapFactory< StdRegions::StdTriExp, 2 > & Nektar::SpatialDomains::GetStdTriFactory ( )

Definition at line 48 of file TriGeom.cpp.

49{
51 return factory;
52}

Referenced by Nektar::SpatialDomains::TriGeom::SetUpXmap().

◆ GlobalIdEquality()

bool Nektar::SpatialDomains::GlobalIdEquality ( const Geometry *&  lhs,
const Geometry *&  rhs 
)

Definition at line 67 of file Geometry.cpp.

68{
69 return lhs->GetGlobalID() == rhs->GetGlobalID();
70}
int GetGlobalID(void) const
Get the ID of this object.
Definition Geometry.h:314

References Nektar::SpatialDomains::Geometry::GetGlobalID().

◆ operator!=() [1/3]

bool Nektar::SpatialDomains::operator!= ( const PointGeom x,
const PointGeom y 
)

Definition at line 203 of file PointGeom.cpp.

204{
205 return (x.m_globalID != y.m_globalID);
206}

◆ operator!=() [2/3]

bool Nektar::SpatialDomains::operator!= ( const PointGeom x,
const PointGeom y 
)

Definition at line 208 of file PointGeom.cpp.

209{
210 return (x.m_globalID != y->m_globalID);
211}

◆ operator!=() [3/3]

bool Nektar::SpatialDomains::operator!= ( const PointGeom x,
const PointGeom y 
)

Definition at line 213 of file PointGeom.cpp.

214{
215 return (x->m_globalID != y.m_globalID);
216}

◆ operator==() [1/4]

bool Nektar::SpatialDomains::operator== ( const GeomFactors lhs,
const GeomFactors rhs 
)

Equivalence test for GeomFactors objects.

Tests if two GeomFactors classes are equal.

Member data equivalence is tested in the following order: shape type, expansion dimension, coordinate dimension and coordinates.

Definition at line 113 of file GeomFactors.cpp.

114{
115 if (!(lhs.m_type == rhs.m_type))
116 {
117 return false;
118 }
119
120 if (!(lhs.m_expDim == rhs.m_expDim))
121 {
122 return false;
123 }
124
125 if (!(lhs.m_coordDim == rhs.m_coordDim))
126 {
127 return false;
128 }
129
130 const Array<OneD, const NekDouble> jac_lhs =
131 lhs.ComputeJac(lhs.m_xmap->GetPointsKeys());
132 const Array<OneD, const NekDouble> jac_rhs =
133 rhs.ComputeJac(rhs.m_xmap->GetPointsKeys());
134 if (!(jac_lhs == jac_rhs))
135 {
136 return false;
137 }
138
139 return true;
140}
int m_coordDim
Dimension of coordinate system.
Array< OneD, NekDouble > ComputeJac(const LibUtilities::PointsKeyVector &keyTgt) const
Compute the Jacobian of the mapping.
int m_expDim
Dimension of expansion.
StdRegions::StdExpansionSharedPtr m_xmap
Stores information about the expansion.
GeomType m_type
Type of geometry (e.g. eRegular, eDeformed, eMovingRegular).

◆ operator==() [2/4]

bool Nektar::SpatialDomains::operator== ( const PointGeom x,
const PointGeom y 
)

Determine equivalence by the ids. No matter what the position, if the ids are the same, then they are equivalent, and vice versa.

Definition at line 188 of file PointGeom.cpp.

189{
190 return (x.m_globalID == y.m_globalID);
191}

◆ operator==() [3/4]

bool Nektar::SpatialDomains::operator== ( const PointGeom x,
const PointGeom y 
)

Definition at line 193 of file PointGeom.cpp.

194{
195 return (x.m_globalID == y->m_globalID);
196}

◆ operator==() [4/4]

bool Nektar::SpatialDomains::operator== ( const PointGeom x,
const PointGeom y 
)

Definition at line 198 of file PointGeom.cpp.

199{
200 return (x->m_globalID == y.m_globalID);
201}

◆ ReadTag()

static std::string Nektar::SpatialDomains::ReadTag ( std::string &  tagStr)
inlinestatic

Definition at line 50 of file Movement/Movement.cpp.

51{
52 std::string::size_type indxBeg = tagStr.find_first_of('[') + 1;
53 std::string::size_type indxEnd = tagStr.find_last_of(']') - 1;
54
56 indxBeg <= indxEnd,
57 (std::string("Error reading interface region definition:") + tagStr)
58 .c_str());
59
60 std::string indxStr = tagStr.substr(indxBeg, indxEnd - indxBeg + 1);
61
62 return indxStr;
63}
#define ASSERTL0(condition, msg)

References ASSERTL0.

Referenced by Nektar::SpatialDomains::Movement::ReadInterfaces(), and Nektar::SpatialDomains::Movement::ReadZones().

◆ ShareAllBoundaryIDs()

std::set< int > Nektar::SpatialDomains::ShareAllBoundaryIDs ( const BoundaryRegionCollection boundaryRegions,
LibUtilities::CommSharedPtr  comm 
)

Definition at line 78 of file Conditions.cpp.

81{
82 // Turn the keys of boundaryRegions into set.
83 std::set<int> ids;
84 auto it = boundaryRegions.begin(), end = boundaryRegions.end();
85 int i = 0;
86 for (; it != end; ++it, ++i)
87 {
88 ids.insert(it->first);
89 }
90
91 int np = comm->GetSize();
92 int ip = comm->GetRank();
93
94 int half_size = 1;
95 bool involved = true;
96 while (involved && half_size < np)
97 {
98 if (ip & half_size)
99 {
100 // I'm sender
101
102 // The receiver rank
103 int receiver = ip - half_size;
104
105 Array<OneD, int> idsArray = ToArray(ids);
106 // Send my size (to alloc the reciever array)
107 Array<OneD, int> sender_size(1);
108 sender_size[0] = idsArray.size();
109 comm->Send(receiver, sender_size);
110
111 // Send my data
112 comm->Send(receiver, idsArray);
113
114 // Once we've sent, we're no longer involved.
115 involved = false;
116 }
117 else
118 {
119 // I'm receiver
120
121 // The sender rank
122 int sender = ip + half_size;
123
124 if (sender < np)
125 {
126 // Receive the size
127 Array<OneD, int> sender_size(1);
128 comm->Recv(sender, sender_size);
129
130 // Receive the data
131 Array<OneD, int> other_ids(sender_size[0]);
132 comm->Recv(sender, other_ids);
133
134 // Merge
135 ids.insert(other_ids.begin(), other_ids.end());
136 }
137 }
138 half_size *= 2;
139 }
140
141 // Bcast the size
142 int nIds;
143 if (ip == 0)
144 {
145 nIds = ids.size();
146 }
147
148 comm->Bcast(nIds, 0);
149
150 // Bcast the data
151 Array<OneD, int> idsArray;
152 if (ip == 0)
153 {
154 idsArray = ToArray(ids);
155 }
156 else
157 {
158 idsArray = Array<OneD, int>(nIds);
159 }
160
161 comm->Bcast(idsArray, 0);
162
163 return std::set<int>(idsArray.begin(), idsArray.end());
164}
Array< OneD, int > ToArray(const std::set< int > &set)

References ToArray().

Referenced by Nektar::SpatialDomains::BoundaryConditions::CreateBoundaryComms().

◆ SortByGlobalId()

bool Nektar::SpatialDomains::SortByGlobalId ( const Geometry *&  lhs,
const Geometry *&  rhs 
)

Less than operator to sort Geometry objects by global id when sorting STL containers.

Definition at line 62 of file Geometry.cpp.

63{
64 return lhs->GetGlobalID() < rhs->GetGlobalID();
65}

References Nektar::SpatialDomains::Geometry::GetGlobalID().

◆ SplitWork()

std::pair< size_t, size_t > Nektar::SpatialDomains::SplitWork ( size_t  vecsize,
int  rank,
int  nprocs 
)

Utility function to split a vector equally amongst a number of processors.

Parameters
vecsizeSize of the total amount of work
rankRank of this process
nprocsNumber of processors in the group
Returns
A pair with the offset this process should occupy, along with the count for the amount of work.

Definition at line 95 of file MeshGraphIOHDF5.cpp.

96{
97 size_t div = vecsize / nprocs;
98 size_t rem = vecsize % nprocs;
99 if (rank < rem)
100 {
101 return std::make_pair(rank * (div + 1), div + 1);
102 }
103 else
104 {
105 return std::make_pair((rank - rem) * div + rem * (div + 1), div);
106 }
107}

Referenced by Nektar::SpatialDomains::MeshGraphIOHDF5::v_PartitionMesh().

◆ StripParentheses()

static std::string Nektar::SpatialDomains::StripParentheses ( const std::string &  str)
inlinestatic

Definition at line 65 of file Movement/Movement.cpp.

66{
67 auto length = str.length();
68 return str.substr(1, length - 2);
69}

Referenced by Nektar::SpatialDomains::Movement::WriteMovement().

◆ ToArray()

Array< OneD, int > Nektar::SpatialDomains::ToArray ( const std::set< int > &  set)

Helper that turns a set into an array.

Definition at line 58 of file Conditions.cpp.

59{
60 Array<OneD, int> ans(set.size());
61 auto it = set.begin(), end = set.end();
62 for (int i = 0; it != end; ++it, ++i)
63 {
64 ans[i] = *it;
65 }
66 return ans;
67}

Referenced by ShareAllBoundaryIDs().

◆ UniqueValues() [1/2]

template<class... T>
void Nektar::SpatialDomains::UniqueValues ( std::unordered_set< int > &  unique)
inline

Definition at line 134 of file MeshGraphIOHDF5.cpp.

135{
136}

Referenced by UniqueValues(), and Nektar::SpatialDomains::MeshGraphIOHDF5::v_PartitionMesh().

◆ UniqueValues() [2/2]

template<class... T>
void Nektar::SpatialDomains::UniqueValues ( std::unordered_set< int > &  unique,
const std::vector< int > &  input,
T &...  args 
)
inline

Definition at line 139 of file MeshGraphIOHDF5.cpp.

141{
142 for (auto i : input)
143 {
144 unique.insert(i);
145 }
146
147 UniqueValues(unique, args...);
148}

References UniqueValues().

◆ WriteCurvedEdge() [1/2]

void Nektar::SpatialDomains::WriteCurvedEdge ( CurveUniquePtr curve,
int  key,
std::vector< MeshCurvedInfo > &  edgeInfo,
int &  edgeCnt,
int &  ptOffset,
int &  newIdx,
MeshCurvedPts curvedPts 
)

Definition at line 1466 of file MeshGraphIOXmlCompressed.cpp.

1469{
1470 MeshCurvedInfo cinfo;
1471 cinfo.id = edgeCnt++;
1472 cinfo.entityid = key;
1473 cinfo.npoints = curve->m_points.size();
1474 cinfo.ptype = curve->m_ptype;
1475 cinfo.ptid = 0;
1476 cinfo.ptoffset = ptOffset;
1477
1478 edgeInfo.push_back(cinfo);
1479
1480 for (int j = 0; j < curve->m_points.size(); j++)
1481 {
1482 MeshVertex v;
1483 v.id = newIdx;
1484 v.x = curve->m_points[j]->x();
1485 v.y = curve->m_points[j]->y();
1486 v.z = curve->m_points[j]->z();
1487 curvedPts.pts.push_back(v);
1488 curvedPts.index.push_back(newIdx);
1489 newIdx++;
1490 }
1491 ptOffset += cinfo.npoints;
1492}
int64_t ptype
point offset of data entry for this curve
int64_t npoints
The entity id corresponding to the global edge/curve.
int64_t ptoffset
the id of point data map (currently always 0 since we are using just one set).
int64_t entityid
Id of this curved information.
int64_t ptid
The number of points in this curved entity.
std::vector< int64_t > index
Mapping to access the pts value. Given a 'ptoffset' value the npoints subsquent values provide the in...
std::vector< MeshVertex > pts
mapping to access pts value.

References Nektar::SpatialDomains::MeshCurvedInfo::entityid, Nektar::SpatialDomains::MeshVertex::id, Nektar::SpatialDomains::MeshCurvedInfo::id, Nektar::SpatialDomains::MeshCurvedPts::index, Nektar::SpatialDomains::MeshCurvedInfo::npoints, Nektar::SpatialDomains::MeshCurvedInfo::ptid, Nektar::SpatialDomains::MeshCurvedInfo::ptoffset, Nektar::SpatialDomains::MeshCurvedPts::pts, Nektar::SpatialDomains::MeshCurvedInfo::ptype, Nektar::SpatialDomains::MeshVertex::x, Nektar::SpatialDomains::MeshVertex::y, and Nektar::SpatialDomains::MeshVertex::z.

◆ WriteCurvedEdge() [2/2]

void Nektar::SpatialDomains::WriteCurvedEdge ( CurveUniquePtr curve,
TiXmlElement *  curveTag,
int &  curveId 
)

Definition at line 2834 of file MeshGraphIOXml.cpp.

2836{
2837 TiXmlElement *c = new TiXmlElement("E");
2838 std::stringstream s;
2839 s.precision(8);
2840
2841 for (int j = 0; j < curve->m_points.size(); ++j)
2842 {
2843 PointGeom *p = curve->m_points[j];
2844 s << std::scientific << (*p)(0) << " " << (*p)(1) << " " << (*p)(2)
2845 << " ";
2846 }
2847
2848 c->SetAttribute("ID", curveId++);
2849 c->SetAttribute("EDGEID", curve->m_curveID);
2850 c->SetAttribute("NUMPOINTS", curve->m_points.size());
2851 c->SetAttribute("TYPE", LibUtilities::kPointsTypeStr[curve->m_ptype]);
2852 c->LinkEndChild(new TiXmlText(s.str()));
2853 curveTag->LinkEndChild(c);
2854}

References Nektar::LibUtilities::kPointsTypeStr.

Referenced by Nektar::SpatialDomains::MeshGraphIOXml::v_WriteCurves(), and Nektar::SpatialDomains::MeshGraphIOXmlCompressed::v_WriteCurves().

◆ WriteCurvedFace() [1/2]

void Nektar::SpatialDomains::WriteCurvedFace ( CurveUniquePtr curve,
int  key,
std::vector< MeshCurvedInfo > &  faceInfo,
int &  faceCnt,
int &  ptOffset,
int &  newIdx,
MeshCurvedPts curvedPts 
)

Definition at line 1493 of file MeshGraphIOXmlCompressed.cpp.

1496{
1497 MeshCurvedInfo cinfo;
1498 cinfo.id = faceCnt++;
1499 cinfo.entityid = key;
1500 cinfo.npoints = curve->m_points.size();
1501 cinfo.ptype = curve->m_ptype;
1502 cinfo.ptid = 0;
1503 cinfo.ptoffset = ptOffset;
1504
1505 faceInfo.push_back(cinfo);
1506
1507 for (int j = 0; j < curve->m_points.size(); j++)
1508 {
1509 MeshVertex v;
1510 v.id = newIdx;
1511 v.x = curve->m_points[j]->x();
1512 v.y = curve->m_points[j]->y();
1513 v.z = curve->m_points[j]->z();
1514 curvedPts.pts.push_back(v);
1515 curvedPts.index.push_back(newIdx);
1516 newIdx++;
1517 }
1518 ptOffset += cinfo.npoints;
1519}

References Nektar::SpatialDomains::MeshCurvedInfo::entityid, Nektar::SpatialDomains::MeshVertex::id, Nektar::SpatialDomains::MeshCurvedInfo::id, Nektar::SpatialDomains::MeshCurvedPts::index, Nektar::SpatialDomains::MeshCurvedInfo::npoints, Nektar::SpatialDomains::MeshCurvedInfo::ptid, Nektar::SpatialDomains::MeshCurvedInfo::ptoffset, Nektar::SpatialDomains::MeshCurvedPts::pts, Nektar::SpatialDomains::MeshCurvedInfo::ptype, Nektar::SpatialDomains::MeshVertex::x, Nektar::SpatialDomains::MeshVertex::y, and Nektar::SpatialDomains::MeshVertex::z.

◆ WriteCurvedFace() [2/2]

void Nektar::SpatialDomains::WriteCurvedFace ( CurveUniquePtr curve,
TiXmlElement *  curveTag,
int &  curveId 
)

Definition at line 2855 of file MeshGraphIOXml.cpp.

2857{
2858 TiXmlElement *c = new TiXmlElement("F");
2859 std::stringstream s;
2860 s.precision(8);
2861
2862 for (int j = 0; j < curve->m_points.size(); ++j)
2863 {
2864 PointGeom *p = curve->m_points[j];
2865 s << std::scientific << (*p)(0) << " " << (*p)(1) << " " << (*p)(2)
2866 << " ";
2867 }
2868
2869 c->SetAttribute("ID", curveId++);
2870 c->SetAttribute("FACEID", curve->m_curveID);
2871 c->SetAttribute("NUMPOINTS", curve->m_points.size());
2872 c->SetAttribute("TYPE", LibUtilities::kPointsTypeStr[curve->m_ptype]);
2873 c->LinkEndChild(new TiXmlText(s.str()));
2874 curveTag->LinkEndChild(c);
2875}

References Nektar::LibUtilities::kPointsTypeStr.

Referenced by Nektar::SpatialDomains::MeshGraphIOXml::v_WriteCurves(), and Nektar::SpatialDomains::MeshGraphIOXmlCompressed::v_WriteCurves().

◆ WriteEdge() [1/2]

void Nektar::SpatialDomains::WriteEdge ( SegGeom seg,
std::vector< MeshEdge > &  edgeInfo,
int  edgeID 
)

Definition at line 1090 of file MeshGraphIOXmlCompressed.cpp.

1091{
1092 MeshEdge e;
1093 e.id = edgeID;
1094 e.v0 = seg->GetVid(0);
1095 e.v1 = seg->GetVid(1);
1096 edgeInfo.push_back(e);
1097}
int GetVid(int i) const
Returns global id of vertex i of this object.
Definition Geometry.h:345

References Nektar::SpatialDomains::Geometry::GetVid(), Nektar::SpatialDomains::MeshEdge::id, Nektar::SpatialDomains::MeshEdge::v0, and Nektar::SpatialDomains::MeshEdge::v1.

◆ WriteEdge() [2/2]

void Nektar::SpatialDomains::WriteEdge ( SegGeom seg,
TiXmlElement *  edgeTag,
std::string &  tag,
int  edgeID 
)

Definition at line 2608 of file MeshGraphIOXml.cpp.

2610{
2611 std::stringstream s;
2612 s << seg->GetVid(0) << " " << seg->GetVid(1);
2613 TiXmlElement *e = new TiXmlElement(tag);
2614 e->SetAttribute("ID", edgeID);
2615 e->LinkEndChild(new TiXmlText(s.str()));
2616 edgeTag->LinkEndChild(e);
2617}

References Nektar::SpatialDomains::Geometry::GetVid().

Referenced by Nektar::SpatialDomains::MeshGraphIOXml::v_WriteEdges(), and Nektar::SpatialDomains::MeshGraphIOXmlCompressed::v_WriteEdges().

◆ WriteHex() [1/2]

void Nektar::SpatialDomains::WriteHex ( HexGeom hex,
std::vector< MeshHex > &  elementInfo,
int  hexID 
)

Definition at line 1253 of file MeshGraphIOXmlCompressed.cpp.

1254{
1255 MeshHex e;
1256 e.id = hexID;
1257 e.f[0] = hex->GetFid(0);
1258 e.f[1] = hex->GetFid(1);
1259 e.f[2] = hex->GetFid(2);
1260 e.f[3] = hex->GetFid(3);
1261 e.f[4] = hex->GetFid(4);
1262 e.f[5] = hex->GetFid(5);
1263 elementInfo.push_back(e);
1264}
int GetFid(int i) const
Get the ID of face i of this object.
Definition Geometry.cpp:91

References Nektar::SpatialDomains::MeshHex::f, Nektar::SpatialDomains::Geometry::GetFid(), and Nektar::SpatialDomains::MeshHex::id.

◆ WriteHex() [2/2]

void Nektar::SpatialDomains::WriteHex ( HexGeom hex,
TiXmlElement *  elmtTag,
std::string &  tag,
int  hexID 
)

Definition at line 2708 of file MeshGraphIOXml.cpp.

2709{
2710 std::stringstream s;
2711 s << hex->GetFid(0) << " " << hex->GetFid(1) << " " << hex->GetFid(2) << " "
2712 << hex->GetFid(3) << " " << hex->GetFid(4) << " " << hex->GetFid(5)
2713 << " ";
2714 TiXmlElement *h = new TiXmlElement(tag);
2715 h->SetAttribute("ID", hexID);
2716 h->LinkEndChild(new TiXmlText(s.str()));
2717 elmtTag->LinkEndChild(h);
2718}

References Nektar::SpatialDomains::Geometry::GetFid().

Referenced by Nektar::SpatialDomains::MeshGraphIOXml::v_WriteHexs(), and Nektar::SpatialDomains::MeshGraphIOXmlCompressed::v_WriteHexs().

◆ WritePrism() [1/2]

void Nektar::SpatialDomains::WritePrism ( PrismGeom pri,
TiXmlElement *  elmtTag,
std::string &  tag,
int  priID 
)

Definition at line 2740 of file MeshGraphIOXml.cpp.

2742{
2743 std::stringstream s;
2744 s << pri->GetFid(0) << " " << pri->GetFid(1) << " " << pri->GetFid(2) << " "
2745 << pri->GetFid(3) << " " << pri->GetFid(4) << " ";
2746 TiXmlElement *p = new TiXmlElement(tag);
2747 p->SetAttribute("ID", priID);
2748 p->LinkEndChild(new TiXmlText(s.str()));
2749 elmtTag->LinkEndChild(p);
2750}

References Nektar::SpatialDomains::Geometry::GetFid().

Referenced by Nektar::SpatialDomains::MeshGraphIOXml::v_WritePrisms(), and Nektar::SpatialDomains::MeshGraphIOXmlCompressed::v_WritePrisms().

◆ WritePrism() [2/2]

void Nektar::SpatialDomains::WritePrism ( PrismGeom prism,
std::vector< MeshPrism > &  elementInfo,
int  prismID 
)

Definition at line 1307 of file MeshGraphIOXmlCompressed.cpp.

1309{
1310 MeshPrism e;
1311 e.id = prismID;
1312 e.f[0] = prism->GetFid(0);
1313 e.f[1] = prism->GetFid(1);
1314 e.f[2] = prism->GetFid(2);
1315 e.f[3] = prism->GetFid(3);
1316 e.f[4] = prism->GetFid(4);
1317 elementInfo.push_back(e);
1318}

References Nektar::SpatialDomains::MeshPrism::f, Nektar::SpatialDomains::Geometry::GetFid(), and Nektar::SpatialDomains::MeshPrism::id.

◆ WritePyr() [1/2]

void Nektar::SpatialDomains::WritePyr ( PyrGeom pyr,
std::vector< MeshPyr > &  elementInfo,
int  pyrID 
)

Definition at line 1361 of file MeshGraphIOXmlCompressed.cpp.

1362{
1363 MeshPyr e;
1364 e.id = pyrID;
1365 e.f[0] = pyr->GetFid(0);
1366 e.f[1] = pyr->GetFid(1);
1367 e.f[2] = pyr->GetFid(2);
1368 e.f[3] = pyr->GetFid(3);
1369 e.f[4] = pyr->GetFid(4);
1370 elementInfo.push_back(e);
1371}

References Nektar::SpatialDomains::MeshPyr::f, Nektar::SpatialDomains::Geometry::GetFid(), and Nektar::SpatialDomains::MeshPyr::id.

◆ WritePyr() [2/2]

void Nektar::SpatialDomains::WritePyr ( PyrGeom pyr,
TiXmlElement *  elmtTag,
std::string &  tag,
int  pyrID 
)

Definition at line 2772 of file MeshGraphIOXml.cpp.

2773{
2774 std::stringstream s;
2775 s << pyr->GetFid(0) << " " << pyr->GetFid(1) << " " << pyr->GetFid(2) << " "
2776 << pyr->GetFid(3) << " " << pyr->GetFid(4) << " ";
2777 TiXmlElement *p = new TiXmlElement(tag);
2778 p->SetAttribute("ID", pyrID);
2779 p->LinkEndChild(new TiXmlText(s.str()));
2780 elmtTag->LinkEndChild(p);
2781}

References Nektar::SpatialDomains::Geometry::GetFid().

Referenced by Nektar::SpatialDomains::MeshGraphIOXml::v_WritePyrs(), and Nektar::SpatialDomains::MeshGraphIOXmlCompressed::v_WritePyrs().

◆ WriteQuad() [1/2]

void Nektar::SpatialDomains::WriteQuad ( QuadGeom quad,
std::vector< MeshQuad > &  quadInfo,
int  quadID 
)

Definition at line 1201 of file MeshGraphIOXmlCompressed.cpp.

1202{
1203 MeshQuad q;
1204 q.id = quadID;
1205 q.e[0] = quad->GetEid(0);
1206 q.e[1] = quad->GetEid(1);
1207 q.e[2] = quad->GetEid(2);
1208 q.e[3] = quad->GetEid(3);
1209 quadInfo.push_back(q);
1210}
int GetEid(int i) const
Get the ID of edge i of this object.
Definition Geometry.cpp:83

References Nektar::SpatialDomains::Geometry::GetEid().

◆ WriteQuad() [2/2]

void Nektar::SpatialDomains::WriteQuad ( QuadGeom quad,
TiXmlElement *  faceTag,
std::string &  tag,
int  quadID 
)

Definition at line 2676 of file MeshGraphIOXml.cpp.

2678{
2679 std::stringstream s;
2680 s << quad->GetEid(0) << " " << quad->GetEid(1) << " " << quad->GetEid(2)
2681 << " " << quad->GetEid(3);
2682 TiXmlElement *q = new TiXmlElement(tag);
2683 q->SetAttribute("ID", quadID);
2684 q->LinkEndChild(new TiXmlText(s.str()));
2685 faceTag->LinkEndChild(q);
2686}

References Nektar::SpatialDomains::Geometry::GetEid().

Referenced by Nektar::SpatialDomains::MeshGraphIOXml::v_WriteQuads(), and Nektar::SpatialDomains::MeshGraphIOXmlCompressed::v_WriteQuads().

◆ WriteTet() [1/2]

void Nektar::SpatialDomains::WriteTet ( TetGeom tet,
std::vector< MeshTet > &  elementInfo,
int  tetID 
)

Definition at line 1414 of file MeshGraphIOXmlCompressed.cpp.

1415{
1416 MeshTet e;
1417 e.id = tetID;
1418 e.f[0] = tet->GetFid(0);
1419 e.f[1] = tet->GetFid(1);
1420 e.f[2] = tet->GetFid(2);
1421 e.f[3] = tet->GetFid(3);
1422 elementInfo.push_back(e);
1423}

References Nektar::SpatialDomains::MeshTet::f, Nektar::SpatialDomains::Geometry::GetFid(), and Nektar::SpatialDomains::MeshTet::id.

◆ WriteTet() [2/2]

void Nektar::SpatialDomains::WriteTet ( TetGeom tet,
TiXmlElement *  elmtTag,
std::string &  tag,
int  tetID 
)

Definition at line 2803 of file MeshGraphIOXml.cpp.

2804{
2805 std::stringstream s;
2806 s << tet->GetFid(0) << " " << tet->GetFid(1) << " " << tet->GetFid(2) << " "
2807 << tet->GetFid(3) << " ";
2808 TiXmlElement *t = new TiXmlElement(tag);
2809 t->SetAttribute("ID", tetID);
2810 t->LinkEndChild(new TiXmlText(s.str()));
2811 elmtTag->LinkEndChild(t);
2812}

References Nektar::SpatialDomains::Geometry::GetFid().

Referenced by Nektar::SpatialDomains::MeshGraphIOXml::v_WriteTets(), and Nektar::SpatialDomains::MeshGraphIOXmlCompressed::v_WriteTets().

◆ WriteTri() [1/2]

void Nektar::SpatialDomains::WriteTri ( TriGeom tri,
std::vector< MeshTri > &  triInfo,
int  triID 
)

Definition at line 1150 of file MeshGraphIOXmlCompressed.cpp.

1151{
1152 MeshTri t;
1153 t.id = triID;
1154 t.e[0] = tri->GetEid(0);
1155 t.e[1] = tri->GetEid(1);
1156 t.e[2] = tri->GetEid(2);
1157 triInfo.push_back(t);
1158}

References Nektar::SpatialDomains::MeshTri::e, Nektar::SpatialDomains::Geometry::GetEid(), and Nektar::SpatialDomains::MeshTri::id.

◆ WriteTri() [2/2]

void Nektar::SpatialDomains::WriteTri ( TriGeom tri,
TiXmlElement *  faceTag,
std::string &  tag,
int  triID 
)

Definition at line 2646 of file MeshGraphIOXml.cpp.

2647{
2648 std::stringstream s;
2649 s << tri->GetEid(0) << " " << tri->GetEid(1) << " " << tri->GetEid(2);
2650 TiXmlElement *t = new TiXmlElement(tag);
2651 t->SetAttribute("ID", triID);
2652 t->LinkEndChild(new TiXmlText(s.str()));
2653 faceTag->LinkEndChild(t);
2654}

References Nektar::SpatialDomains::Geometry::GetEid().

Referenced by Nektar::SpatialDomains::MeshGraphIOXml::v_WriteTris(), and Nektar::SpatialDomains::MeshGraphIOXmlCompressed::v_WriteTris().

◆ WriteVert() [1/2]

void Nektar::SpatialDomains::WriteVert ( PointGeom vert,
std::vector< MeshVertex > &  vertInfo,
int  vertID 
)

Definition at line 1040 of file MeshGraphIOXmlCompressed.cpp.

1041{
1042 MeshVertex v;
1043 v.id = vertID;
1044 v.x = vert->x();
1045 v.y = vert->y();
1046 v.z = vert->z();
1047 vertInfo.push_back(v);
1048}
boost::call_traits< DataType >::const_reference x() const
Definition NekPoint.hpp:160
boost::call_traits< DataType >::const_reference z() const
Definition NekPoint.hpp:172
boost::call_traits< DataType >::const_reference y() const
Definition NekPoint.hpp:166

References Nektar::SpatialDomains::MeshVertex::id, Nektar::NekPoint< data_type >::x(), Nektar::SpatialDomains::MeshVertex::x, Nektar::NekPoint< data_type >::y(), Nektar::SpatialDomains::MeshVertex::y, Nektar::NekPoint< data_type >::z(), and Nektar::SpatialDomains::MeshVertex::z.

◆ WriteVert() [2/2]

void Nektar::SpatialDomains::WriteVert ( PointGeom vert,
TiXmlElement *  vertTag 
)

Definition at line 2574 of file MeshGraphIOXml.cpp.

2575{
2576 std::stringstream s;
2577 s << std::scientific << std::setprecision(8) << (*vert)(0) << " "
2578 << (*vert)(1) << " " << (*vert)(2);
2579 TiXmlElement *v = new TiXmlElement("V");
2580 v->SetAttribute("ID", vert->GetGlobalID());
2581 v->LinkEndChild(new TiXmlText(s.str()));
2582 vertTag->LinkEndChild(v);
2583}

References Nektar::SpatialDomains::Geometry::GetGlobalID().

Referenced by Nektar::SpatialDomains::MeshGraphIOXml::v_WriteVertices(), and Nektar::SpatialDomains::MeshGraphIOXmlCompressed::v_WriteVertices().

Variable Documentation

◆ GeomMMFMap

const char* const Nektar::SpatialDomains::GeomMMFMap[]
Initial value:
= {
"TangentX", "TangentY", "TangentXY", "TangentZ",
"TangentCircular", "TangentIrregular", "TangentNonconvex", "LOCAL",
}

Session file names associated with tangent principle directions.

Definition at line 87 of file SpatialDomains.hpp.

87 {
88 "TangentX", "TangentY", "TangentXY", "TangentZ",
89 "TangentCircular", "TangentIrregular", "TangentNonconvex", "LOCAL",
90};

Referenced by Nektar::SolverUtils::MMFSystem::CheckMovingFrames(), and Nektar::SolverUtils::MMFSystem::v_GenerateSummary().

◆ kExpansionTypeStr

const std::string Nektar::SpatialDomains::kExpansionTypeStr[]
Initial value:
= {"NOTYPE",
"MODIFIED",
"MODIFIEDQUADPLUS1",
"MODIFIEDQUADPLUS2",
"MODIFIEDGLLRADAU10",
"ORTHOGONAL",
"GLL_LAGRANGE",
"GLL_LAGRANGE_SEM",
"GAUSS_LAGRANGE",
"GAUSS_LAGRANGE_SEM",
"FOURIER",
"FOURIERSINGLEMODE",
"FOURIERHALFMODERE",
"FOURIERHALFMODEIM",
"CHEBYSHEV",
"FOURIER-CHEBYSHEV",
"CHEBYSHEV-FOURIER",
"FOURIER-MODIFIED"}

Definition at line 158 of file MeshGraph.h.

158 {"NOTYPE",
159 "MODIFIED",
160 "MODIFIEDQUADPLUS1",
161 "MODIFIEDQUADPLUS2",
162 "MODIFIEDGLLRADAU10",
163 "ORTHOGONAL",
164 "GLL_LAGRANGE",
165 "GLL_LAGRANGE_SEM",
166 "GAUSS_LAGRANGE",
167 "GAUSS_LAGRANGE_SEM",
168 "FOURIER",
169 "FOURIERSINGLEMODE",
170 "FOURIERHALFMODERE",
171 "FOURIERHALFMODEIM",
172 "CHEBYSHEV",
173 "FOURIER-CHEBYSHEV",
174 "CHEBYSHEV-FOURIER",
175 "FOURIER-MODIFIED"};

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

◆ MovementTypeStr

const std::string Nektar::SpatialDomains::MovementTypeStr[]
Initial value:
= {"None", "Fixed", "Rotated",
"Translated"}

Map of zone movement type to movement type string.

Definition at line 57 of file Zones.h.

57 {"None", "Fixed", "Rotated",
58 "Translated"};

Referenced by export_Zones(), Nektar::SpatialDomains::Movement::Movement(), and Nektar::SpatialDomains::Movement::WriteMovement().

◆ NullBoundaryConditionShPtrArray

const Array<OneD, BoundaryConditionShPtr> Nektar::SpatialDomains::NullBoundaryConditionShPtrArray
static

Definition at line 261 of file Conditions.h.