Nektar++
Classes | Typedefs | Enumerations | Functions | Variables
Nektar::SpatialDomains Namespace Reference

Classes

struct  BoundaryConditionBase
 
class  BoundaryConditions
 
struct  Composite
 
struct  Curve
 
struct  DirichletBoundaryCondition
 
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  HexGeom
 
struct  Interface
 A interface which is a single edge on a zone for handling non-conformality. More...
 
struct  InterfacePair
 
struct  MeshCurvedInfo
 
struct  MeshCurvedPts
 
struct  MeshEdge
 
struct  MeshEntity
 
class  MeshGraph
 Base class for a spectral/hp element mesh. More...
 
class  MeshGraphHDF5
 
class  MeshGraphXml
 
class  MeshGraphXmlCompressed
 
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
 
struct  ZoneBase
 Zone base: Contains the shared functions and variables. More...
 
struct  ZoneFixed
 Fixed zone: does not move. More...
 
struct  ZonePrescribe
 Prescribed zone: applies equation to every point. 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 std::shared_ptr< CurveCurveSharedPtr
 
typedef std::unordered_map< int, CurveSharedPtrCurveMap
 
typedef std::shared_ptr< GeometryGeometrySharedPtr
 
typedef std::vector< GeometrySharedPtrGeometryVector
 
typedef std::unordered_set< GeometrySharedPtrGeometrySet
 
typedef std::shared_ptr< GeometryVectorGeometryVectorSharedPtr
 
typedef std::shared_ptr< PointGeomPointGeomSharedPtr
 
typedef std::shared_ptr< Geometry1DGeometry1DSharedPtr
 
typedef std::shared_ptr< Geometry2DGeometry2DSharedPtr
 
typedef std::shared_ptr< Geometry0DGeometry0DSharedPtr
 
typedef std::vector< Geometry0DSharedPtrGeometry0DVector
 
typedef std::vector< Geometry0DSharedPtr >::iterator Geometry0DVectorIter
 
typedef std::vector< Geometry1DSharedPtrGeometry1DVector
 
typedef std::shared_ptr< SegGeomSegGeomSharedPtr
 
typedef std::vector< Geometry2DSharedPtrGeometry2DVector
 
typedef std::vector< PointGeomSharedPtrPointGeomVector
 
typedef std::vector< SegGeomSharedPtrSegGeomVector
 
typedef std::shared_ptr< Geometry3DGeometry3DSharedPtr
 
typedef std::vector< Geometry3DSharedPtrGeometry3DVector
 
typedef std::shared_ptr< GeomFactorsGeomFactorsSharedPtr
 Pointer to a GeomFactors object. More...
 
typedef std::vector< GeomFactorsSharedPtrGeomFactorsVector
 A vector of GeomFactor pointers. More...
 
typedef std::unordered_set< GeomFactorsSharedPtrGeomFactorsSet
 An unordered set of GeomFactor pointers. More...
 
typedef Array< OneD, Array< OneD, Array< OneD, NekDouble > > > DerivStorage
 Storage type for derivative of mapping. More...
 
typedef std::shared_ptr< QuadGeomQuadGeomSharedPtr
 
typedef std::shared_ptr< HexGeomHexGeomSharedPtr
 
typedef std::map< int, HexGeomSharedPtrHexGeomMap
 
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< GeometrySharedPtr, 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 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. More...
 
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< ZonePrescribeZonePrescribeShPtr
 
typedef std::shared_ptr< ZoneFixedZoneFixedShPtr
 
typedef std::map< int, PointGeomSharedPtrPointGeomMap
 
typedef std::shared_ptr< PrismGeomPrismGeomSharedPtr
 
typedef std::map< int, PrismGeomSharedPtrPrismGeomMap
 
typedef std::shared_ptr< PyrGeomPyrGeomSharedPtr
 
typedef std::map< int, PyrGeomSharedPtrPyrGeomMap
 
typedef std::map< int, QuadGeomSharedPtrQuadGeomMap
 
typedef std::map< int, SegGeomSharedPtrSegGeomMap
 
typedef std::shared_ptr< TetGeomTetGeomSharedPtr
 
typedef std::vector< TetGeomSharedPtrTetGeomVector
 
