|
Nektar++
|
Base class for a spectral/hp element mesh. More...
#include <MeshGraph.h>
Classes | |
| struct | GeomRTree |
Public Member Functions | |
| MeshGraph () | |
| virtual | ~MeshGraph () |
| void | Empty (int dim, int space) |
| void | FillGraph () |
| void | FillBoundingBoxTree () |
| std::vector< int > | GetElementsContainingPoint (PointGeom *p) |
| void | ReadExpansionInfo (TiXmlElement *expansionTypes) |
| void | ReadRefinementInfo () |
| Read refinement info. | |
| int | GetMeshDimension () |
| Dimension of the mesh (can be a 1D curve in 3D space). | |
| int | GetSpaceDimension () |
| Dimension of the space (can be a 1D curve in 3D space). | |
| void | SetMeshDimension (int dim) |
| void | SetSpaceDimension (int dim) |
| void | SetDomainRange (NekDouble xmin, NekDouble xmax, NekDouble ymin=NekConstants::kNekUnsetDouble, NekDouble ymax=NekConstants::kNekUnsetDouble, NekDouble zmin=NekConstants::kNekUnsetDouble, NekDouble zmax=NekConstants::kNekUnsetDouble) |
| void | SetDomainRange (LibUtilities::DomainRangeShPtr rng) |
| bool | CheckRange (Geometry2D &geom) |
| Check if goemetry is in range definition if activated. | |
| bool | CheckRange (Geometry3D &geom) |
| Check if goemetry is in range definition if activated. | |
| bool | CheckRange (MeshEntity &e) |
| Check if goemetry is in range definition if activated. | |
| CompositeSharedPtr | GetComposite (int whichComposite) |
| Geometry * | GetCompositeItem (int whichComposite, int whichItem) |
| void | GetCompositeList (const std::string &compositeStr, CompositeMap &compositeVector) const |
| std::map< int, CompositeSharedPtr > & | GetComposites () |
| std::map< int, std::string > & | GetCompositesLabels () |
| std::map< int, std::map< int, CompositeSharedPtr > > & | GetDomain () |
| std::map< int, CompositeSharedPtr > & | GetDomain (int domain) |
| LibUtilities::DomainRangeShPtr & | GetDomainRange () |
| const ExpansionInfoMap & | GetExpansionInfo (const std::string variable="DefaultVar") |
| ExpansionInfoShPtr | GetExpansionInfo (Geometry *geom, const std::string variable="DefaultVar") |
| void | SetExpansionInfo (std::vector< LibUtilities::FieldDefinitionsSharedPtr > &fielddef) |
| Sets expansions given field definitions. | |
| void | SetExpansionInfo (std::vector< LibUtilities::FieldDefinitionsSharedPtr > &fielddef, std::vector< std::vector< LibUtilities::PointsType > > &pointstype) |
| Sets expansions given field definition, quadrature points. | |
| void | SetExpansionInfoToEvenlySpacedPoints (int npoints=0) |
| Sets expansions to have equispaced points. | |
| void | SetExpansionInfoToNumModes (int nmodes) |
| Reset expansion to have specified polynomial order nmodes. | |
| void | SetExpansionInfoToPointOrder (int npts) |
| Reset expansion to have specified point order npts. | |
| void | SetRefinementInfo (ExpansionInfoMapShPtr &expansionMap) |
| This function sets the expansion #exp in map with entry #variable. | |
| void | PRefinementElmts (ExpansionInfoMapShPtr &expansionMap, RefRegion *®ion, Geometry *geomVecIter) |
| Perform the p-refinement in the selected elements. | |
| void | SetExpansionInfo (const std::string variable, ExpansionInfoMapShPtr &exp) |
| void | SetSession (LibUtilities::SessionReaderSharedPtr pSession) |
| LibUtilities::SessionReaderSharedPtr | GetSession () |
| void | SetBasisKey (LibUtilities::ShapeType shape, LibUtilities::BasisKeyVector &keys, std::string var="DefaultVar") |
| Sets the basis key for all expansions of the given shape. | |
| void | ResetExpansionInfoToBasisKey (ExpansionInfoMapShPtr &expansionMap, LibUtilities::ShapeType shape, LibUtilities::BasisKeyVector &keys) |
| bool | SameExpansionInfo (const std::string var1, const std::string var2) |
| bool | ExpansionInfoDefined (const std::string var) |
| bool | CheckForGeomInfo (std::string parameter) |
| const std::string | GetGeomInfo (std::string parameter) |
| LibUtilities::BasisKeyVector | DefineBasisKeyFromExpansionTypeHomo (Geometry *in, ExpansionType type_x, ExpansionType type_y, ExpansionType type_z, const int nummodes_x, const int nummodes_y, const int nummodes_z) |
| int | GetNvertices () |
| PointGeom * | GetVertex (int id) |
Returns vertex id from the MeshGraph. | |
| PointGeom * | GetPointGeom (int id) |
Returns vertex id from the MeshGraph. | |
| SegGeom * | GetSegGeom (int id) |
Returns segment id from the MeshGraph. | |
| TriGeom * | GetTriGeom (int id) |
Returns triangle id from the MeshGraph. | |
| QuadGeom * | GetQuadGeom (int id) |
Returns quadrilateral id from the MeshGraph. | |
| TetGeom * | GetTetGeom (int id) |
Returns tetrahedron id from the MeshGraph. | |
| PyrGeom * | GetPyrGeom (int id) |
Returns pyramid id from the MeshGraph. | |
| PrismGeom * | GetPrismGeom (int id) |
Returns prism id from the MeshGraph. | |
| HexGeom * | GetHexGeom (int id) |
Returns hex id from the MeshGraph. | |
| template<typename T > | |
| void | AddGeom (int id, unique_ptr_objpool< T > geom) |
Convenience function to add a geometry geom to the MeshGraph with geometry ID id. Retains ownership of the passed unique_ptr. | |
| PointGeom * | CreatePointGeom (const int coordim, const int vid, NekDouble x, NekDouble y, NekDouble z) |
| SegGeom * | CreateSegGeom (int id, int coordim, std::array< PointGeom *, SegGeom::kNverts > vertex, Curve *curve=nullptr) |
| QuadGeom * | CreateQuadGeom (int id, std::array< SegGeom *, QuadGeom::kNedges > edges, Curve *curve=nullptr) |
| TriGeom * | CreateTriGeom (int id, std::array< SegGeom *, TriGeom::kNedges > edges, Curve *curve=nullptr) |
| TetGeom * | CreateTetGeom (int id, std::array< TriGeom *, TetGeom::kNfaces > faces) |
| HexGeom * | CreateHexGeom (int id, std::array< QuadGeom *, HexGeom::kNfaces > faces) |
| PrismGeom * | CreatePrismGeom (int id, std::array< Geometry2D *, PrismGeom::kNfaces > faces) |
| PyrGeom * | CreatePyrGeom (int id, std::array< Geometry2D *, PyrGeom::kNfaces > faces) |
| CurveMap & | GetCurvedEdges () |
| CurveMap & | GetCurvedFaces () |
| template<typename T > | |
| GeomMapView< T > & | GetGeomMap () |
| std::unordered_map< int, GeometryLinkSharedPtr > & | GetAllFaceToElMap () |
| std::vector< PointGeomUniquePtr > & | GetAllCurveNodes () |
| int | GetNumElements () |
| Geometry2D * | GetGeometry2D (int gID) |
| GeometryLinkSharedPtr | GetElementsFromEdge (Geometry1D *edge) |
| GeometryLinkSharedPtr | GetElementsFromFace (Geometry2D *face) |
| void | SetPartition (SpatialDomains::MeshGraphSharedPtr graph) |
| CompositeOrdering & | GetCompositeOrdering () |
| void | SetCompositeOrdering (CompositeOrdering p_compOrder) |
| BndRegionOrdering & | GetBndRegionOrdering () |
| void | SetBndRegionOrdering (BndRegionOrdering p_bndRegOrder) |
| std::map< int, MeshEntity > | CreateMeshEntities () |
| Create mesh entities for this graph. | |
| CompositeDescriptor | CreateCompositeDescriptor () |
| MovementSharedPtr & | GetMovement () |
| void | Clear () |
| void | PopulateFaceToElMap (Geometry3D *element, int kNfaces) |
| Given a 3D geometry object #element, populate the face to element map m_faceToElMap which maps faces to their corresponding element(s). | |
| bool | GetMeshPartitioned () |
| void | SetMeshPartitioned (bool meshPartitioned) |
| int | GetPartitionNumber () |
| void | SetPartitionNumber (int partition) |
| ExpansionInfoMapShPtrMap & | GetExpansionInfoMap () |
Static Public Member Functions | |
| static LibUtilities::BasisKeyVector | DefineBasisKeyFromExpansionType (Geometry *in, ExpansionType type, const int order) |
Protected Member Functions | |
| ExpansionInfoMapShPtr | SetUpExpansionInfoMap () |
| std::string | GetCompositeString (CompositeSharedPtr comp) |
| Returns a string representation of a composite. | |
Private Member Functions | |
| template<typename T > | |
| T * | GetGeom (int id, GeomMap< T > &geomMap) |
| Helper function for geometry lookups. | |
Base class for a spectral/hp element mesh.
Definition at line 352 of file MeshGraph.h.
| Nektar::SpatialDomains::MeshGraph::MeshGraph | ( | ) |
Definition at line 94 of file MeshGraph.cpp.
References m_boundingBoxTree, and m_movement.
|
virtual |
Definition at line 105 of file MeshGraph.cpp.
|
inline |
Convenience function to add a geometry geom to the MeshGraph with geometry ID id. Retains ownership of the passed unique_ptr.
id Geometry ID geom unique_ptr to geometry object.
Definition at line 627 of file MeshGraph.h.
References ASSERTL0, ASSERTL2, m_hexGeoms, m_pointGeoms, m_prismGeoms, m_pyrGeoms, m_quadGeoms, m_segGeoms, m_tetGeoms, and m_triGeoms.
Referenced by CreateHexGeom(), CreatePointGeom(), CreatePrismGeom(), CreatePyrGeom(), CreateQuadGeom(), CreateSegGeom(), CreateTetGeom(), and CreateTriGeom().
|
inline |
| bool Nektar::SpatialDomains::MeshGraph::CheckRange | ( | Geometry2D & | geom | ) |
Check if goemetry is in range definition if activated.
Definition at line 286 of file MeshGraph.cpp.
References Nektar::SpatialDomains::Geometry::GetCoordim(), Nektar::SpatialDomains::Geometry::GetEid(), Nektar::SpatialDomains::Geometry::GetNumEdges(), Nektar::SpatialDomains::Geometry::GetNumVerts(), Nektar::SpatialDomains::Geometry::GetVertex(), m_domainRange, and Nektar::LibUtilities::NullDomainRangeShPtr.
| bool Nektar::SpatialDomains::MeshGraph::CheckRange | ( | Geometry3D & | geom | ) |
Check if goemetry is in range definition if activated.
Definition at line 402 of file MeshGraph.cpp.
References Nektar::SpatialDomains::Geometry::GetFid(), Nektar::SpatialDomains::Geometry::GetNumFaces(), Nektar::SpatialDomains::Geometry::GetNumVerts(), Nektar::SpatialDomains::Geometry::GetShapeType(), Nektar::SpatialDomains::Geometry::GetVertex(), m_domainRange, and Nektar::LibUtilities::NullDomainRangeShPtr.
| bool Nektar::SpatialDomains::MeshGraph::CheckRange | ( | MeshEntity & | e | ) |
Check if goemetry is in range definition if activated.
Definition at line 519 of file MeshGraph.cpp.
References Nektar::SpatialDomains::MeshEntity::list, m_domainRange, m_meshDimension, Nektar::LibUtilities::NullDomainRangeShPtr, and WARNINGL2.
| void Nektar::SpatialDomains::MeshGraph::Clear | ( | ) |
Definition at line 4321 of file MeshGraph.cpp.
References m_compositesLabels, m_curvedEdges, m_curvedFaces, m_domain, m_expansionMapShPtrMap, m_faceToElMap, m_hexGeoms, m_meshComposites, m_pointGeoms, m_prismGeoms, m_pyrGeoms, m_quadGeoms, m_segGeoms, m_tetGeoms, and m_triGeoms.
| CompositeDescriptor Nektar::SpatialDomains::MeshGraph::CreateCompositeDescriptor | ( | ) |
Definition at line 4257 of file MeshGraph.cpp.
References m_meshComposites.
|
inline |
Definition at line 724 of file MeshGraph.h.
References AddGeom(), and Nektar::ObjPoolManager< DataType >::AllocateUniquePtr().
| std::map< int, MeshEntity > Nektar::SpatialDomains::MeshGraph::CreateMeshEntities | ( | ) |
Create mesh entities for this graph.
This function will create a map of all mesh entities of the current graph, which can then be used within the mesh partitioner to construct an appropriate partitioning.
Definition at line 4157 of file MeshGraph.cpp.
References Nektar::SpatialDomains::MeshEntity::ghost, Nektar::SpatialDomains::MeshEntity::id, Nektar::SpatialDomains::MeshEntity::list, m_hexGeoms, m_meshDimension, m_prismGeoms, m_pyrGeoms, m_quadGeoms, m_segGeoms, m_tetGeoms, m_triGeoms, and Nektar::SpatialDomains::MeshEntity::origId.
|
inline |
Definition at line 670 of file MeshGraph.h.
References AddGeom(), and Nektar::ObjPoolManager< DataType >::AllocateUniquePtr().
|
inline |
Definition at line 733 of file MeshGraph.h.
References AddGeom(), and Nektar::ObjPoolManager< DataType >::AllocateUniquePtr().
|
inline |
Definition at line 742 of file MeshGraph.h.
References AddGeom(), and Nektar::ObjPoolManager< DataType >::AllocateUniquePtr().
|
inline |
Definition at line 693 of file MeshGraph.h.
References AddGeom(), and Nektar::ObjPoolManager< DataType >::AllocateUniquePtr().
|
inline |
Definition at line 682 of file MeshGraph.h.
References AddGeom(), and Nektar::ObjPoolManager< DataType >::AllocateUniquePtr().
|
inline |
Definition at line 715 of file MeshGraph.h.
References AddGeom(), and Nektar::ObjPoolManager< DataType >::AllocateUniquePtr().
|
inline |
Definition at line 704 of file MeshGraph.h.
References AddGeom(), and Nektar::ObjPoolManager< DataType >::AllocateUniquePtr().
|
static |
Definition at line 1634 of file MeshGraph.cpp.
References ASSERTL0, Nektar::SpatialDomains::eChebyshev, Nektar::SpatialDomains::eChebyshevFourier, Nektar::ErrorUtil::efatal, Nektar::LibUtilities::eFourier, Nektar::SpatialDomains::eFourier, Nektar::SpatialDomains::eFourierChebyshev, Nektar::LibUtilities::eFourierEvenlySpaced, Nektar::LibUtilities::eFourierHalfModeIm, Nektar::SpatialDomains::eFourierHalfModeIm, Nektar::LibUtilities::eFourierHalfModeRe, Nektar::SpatialDomains::eFourierHalfModeRe, Nektar::SpatialDomains::eFourierModified, Nektar::LibUtilities::eFourierSingleMode, Nektar::SpatialDomains::eFourierSingleMode, Nektar::LibUtilities::eFourierSingleModeSpaced, Nektar::LibUtilities::eGauss_Lagrange, Nektar::SpatialDomains::eGauss_Lagrange, Nektar::LibUtilities::eGaussGaussChebyshev, Nektar::LibUtilities::eGaussGaussLegendre, Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eGLL_Lagrange, Nektar::SpatialDomains::eGLL_Lagrange, Nektar::SpatialDomains::eGLL_Lagrange_SEM, Nektar::LibUtilities::eHexahedron, Nektar::SpatialDomains::eModified, Nektar::LibUtilities::eModified_A, Nektar::LibUtilities::eModified_B, Nektar::LibUtilities::eModified_C, Nektar::SpatialDomains::eModifiedGLLRadau10, Nektar::LibUtilities::eModifiedPyr_C, Nektar::SpatialDomains::eModifiedQuadPlus1, Nektar::SpatialDomains::eModifiedQuadPlus2, Nektar::LibUtilities::eOrtho_A, Nektar::LibUtilities::eOrtho_B, Nektar::LibUtilities::eOrtho_C, Nektar::SpatialDomains::eOrthogonal, Nektar::LibUtilities::eOrthoPyr_C, Nektar::LibUtilities::ePrism, Nektar::LibUtilities::ePyramid, Nektar::LibUtilities::eQuadrilateral, Nektar::LibUtilities::eSegment, Nektar::LibUtilities::eTetrahedron, Nektar::LibUtilities::eTriangle, Nektar::SpatialDomains::Geometry::GetShapeType(), and NEKERROR.
Referenced by PRefinementElmts(), and ReadExpansionInfo().
| LibUtilities::BasisKeyVector Nektar::SpatialDomains::MeshGraph::DefineBasisKeyFromExpansionTypeHomo | ( | Geometry * | in, |
| ExpansionType | type_x, | ||
| ExpansionType | type_y, | ||
| ExpansionType | type_z, | ||
| const int | nummodes_x, | ||
| const int | nummodes_y, | ||
| const int | nummodes_z | ||
| ) |
Definition at line 2457 of file MeshGraph.cpp.
References Nektar::SpatialDomains::eChebyshev, Nektar::ErrorUtil::efatal, Nektar::LibUtilities::eFourier, Nektar::SpatialDomains::eFourier, Nektar::LibUtilities::eFourierEvenlySpaced, Nektar::LibUtilities::eFourierHalfModeIm, Nektar::SpatialDomains::eFourierHalfModeIm, Nektar::LibUtilities::eFourierHalfModeRe, Nektar::SpatialDomains::eFourierHalfModeRe, Nektar::LibUtilities::eFourierSingleMode, Nektar::SpatialDomains::eFourierSingleMode, Nektar::LibUtilities::eFourierSingleModeSpaced, Nektar::LibUtilities::eGaussGaussChebyshev, Nektar::LibUtilities::eHexahedron, Nektar::LibUtilities::eQuadrilateral, Nektar::LibUtilities::eSegment, Nektar::LibUtilities::eTetrahedron, Nektar::LibUtilities::eTriangle, Nektar::SpatialDomains::Geometry::GetShapeType(), and NEKERROR.
Referenced by ReadExpansionInfo().
|
inline |
Definition at line 358 of file MeshGraph.h.
References m_meshDimension, and m_spaceDimension.
Referenced by export_MeshGraph().
|
inline |
Definition at line 1024 of file MeshGraph.h.
References m_expansionMapShPtrMap.
| void Nektar::SpatialDomains::MeshGraph::FillBoundingBoxTree | ( | ) |
Definition at line 188 of file MeshGraph.cpp.
References Nektar::ErrorUtil::efatal, m_boundingBoxTree, m_hexGeoms, m_meshDimension, m_prismGeoms, m_pyrGeoms, m_quadGeoms, m_segGeoms, m_tetGeoms, m_triGeoms, and NEKERROR.
Referenced by GetElementsContainingPoint().
| void Nektar::SpatialDomains::MeshGraph::FillGraph | ( | ) |
Definition at line 135 of file MeshGraph.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), m_hexGeoms, m_meshDimension, m_movement, m_prismGeoms, m_pyrGeoms, m_quadGeoms, m_segGeoms, m_session, m_tetGeoms, m_triGeoms, and ReadExpansionInfo().
|
inline |
Definition at line 806 of file MeshGraph.h.
References m_nodeSet.
|
inline |
Definition at line 801 of file MeshGraph.h.
References m_faceToElMap.
|
inline |
Definition at line 848 of file MeshGraph.h.
References m_bndRegOrder.
|
inline |
Definition at line 422 of file MeshGraph.h.
References Nektar::ErrorUtil::efatal, m_meshComposites, and NEKERROR.
| Geometry * Nektar::SpatialDomains::MeshGraph::GetCompositeItem | ( | int | whichComposite, |
| int | whichItem | ||
| ) |
Definition at line 551 of file MeshGraph.cpp.
References Nektar::ErrorUtil::efatal, m_meshComposites, and NEKERROR.
| void Nektar::SpatialDomains::MeshGraph::GetCompositeList | ( | const std::string & | compositeStr, |
| CompositeMap & | compositeVector | ||
| ) | const |
Definition at line 590 of file MeshGraph.cpp.
References Nektar::ErrorUtil::efatal, Nektar::ErrorUtil::ewarning, Nektar::ParseUtils::GenerateSeqVector(), m_meshComposites, m_meshPartitioned, and NEKERROR.
Referenced by ReadExpansionInfo(), and Nektar::SpatialDomains::Movement::ReadInterfaces().
|
inline |
Definition at line 838 of file MeshGraph.h.
References m_compOrder.
|
inline |
Definition at line 437 of file MeshGraph.h.
References m_meshComposites.
Referenced by export_MeshGraph().
|
inline |
Definition at line 442 of file MeshGraph.h.
References m_compositesLabels.
|
protected |
Returns a string representation of a composite.
Definition at line 2741 of file MeshGraph.cpp.
References Nektar::LibUtilities::eHexahedron, Nektar::LibUtilities::ePoint, Nektar::LibUtilities::ePrism, Nektar::LibUtilities::ePyramid, Nektar::LibUtilities::eQuadrilateral, Nektar::LibUtilities::eSegment, Nektar::LibUtilities::eTetrahedron, Nektar::LibUtilities::eTriangle, Nektar::ParseUtils::GenerateSeqString(), Nektar::SpatialDomains::Geometry::GetShapeDim(), Nektar::SpatialDomains::Geometry::GetShapeType(), and m_meshDimension.
|
inline |
Definition at line 751 of file MeshGraph.h.
References m_curvedEdges.
Referenced by export_MeshGraph().
|
inline |
Definition at line 756 of file MeshGraph.h.
References m_curvedFaces.
Referenced by export_MeshGraph().
|
inline |
Definition at line 447 of file MeshGraph.h.
References m_domain.
Referenced by export_MeshGraph(), and Nektar::SpatialDomains::Movement::ReadZones().
|
inline |
Definition at line 452 of file MeshGraph.h.
|
inline |
Definition at line 459 of file MeshGraph.h.
References m_domainRange.
| std::vector< int > Nektar::SpatialDomains::MeshGraph::GetElementsContainingPoint | ( | PointGeom * | p | ) |
Definition at line 232 of file MeshGraph.cpp.
References FillBoundingBoxTree(), and m_boundingBoxTree.
| GeometryLinkSharedPtr Nektar::SpatialDomains::MeshGraph::GetElementsFromEdge | ( | Geometry1D * | edge | ) |
Definition at line 4053 of file MeshGraph.cpp.
References Nektar::SpatialDomains::Geometry::GetEdge(), Nektar::SpatialDomains::Geometry::GetGlobalID(), Nektar::SpatialDomains::Geometry::GetNumEdges(), and m_domain.
| GeometryLinkSharedPtr Nektar::SpatialDomains::MeshGraph::GetElementsFromFace | ( | Geometry2D * | face | ) |
Definition at line 4108 of file MeshGraph.cpp.
References ASSERTL0, Nektar::SpatialDomains::Geometry::GetGlobalID(), and m_faceToElMap.
| const ExpansionInfoMap & Nektar::SpatialDomains::MeshGraph::GetExpansionInfo | ( | const std::string | variable = "DefaultVar" | ) |
Definition at line 648 of file MeshGraph.cpp.
References Nektar::ErrorUtil::efatal, Nektar::ErrorUtil::ewarning, m_expansionMapShPtrMap, and NEKERROR.
| ExpansionInfoShPtr Nektar::SpatialDomains::MeshGraph::GetExpansionInfo | ( | Geometry * | geom, |
| const std::string | variable = "DefaultVar" |
||
| ) |
Definition at line 682 of file MeshGraph.cpp.
References ASSERTL1, Nektar::SpatialDomains::Geometry::GetGlobalID(), and m_expansionMapShPtrMap.
|
inline |
Definition at line 891 of file MeshGraph.h.
References m_expansionMapShPtrMap.
|
inlineprivate |
Helper function for geometry lookups.
Definition at line 900 of file MeshGraph.h.
References ASSERTL0.
Referenced by GetHexGeom(), GetPointGeom(), GetPrismGeom(), GetPyrGeom(), GetQuadGeom(), GetSegGeom(), GetTetGeom(), GetTriGeom(), and GetVertex().
|
inline |
Definition at line 813 of file MeshGraph.h.
References m_quadGeoms, and m_triGeoms.
|
inline |
|
inline |
Definition at line 761 of file MeshGraph.h.
References ASSERTL0, m_hexMapView, m_pointMapView, m_prismMapView, m_pyrMapView, m_quadMapView, m_segMapView, m_tetMapView, and m_triMapView.
|
inline |
Returns hex id from the MeshGraph.
Definition at line 615 of file MeshGraph.h.
References GetGeom(), and m_hexGeoms.
Referenced by export_MeshGraph().
|
inline |
Dimension of the mesh (can be a 1D curve in 3D space).
Definition at line 380 of file MeshGraph.h.
References m_meshDimension.
Referenced by export_MeshGraph().
|
inline |
Definition at line 871 of file MeshGraph.h.
References m_meshPartitioned.
|
inline |
Definition at line 861 of file MeshGraph.h.
References m_movement.
Referenced by export_MeshGraph().
| int Nektar::SpatialDomains::MeshGraph::GetNumElements | ( | ) |
Definition at line 262 of file MeshGraph.cpp.
References m_hexGeoms, m_meshDimension, m_prismGeoms, m_pyrGeoms, m_quadGeoms, m_segGeoms, m_tetGeoms, and m_triGeoms.
Referenced by export_MeshGraph().
|
inline |
Definition at line 542 of file MeshGraph.h.
References m_pointGeoms.
|
inline |
|
inline |
Returns vertex id from the MeshGraph.
Definition at line 559 of file MeshGraph.h.
References GetGeom(), and m_pointGeoms.
Referenced by export_MeshGraph().
|
inline |
Returns prism id from the MeshGraph.
Definition at line 607 of file MeshGraph.h.
References GetGeom(), and m_prismGeoms.
Referenced by export_MeshGraph().
|
inline |
Returns pyramid id from the MeshGraph.
Definition at line 599 of file MeshGraph.h.
References GetGeom(), and m_pyrGeoms.
Referenced by export_MeshGraph().
|
inline |
Returns quadrilateral id from the MeshGraph.
Definition at line 583 of file MeshGraph.h.
References GetGeom(), and m_quadGeoms.
Referenced by export_MeshGraph().
|
inline |
Returns segment id from the MeshGraph.
Definition at line 567 of file MeshGraph.h.
References GetGeom(), and m_segGeoms.
Referenced by export_MeshGraph().
|
inline |
|
inline |
Dimension of the space (can be a 1D curve in 3D space).
Definition at line 386 of file MeshGraph.h.
References m_spaceDimension.
Referenced by export_MeshGraph(), and Nektar::SpatialDomains::Movement::ReadZones().
|
inline |
Returns tetrahedron id from the MeshGraph.
Definition at line 591 of file MeshGraph.h.
References GetGeom(), and m_tetGeoms.
Referenced by export_MeshGraph().
|
inline |
Returns triangle id from the MeshGraph.
Definition at line 575 of file MeshGraph.h.
References GetGeom(), and m_triGeoms.
Referenced by export_MeshGraph().
|
inline |
Returns vertex id from the MeshGraph.
Definition at line 550 of file MeshGraph.h.
References GetGeom(), and m_pointGeoms.
| void Nektar::SpatialDomains::MeshGraph::PopulateFaceToElMap | ( | Geometry3D * | element, |
| int | kNfaces | ||
| ) |
Given a 3D geometry object #element, populate the face to element map m_faceToElMap which maps faces to their corresponding element(s).
| element | Element to process. |
| kNfaces | Number of faces of #element. Should be removed and put into Geometry3D as a virtual member function. |
Definition at line 4126 of file MeshGraph.cpp.
References Nektar::SpatialDomains::Geometry::GetFace(), Nektar::SpatialDomains::Geometry::GetGlobalID(), and m_faceToElMap.
| void Nektar::SpatialDomains::MeshGraph::PRefinementElmts | ( | ExpansionInfoMapShPtr & | expansionMap, |
| RefRegion *& | region, | ||
| Geometry * | geomVecIter | ||
| ) |
Perform the p-refinement in the selected elements.
Refine the elements which has at least one vertex inside the surface region.
| expansionMap | shared pointer for the ExpansionInfoMap. |
| region | Object which holds the information provided by the user. For example, the radius, coordinates, etc. |
| geomVecIter | pointer for the Geometry. |
Definition at line 2788 of file MeshGraph.cpp.
References DefineBasisKeyFromExpansionType(), Nektar::SpatialDomains::PointGeom::GetCoords(), Nektar::SpatialDomains::Geometry::GetGlobalID(), Nektar::SpatialDomains::RefRegion::GetNumModes(), Nektar::SpatialDomains::RefRegion::GetNumPoints(), Nektar::SpatialDomains::Geometry::GetNumVerts(), Nektar::SpatialDomains::Geometry::GetVertex(), m_spaceDimension, m_useExpansionType, and Nektar::SpatialDomains::RefRegion::v_Contains().
Referenced by SetRefinementInfo().
| void Nektar::SpatialDomains::MeshGraph::ReadExpansionInfo | ( | TiXmlElement * | expansionTypes | ) |
Expansiontypes will contain composite, nummodes, and expansiontype (eModified, or eOrthogonal) Or a full list of data of basistype, nummodes, pointstype, numpoints;
Expansiontypes may also contain a list of fields that this expansion relates to. If this does not exist the variable is set to "DefaultVar". "DefaultVar" is used as the default for any variables not explicitly listed in FIELDS.
Mandatory components...optional are to follow later.
Mandatory components...optional are to follow later.
Definition at line 3102 of file MeshGraph.cpp.
References ASSERTL0, Nektar::LibUtilities::BasisTypeMap, Nektar::LibUtilities::XmlDataSource::create(), Nektar::LibUtilities::FieldIO::CreateForFile(), DefineBasisKeyFromExpansionType(), DefineBasisKeyFromExpansionTypeHomo(), Nektar::SpatialDomains::eExpansionTypeSize, Nektar::ErrorUtil::efatal, Nektar::SpatialDomains::eNoExpansionType, Nektar::LibUtilities::Equation::Evaluate(), Nektar::ErrorUtil::ewarning, Nektar::ParseUtils::GenerateVector(), GetCompositeList(), Nektar::LibUtilities::SessionReader::GetXMLElementTimeLevel(), Nektar::SpatialDomains::kExpansionTypeStr, Nektar::LibUtilities::kPointsTypeStr, m_domain, m_expansionMapShPtrMap, m_meshComposites, m_refComposite, m_refFlag, m_session, m_useExpansionType, NEKERROR, ReadRefinementInfo(), SetExpansionInfo(), SetRefinementInfo(), SetUpExpansionInfoMap(), Nektar::LibUtilities::SIZE_BasisType, and Nektar::LibUtilities::SIZE_PointsType.
Referenced by FillGraph().
| void Nektar::SpatialDomains::MeshGraph::ReadRefinementInfo | ( | ) |
Read refinement info.
Read refinement information provided by the user in the xml file. In this function, it reads the reference id, the radius, the coordinates, the type of the method, number of modes, and number of quadrature points if necessary.
Definition at line 2891 of file MeshGraph.cpp.
References ASSERTL0, Nektar::ErrorUtil::efatal, Nektar::LibUtilities::Equation::Evaluate(), Nektar::ParseUtils::GenerateVector(), m_meshDimension, m_refRegion, m_session, m_spaceDimension, m_useExpansionType, and NEKERROR.
Referenced by ReadExpansionInfo().
| void Nektar::SpatialDomains::MeshGraph::ResetExpansionInfoToBasisKey | ( | ExpansionInfoMapShPtr & | expansionMap, |
| LibUtilities::ShapeType | shape, | ||
| LibUtilities::BasisKeyVector & | keys | ||
| ) |
Definition at line 1617 of file MeshGraph.cpp.
Referenced by SetBasisKey().
|
inline |
Definition at line 1007 of file MeshGraph.h.
References m_expansionMapShPtrMap.
| void Nektar::SpatialDomains::MeshGraph::SetBasisKey | ( | LibUtilities::ShapeType | shape, |
| LibUtilities::BasisKeyVector & | keys, | ||
| std::string | var = "DefaultVar" |
||
| ) |
Sets the basis key for all expansions of the given shape.
For each element of shape given by shape in field var, replace the current BasisKeyVector describing the expansion in each dimension, with the one provided by keys.
@TODO: Allow selection of elements through a CompositeVector, as well as by type.
| shape | The shape of elements to be changed. |
| keys | The new basis vector to apply to those elements. |
Definition at line 1609 of file MeshGraph.cpp.
References m_expansionMapShPtrMap, and ResetExpansionInfoToBasisKey().
|
inline |
Definition at line 853 of file MeshGraph.h.
References m_bndRegOrder.
|
inline |
Definition at line 843 of file MeshGraph.h.
References m_compOrder.
| void Nektar::SpatialDomains::MeshGraph::SetDomainRange | ( | LibUtilities::DomainRangeShPtr | rng | ) |
Definition at line 4278 of file MeshGraph.cpp.
References m_domainRange.
| void Nektar::SpatialDomains::MeshGraph::SetDomainRange | ( | NekDouble | xmin, |
| NekDouble | xmax, | ||
| NekDouble | ymin = NekConstants::kNekUnsetDouble, |
||
| NekDouble | ymax = NekConstants::kNekUnsetDouble, |
||
| NekDouble | zmin = NekConstants::kNekUnsetDouble, |
||
| NekDouble | zmax = NekConstants::kNekUnsetDouble |
||
| ) |
Definition at line 4283 of file MeshGraph.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::NekConstants::kNekUnsetDouble, m_domainRange, and Nektar::LibUtilities::NullDomainRangeShPtr.
|
inline |
Definition at line 979 of file MeshGraph.h.
References Nektar::ErrorUtil::efatal, m_expansionMapShPtrMap, and NEKERROR.
| void Nektar::SpatialDomains::MeshGraph::SetExpansionInfo | ( | std::vector< LibUtilities::FieldDefinitionsSharedPtr > & | fielddef | ) |
Sets expansions given field definitions.
Definition at line 698 of file MeshGraph.cpp.
References ASSERTL0, Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eHexahedron, Nektar::LibUtilities::ePrism, Nektar::LibUtilities::ePyramid, Nektar::LibUtilities::eQuadrilateral, Nektar::LibUtilities::eSegment, Nektar::LibUtilities::eTetrahedron, Nektar::LibUtilities::eTriangle, m_expansionMapShPtrMap, m_hexGeoms, m_prismGeoms, m_pyrGeoms, m_quadGeoms, m_segGeoms, m_tetGeoms, m_triGeoms, and SetUpExpansionInfoMap().
Referenced by ReadExpansionInfo().
| void Nektar::SpatialDomains::MeshGraph::SetExpansionInfo | ( | std::vector< LibUtilities::FieldDefinitionsSharedPtr > & | fielddef, |
| std::vector< std::vector< LibUtilities::PointsType > > & | pointstype | ||
| ) |
Sets expansions given field definition, quadrature points.
Definition at line 1273 of file MeshGraph.cpp.
References ASSERTL0, Nektar::ErrorUtil::efatal, Nektar::LibUtilities::eHexahedron, Nektar::LibUtilities::ePrism, Nektar::LibUtilities::ePyramid, Nektar::LibUtilities::eQuadrilateral, Nektar::LibUtilities::eSegment, Nektar::LibUtilities::eTetrahedron, Nektar::LibUtilities::eTriangle, m_expansionMapShPtrMap, m_hexGeoms, m_prismGeoms, m_pyrGeoms, m_quadGeoms, m_segGeoms, m_tetGeoms, m_triGeoms, NEKERROR, and SetUpExpansionInfoMap().
| void Nektar::SpatialDomains::MeshGraph::SetExpansionInfoToEvenlySpacedPoints | ( | int | npoints = 0 | ) |
Sets expansions to have equispaced points.
Reset all points keys to have equispaced points with optional arguemt of npoints which redefines how many points are to be used.
Definition at line 1497 of file MeshGraph.cpp.
References Nektar::LibUtilities::ePolyEvenlySpaced, Nektar::LibUtilities::BasisKey::GetBasisType(), Nektar::LibUtilities::BasisKey::GetNumModes(), and m_expansionMapShPtrMap.
Referenced by export_MeshGraph().
| void Nektar::SpatialDomains::MeshGraph::SetExpansionInfoToNumModes | ( | int | nmodes | ) |
Reset expansion to have specified polynomial order nmodes.
Reset all points keys to have expansion order of nmodes. we keep the point distribution the same and make the number of points the same difference from the number of modes as the original expansion definition.
Definition at line 1539 of file MeshGraph.cpp.
References Nektar::LibUtilities::BasisKey::GetBasisType(), Nektar::LibUtilities::BasisKey::GetNumModes(), Nektar::LibUtilities::BasisKey::GetNumPoints(), Nektar::LibUtilities::BasisKey::GetPointsType(), and m_expansionMapShPtrMap.
Referenced by export_MeshGraph().
| void Nektar::SpatialDomains::MeshGraph::SetExpansionInfoToPointOrder | ( | int | npts | ) |
Reset expansion to have specified point order npts.
Reset all points keys to have expansion order of nmodes. we keep the point distribution the same and make the number of points the same difference from the number of modes as the original expansion definition.
Definition at line 1572 of file MeshGraph.cpp.
References Nektar::LibUtilities::BasisKey::GetBasisType(), Nektar::LibUtilities::BasisKey::GetNumModes(), Nektar::LibUtilities::BasisKey::GetPointsType(), and m_expansionMapShPtrMap.
Referenced by export_MeshGraph().
|
inline |
Definition at line 391 of file MeshGraph.h.
References m_meshDimension.
Referenced by export_MeshGraph().
|
inline |
Definition at line 876 of file MeshGraph.h.
References m_meshPartitioned.
| void Nektar::SpatialDomains::MeshGraph::SetPartition | ( | SpatialDomains::MeshGraphSharedPtr | graph | ) |
Definition at line 109 of file MeshGraph.cpp.
References m_curvedEdges, m_curvedFaces, m_faceToElMap, m_hexGeoms, m_meshDimension, m_meshPartitioned, m_pointGeoms, m_prismGeoms, m_pyrGeoms, m_quadGeoms, m_segGeoms, m_spaceDimension, m_tetGeoms, and m_triGeoms.
|
inline |
Definition at line 886 of file MeshGraph.h.
References m_partition.
| void Nektar::SpatialDomains::MeshGraph::SetRefinementInfo | ( | ExpansionInfoMapShPtr & | expansionMap | ) |
This function sets the expansion #exp in map with entry #variable.
Set the refinement information. This function selects the composites and the corresponding surface regions that must be used to refine the elements.
Set refinement info.
| expansionMap | shared pointer for the ExpansionInfoMap |
Definition at line 2848 of file MeshGraph.cpp.
References m_refComposite, m_refRegion, and PRefinementElmts().
Referenced by ReadExpansionInfo().
|
inline |
Definition at line 999 of file MeshGraph.h.
References m_session.
|
inline |
Definition at line 396 of file MeshGraph.h.
References m_spaceDimension.
Referenced by export_MeshGraph().
|
protected |
Generate a single vector of ExpansionInfo structs mapping global element ID to a corresponding Geometry shared pointer and basis key.
ExpansionInfo map ensures elements which appear in multiple composites within the domain are only listed once.
Definition at line 2699 of file MeshGraph.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::SpatialDomains::eDeformed, and m_domain.
Referenced by ReadExpansionInfo(), SetExpansionInfo(), and SetExpansionInfo().
|
protected |
Definition at line 964 of file MeshGraph.h.
Referenced by GetBndRegionOrdering(), and SetBndRegionOrdering().
|
protected |
Definition at line 967 of file MeshGraph.h.
Referenced by FillBoundingBoxTree(), GetElementsContainingPoint(), and MeshGraph().
|
protected |
Definition at line 963 of file MeshGraph.h.
Referenced by GetCompositeOrdering(), and SetCompositeOrdering().
|
protected |
Definition at line 953 of file MeshGraph.h.
Referenced by Clear(), and GetCompositesLabels().
|
protected |
Definition at line 914 of file MeshGraph.h.
Referenced by Clear(), GetCurvedEdges(), and SetPartition().
|
protected |
Definition at line 915 of file MeshGraph.h.
Referenced by Clear(), GetCurvedFaces(), and SetPartition().
|
protected |
Definition at line 954 of file MeshGraph.h.
Referenced by Clear(), GetDomain(), GetDomain(), GetElementsFromEdge(), ReadExpansionInfo(), and SetUpExpansionInfoMap().
|
protected |
Definition at line 955 of file MeshGraph.h.
Referenced by CheckRange(), CheckRange(), CheckRange(), GetDomainRange(), SetDomainRange(), and SetDomainRange().
|
protected |
Definition at line 957 of file MeshGraph.h.
Referenced by Clear(), ExpansionInfoDefined(), GetExpansionInfo(), GetExpansionInfo(), GetExpansionInfoMap(), ReadExpansionInfo(), SameExpansionInfo(), SetBasisKey(), SetExpansionInfo(), SetExpansionInfo(), SetExpansionInfo(), SetExpansionInfoToEvenlySpacedPoints(), SetExpansionInfoToNumModes(), and SetExpansionInfoToPointOrder().
|
protected |
Definition at line 959 of file MeshGraph.h.
Referenced by Clear(), GetAllFaceToElMap(), GetElementsFromFace(), PopulateFaceToElMap(), and SetPartition().
Definition at line 924 of file MeshGraph.h.
Referenced by AddGeom(), Clear(), CreateMeshEntities(), FillBoundingBoxTree(), FillGraph(), GetHexGeom(), GetNumElements(), SetExpansionInfo(), SetExpansionInfo(), and SetPartition().
|
protected |
Definition at line 933 of file MeshGraph.h.
Referenced by GetGeomMap().
|
protected |
Definition at line 952 of file MeshGraph.h.
Referenced by Clear(), CreateCompositeDescriptor(), GetComposite(), GetCompositeItem(), GetCompositeList(), GetComposites(), and ReadExpansionInfo().
|
protected |
Definition at line 938 of file MeshGraph.h.
Referenced by CheckRange(), CreateMeshEntities(), Empty(), FillBoundingBoxTree(), FillGraph(), GetCompositeString(), GetMeshDimension(), GetNumElements(), ReadRefinementInfo(), SetMeshDimension(), and SetPartition().
|
protected |
Definition at line 941 of file MeshGraph.h.
Referenced by GetCompositeList(), GetMeshPartitioned(), SetMeshPartitioned(), and SetPartition().
|
protected |
Definition at line 968 of file MeshGraph.h.
Referenced by FillGraph(), GetMovement(), and MeshGraph().
|
protected |
Vector of all unique curve nodes, not including vertices.
Definition at line 936 of file MeshGraph.h.
Referenced by GetAllCurveNodes().
|
protected |
Definition at line 940 of file MeshGraph.h.
Referenced by GetPartitionNumber(), and SetPartitionNumber().
Definition at line 917 of file MeshGraph.h.
Referenced by AddGeom(), Clear(), GetNvertices(), GetPointGeom(), GetVertex(), and SetPartition().
|
protected |
Definition at line 926 of file MeshGraph.h.
Referenced by GetGeomMap().
Definition at line 923 of file MeshGraph.h.
Referenced by AddGeom(), Clear(), CreateMeshEntities(), FillBoundingBoxTree(), FillGraph(), GetNumElements(), GetPrismGeom(), SetExpansionInfo(), SetExpansionInfo(), and SetPartition().
|
protected |
Definition at line 932 of file MeshGraph.h.
Referenced by GetGeomMap().
Definition at line 922 of file MeshGraph.h.
Referenced by AddGeom(), Clear(), CreateMeshEntities(), FillBoundingBoxTree(), FillGraph(), GetNumElements(), GetPyrGeom(), SetExpansionInfo(), SetExpansionInfo(), and SetPartition().
|
protected |
Definition at line 931 of file MeshGraph.h.
Referenced by GetGeomMap().
Definition at line 920 of file MeshGraph.h.
Referenced by AddGeom(), Clear(), CreateMeshEntities(), FillBoundingBoxTree(), FillGraph(), GetGeometry2D(), GetNumElements(), GetQuadGeom(), SetExpansionInfo(), SetExpansionInfo(), and SetPartition().
|
protected |
Definition at line 929 of file MeshGraph.h.
Referenced by GetGeomMap().
|
protected |
Link the refinement id with the composites.
Definition at line 946 of file MeshGraph.h.
Referenced by ReadExpansionInfo(), and SetRefinementInfo().
|
protected |
Definition at line 950 of file MeshGraph.h.
Referenced by ReadExpansionInfo().
|
protected |
Link the refinement id with the surface region data.
Definition at line 949 of file MeshGraph.h.
Referenced by ReadRefinementInfo(), and SetRefinementInfo().
Definition at line 918 of file MeshGraph.h.
Referenced by AddGeom(), Clear(), CreateMeshEntities(), FillBoundingBoxTree(), FillGraph(), GetNumElements(), GetSegGeom(), SetExpansionInfo(), SetExpansionInfo(), and SetPartition().
|
protected |
Definition at line 927 of file MeshGraph.h.
Referenced by GetGeomMap().
|
protected |
Definition at line 912 of file MeshGraph.h.
Referenced by FillGraph(), GetSession(), ReadExpansionInfo(), ReadRefinementInfo(), and SetSession().
|
protected |
Definition at line 939 of file MeshGraph.h.
Referenced by Empty(), GetSpaceDimension(), PRefinementElmts(), ReadRefinementInfo(), SetPartition(), and SetSpaceDimension().
Definition at line 921 of file MeshGraph.h.
Referenced by AddGeom(), Clear(), CreateMeshEntities(), FillBoundingBoxTree(), FillGraph(), GetNumElements(), GetTetGeom(), SetExpansionInfo(), SetExpansionInfo(), and SetPartition().
|
protected |
Definition at line 930 of file MeshGraph.h.
Referenced by GetGeomMap().
Definition at line 919 of file MeshGraph.h.
Referenced by AddGeom(), Clear(), CreateMeshEntities(), FillBoundingBoxTree(), FillGraph(), GetGeometry2D(), GetNumElements(), GetTriGeom(), SetExpansionInfo(), SetExpansionInfo(), and SetPartition().
|
protected |
Definition at line 928 of file MeshGraph.h.
Referenced by GetGeomMap().
|
protected |
Definition at line 942 of file MeshGraph.h.
Referenced by PRefinementElmts(), ReadExpansionInfo(), and ReadRefinementInfo().
|
protected |
Definition at line 961 of file MeshGraph.h.