typedef std::map< int, TetGeomSharedPtrTetGeomMap
 
typedef std::shared_ptr< TriGeomTriGeomSharedPtr
 
typedef std::map< int, TriGeomSharedPtrTriGeomMap
 

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 ,
  ePrescribe , 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 std::shared_ptr< Geometry > &lhs, const std::shared_ptr< Geometry > &rhs)
 Less than operator to sort Geometry objects by global id when sorting STL containers. More...
 
bool GlobalIdEquality (const std::shared_ptr< Geometry > &lhs, const std::shared_ptr< Geometry > &rhs)
 
bool operator== (const GeomFactors &lhs, const GeomFactors &rhs)
 Equivalence test for GeomFactors objects. More...
 
MeshGraphFactoryGetMeshGraphFactory ()
 
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. More...
 
template<class T , typename std::enable_if< T::kDim==0, int >::type = 0>
int GetGeomDataDim (std::map< int, std::shared_ptr< 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 (std::shared_ptr< T > &geom, int i)
 
template<class T , typename std::enable_if< T::kDim==1, int >::type = 0>
int GetGeomData (std::shared_ptr< T > &geom, int i)
 
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. More...
 
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)
 

Variables

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

Typedef Documentation

◆ BndRegionOrdering

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

Definition at line 108 of file MeshGraph.h.

◆ BoundaryConditionCollection

Definition at line 219 of file Conditions.h.

◆ BoundaryConditionMap

Definition at line 217 of file Conditions.h.

◆ BoundaryConditionMapShPtr

Definition at line 218 of file Conditions.h.

◆ BoundaryConditionShPtr

Definition at line 212 of file Conditions.h.

◆ BoundaryConditionsSharedPtr

Definition at line 289 of file Conditions.h.

◆ BoundaryRegion

Definition at line 207 of file Conditions.h.

◆ BoundaryRegionCollection

Definition at line 210 of file Conditions.h.

◆ BoundaryRegionShPtr

Definition at line 208 of file Conditions.h.

◆ CompositeDescriptor

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

Definition at line 61 of file MeshGraph.h.

◆ CompositeMap

Definition at line 136 of file MeshGraph.h.

◆ CompositeOrdering

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

Definition at line 107 of file MeshGraph.h.

◆ CompositeSharedPtr

Definition at line 135 of file MeshGraph.h.

◆ ConstBoundaryRegionShPtr

Definition at line 209 of file Conditions.h.

◆ CurveMap

typedef std::unordered_map< int, CurveSharedPtr > Nektar::SpatialDomains::CurveMap

Definition at line 59 of file Curve.hpp.

◆ CurveSharedPtr

typedef std::shared_ptr< Curve > Nektar::SpatialDomains::CurveSharedPtr

Definition at line 58 of file Curve.hpp.

◆ DerivStorage

Storage type for derivative of mapping.

Definition at line 66 of file GeomFactors.h.

◆ DirichletBCShPtr

Definition at line 213 of file Conditions.h.

◆ ExpansionInfoMap

Definition at line 141 of file MeshGraph.h.

◆ ExpansionInfoMapShPtr

Definition at line 143 of file MeshGraph.h.

◆ ExpansionInfoMapShPtrMap

Definition at line 144 of file MeshGraph.h.

◆ ExpansionInfoShPtr

Definition at line 140 of file MeshGraph.h.

◆ Geometry0DSharedPtr

Definition at line 46 of file Geometry0D.h.

◆ Geometry0DVector

Definition at line 47 of file Geometry0D.h.

◆ Geometry0DVectorIter

Definition at line 48 of file Geometry0D.h.

◆ Geometry1DSharedPtr

Definition at line 61 of file Geometry.h.

◆ Geometry1DVector

Definition at line 49 of file Geometry1D.h.

◆ Geometry2DSharedPtr

Definition at line 62 of file Geometry.h.

◆ Geometry2DVector

Definition at line 60 of file Geometry2D.h.

◆ Geometry3DSharedPtr

Definition at line 50 of file Geometry3D.h.

◆ Geometry3DVector

Definition at line 52 of file Geometry3D.h.

◆ GeometryLinkSharedPtr

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

Definition at line 166 of file MeshGraph.h.

◆ GeometrySet

Definition at line 53 of file Geometry.h.

◆ GeometrySharedPtr

Definition at line 51 of file Geometry.h.

◆ GeometryVector

Definition at line 52 of file Geometry.h.

◆ GeometryVectorSharedPtr

Definition at line 54 of file Geometry.h.

◆ GeomFactorsSet

An unordered set of GeomFactor pointers.

Definition at line 64 of file GeomFactors.h.

◆ GeomFactorsSharedPtr

Pointer to a GeomFactors object.

Definition at line 60 of file GeomFactors.h.

◆ GeomFactorsVector

A vector of GeomFactor pointers.

Definition at line 62 of file GeomFactors.h.

◆ GeomInfoMap

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

Definition at line 164 of file MeshGraph.h.

◆ HexGeomMap

Definition at line 85 of file HexGeom.h.

◆ HexGeomSharedPtr

Definition at line 84 of file HexGeom.h.

◆ InterfaceCollection

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

Definition at line 49 of file Movement.h.

◆ InterfacePairShPtr

Definition at line 157 of file InterfaceInterpolation.h.

◆ InterfaceShPtr

Definition at line 118 of file InterfaceInterpolation.h.

◆ MeshGraphFactory

Definition at line 537 of file MeshGraph.h.

◆ MeshGraphSharedPtr

Definition at line 174 of file MeshGraph.h.

◆ MeshMetaDataMap

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

Definition at line 171 of file MeshGraph.h.

◆ MeshPartitionFactory

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

Definition at line 60 of file MeshPartition.h.

◆ MeshPartitionSharedPtr

Definition at line 173 of file MeshPartition.h.

◆ MovementSharedPtr

Definition at line 177 of file MeshGraph.h.

◆ NeumannBCShPtr

Definition at line 214 of file Conditions.h.

◆ PointGeomMap

Definition at line 51 of file PointGeom.h.

◆ PointGeomSharedPtr

Definition at line 57 of file Geometry.h.

◆ PointGeomVector

Definition at line 61 of file Geometry2D.h.

◆ PrismGeomMap

Definition at line 83 of file PrismGeom.h.

◆ PrismGeomSharedPtr

Definition at line 82 of file PrismGeom.h.

◆ PyrGeomMap

Definition at line 76 of file PyrGeom.h.

◆ PyrGeomSharedPtr

Definition at line 75 of file PyrGeom.h.

◆ QuadGeomMap

Definition at line 52 of file QuadGeom.h.

◆ QuadGeomSharedPtr

Definition at line 45 of file HexGeom.h.

◆ RobinBCShPtr

Definition at line 215 of file Conditions.h.

◆ SegGeomMap

Definition at line 49 of file SegGeom.h.

◆ SegGeomSharedPtr

Definition at line 59 of file Geometry2D.h.

◆ SegGeomVector

Definition at line 62 of file Geometry2D.h.

◆ TetGeomMap

Definition at line 84 of file TetGeom.h.

◆ TetGeomSharedPtr

Definition at line 82 of file TetGeom.h.

◆ TetGeomVector

Definition at line 83 of file TetGeom.h.

◆ TriGeomMap

Definition at line 57 of file TriGeom.h.

◆ TriGeomSharedPtr

Definition at line 56 of file TriGeom.h.

◆ ZoneBaseShPtr

Definition at line 144 of file Zones.h.

◆ ZoneFixedShPtr

Definition at line 365 of file Zones.h.

◆ ZonePrescribeShPtr

Definition at line 364 of file Zones.h.

◆ ZoneRotateShPtr

Definition at line 362 of file Zones.h.

◆ ZoneTranslateShPtr

Definition at line 363 of file Zones.h.

Enumeration Type Documentation

◆ BoundaryConditionType

Enumerator
eDirichlet 
eNeumann 
eRobin 
ePeriodic 
eNotDefined 

Definition at line 51 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 63 of file MeshGraph.h.

64{
84};

◆ 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.
@ eTangentXY
XY direction.
@ 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 
ePrescribe 
SIZE_MovementType 

Definition at line 46 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 ( std::shared_ptr< T > &  geom,
int  i 
)
inline

Definition at line 1380 of file MeshGraphHDF5.cpp.

1381{
1382 return (*geom)(i);
1383}

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

◆ GetGeomData() [2/2]

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

Definition at line 1386 of file MeshGraphHDF5.cpp.

1387{
1388 return geom->GetVid(i);
1389}

◆ GetGeomDataDim()

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

◆ GetMeshGraphFactory()

MeshGraphFactory & Nektar::SpatialDomains::GetMeshGraphFactory ( )

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

Definition at line 77 of file MeshGraph.cpp.

78{
79 static MeshGraphFactory instance;
80 return instance;
81}
Provides a generic Factory class.
Definition: NekFactory.hpp:104

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

◆ GetMeshPartitionFactory()

MeshPartitionFactory & Nektar::SpatialDomains::GetMeshPartitionFactory ( )

Definition at line 66 of file MeshPartition.cpp.

67{
68 static MeshPartitionFactory instance;
69 return instance;
70}

Referenced by Nektar::SpatialDomains::MeshGraphHDF5::v_PartitionMesh(), and Nektar::SpatialDomains::MeshGraphXml::v_PartitionMesh().

◆ GlobalIdEquality()

bool Nektar::SpatialDomains::GlobalIdEquality ( const std::shared_ptr< Geometry > &  lhs,
const std::shared_ptr< Geometry > &  rhs 
)

Definition at line 126 of file Geometry.cpp.

128{
129 return lhs->GetGlobalID() == rhs->GetGlobalID();
130}

◆ operator!=() [1/3]

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

Definition at line 207 of file PointGeom.cpp.

208{
209 return (x.m_globalID != y.m_globalID);
210}

◆ operator!=() [2/3]

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

Definition at line 212 of file PointGeom.cpp.

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

◆ operator!=() [3/3]

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

Definition at line 217 of file PointGeom.cpp.

218{
219 return (x->m_globalID != y.m_globalID);
220}

◆ 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 116 of file GeomFactors.cpp.

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

◆ 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 192 of file PointGeom.cpp.

193{
194 return (x.m_globalID == y.m_globalID);
195}

◆ operator==() [3/4]

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

Definition at line 197 of file PointGeom.cpp.

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

◆ operator==() [4/4]

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

Definition at line 202 of file PointGeom.cpp.

203{
204 return (x->m_globalID == y.m_globalID);
205}

◆ ReadTag()

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

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

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

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 88 of file Conditions.cpp.

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

References ToArray().

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

◆ SortByGlobalId()

bool Nektar::SpatialDomains::SortByGlobalId ( const std::shared_ptr< Geometry > &  lhs,
const std::shared_ptr< Geometry > &  rhs 
)

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

Definition at line 120 of file Geometry.cpp.

122{
123 return lhs->GetGlobalID() < rhs->GetGlobalID();
124}

◆ 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 96 of file MeshGraphHDF5.cpp.

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

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

◆ StripParentheses()

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

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

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

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 68 of file Conditions.cpp.

69{
70 Array<OneD, int> ans(set.size());
71 auto it = set.begin(), end = set.end();
72 for (int i = 0; it != end; ++it, ++i)
73 {
74 ans[i] = *it;
75 }
76 return ans;
77}

Referenced by ShareAllBoundaryIDs().

◆ UniqueValues() [1/2]

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

Definition at line 139 of file MeshGraphHDF5.cpp.

140{
141}

Referenced by UniqueValues(), and Nektar::SpatialDomains::MeshGraphHDF5::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 144 of file MeshGraphHDF5.cpp.

146{
147 for (auto i : input)
148 {
149 unique.insert(i);
150 }
151
152 UniqueValues(unique, args...);
153}
void UniqueValues(std::unordered_set< int > &unique, const std::vector< int > &input, T &...args)

References UniqueValues().

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.

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 88 of file MeshGraph.h.

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

◆ MovementTypeStr

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

Map of zone movement type to movement type string.

Definition at line 57 of file Zones.h.

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 222 of file Conditions.h.

◆ NullCurveMap

CurveMap Nektar::SpatialDomains::NullCurveMap
static

Definition at line 67 of file Geometry.h.