|
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 () |
| 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) |
| 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, const CurveSharedPtr curve=CurveSharedPtr()) |
| QuadGeom * | CreateQuadGeom (int id, std::array< SegGeom *, QuadGeom::kNedges > edges, const CurveSharedPtr curve=CurveSharedPtr()) |
| TriGeom * | CreateTriGeom (int id, std::array< SegGeom *, TriGeom::kNedges > edges, const CurveSharedPtr curve=CurveSharedPtr()) |
| 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). | |
| void | SetMeshPartitioned (bool meshPartitioned) |
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 289 of file MeshGraph.h.
| Nektar::SpatialDomains::MeshGraph::MeshGraph | ( | ) |
Definition at line 92 of file MeshGraph.cpp.
References m_boundingBoxTree, and m_movement.
|
virtual |
Definition at line 103 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 558 of file MeshGraph.h.
References ASSERTL0, 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 284 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 399 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 516 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 4175 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 4111 of file MeshGraph.cpp.
References m_meshComposites.
|
inline |
Definition at line 652 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 4011 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 598 of file MeshGraph.h.
References AddGeom(), and Nektar::ObjPoolManager< DataType >::AllocateUniquePtr().
|
inline |
Definition at line 661 of file MeshGraph.h.
References AddGeom(), and Nektar::ObjPoolManager< DataType >::AllocateUniquePtr().
|
inline |
Definition at line 670 of file MeshGraph.h.
References AddGeom(), and Nektar::ObjPoolManager< DataType >::AllocateUniquePtr().
|
inline |
Definition at line 621 of file MeshGraph.h.
References AddGeom(), and Nektar::ObjPoolManager< DataType >::AllocateUniquePtr().
|
inline |
Definition at line 610 of file MeshGraph.h.
References AddGeom(), and Nektar::ObjPoolManager< DataType >::AllocateUniquePtr().
|
inline |
Definition at line 643 of file MeshGraph.h.
References AddGeom(), and Nektar::ObjPoolManager< DataType >::AllocateUniquePtr().
|
inline |
Definition at line 632 of file MeshGraph.h.
References AddGeom(), and Nektar::ObjPoolManager< DataType >::AllocateUniquePtr().
|
static |
Definition at line 1627 of file MeshGraph.cpp.
References ASSERTL0, Nektar::LibUtilities::eChebyshev, Nektar::SpatialDomains::eChebyshev, Nektar::SpatialDomains::eChebyshevFourier, 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::ePrism, Nektar::LibUtilities::ePyramid, Nektar::LibUtilities::eQuadrilateral, Nektar::LibUtilities::eSegment, Nektar::LibUtilities::eTetrahedron, Nektar::LibUtilities::eTriangle, and Nektar::SpatialDomains::Geometry::GetShapeType().
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 2342 of file MeshGraph.cpp.
References ASSERTL0, Nektar::LibUtilities::eChebyshev, Nektar::SpatialDomains::eChebyshev, 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, and Nektar::SpatialDomains::Geometry::GetShapeType().
Referenced by ReadExpansionInfo().
|
inline |
Definition at line 295 of file MeshGraph.h.
References m_meshDimension, and m_spaceDimension.
Referenced by export_MeshGraph().
|
inline |
Definition at line 931 of file MeshGraph.h.
References m_expansionMapShPtrMap.
| void Nektar::SpatialDomains::MeshGraph::FillBoundingBoxTree | ( | ) |
Definition at line 186 of file MeshGraph.cpp.
References ASSERTL0, m_boundingBoxTree, m_hexGeoms, m_meshDimension, m_prismGeoms, m_pyrGeoms, m_quadGeoms, m_segGeoms, m_tetGeoms, and m_triGeoms.
Referenced by GetElementsContainingPoint().
| void Nektar::SpatialDomains::MeshGraph::FillGraph | ( | ) |
Definition at line 133 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 734 of file MeshGraph.h.
References m_nodeSet.
|
inline |
Definition at line 729 of file MeshGraph.h.
References m_faceToElMap.
|
inline |
Definition at line 776 of file MeshGraph.h.
References m_bndRegOrder.
|
inline |
Definition at line 359 of file MeshGraph.h.
References ASSERTL0, and m_meshComposites.
| Geometry * Nektar::SpatialDomains::MeshGraph::GetCompositeItem | ( | int | whichComposite, |
| int | whichItem | ||
| ) |
Definition at line 548 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 587 of file MeshGraph.cpp.
References ASSERTL0, Nektar::ErrorUtil::ewarning, Nektar::ParseUtils::GenerateSeqVector(), m_meshComposites, m_meshPartitioned, and NEKERROR.
Referenced by ReadExpansionInfo(), and Nektar::SpatialDomains::Movement::ReadInterfaces().
|
inline |
Definition at line 766 of file MeshGraph.h.
References m_compOrder.
|
inline |
Definition at line 373 of file MeshGraph.h.
References m_meshComposites.
Referenced by export_MeshGraph().
|
inline |
Definition at line 378 of file MeshGraph.h.
References m_compositesLabels.
|
protected |
Returns a string representation of a composite.
Definition at line 2620 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 679 of file MeshGraph.h.
References m_curvedEdges.
Referenced by export_MeshGraph().
|
inline |
Definition at line 684 of file MeshGraph.h.
References m_curvedFaces.
Referenced by export_MeshGraph().
|
inline |
Definition at line 383 of file MeshGraph.h.
References m_domain.
Referenced by export_MeshGraph(), and Nektar::SpatialDomains::Movement::ReadZones().
|
inline |
Definition at line 388 of file MeshGraph.h.
|
inline |
Definition at line 395 of file MeshGraph.h.
References m_domainRange.
| std::vector< int > Nektar::SpatialDomains::MeshGraph::GetElementsContainingPoint | ( | PointGeom * | p | ) |
Definition at line 230 of file MeshGraph.cpp.
References FillBoundingBoxTree(), and m_boundingBoxTree.
| GeometryLinkSharedPtr Nektar::SpatialDomains::MeshGraph::GetElementsFromEdge | ( | Geometry1D * | edge | ) |
Definition at line 3907 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 3962 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 640 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 676 of file MeshGraph.cpp.
References ASSERTL1, Nektar::SpatialDomains::Geometry::GetGlobalID(), and m_expansionMapShPtrMap.
|
inlineprivate |
Helper function for geometry lookups.
Definition at line 807 of file MeshGraph.h.
References ASSERTL0.
Referenced by GetHexGeom(), GetPointGeom(), GetPrismGeom(), GetPyrGeom(), GetQuadGeom(), GetSegGeom(), GetTetGeom(), GetTriGeom(), and GetVertex().
|
inline |
Definition at line 741 of file MeshGraph.h.
References m_quadGeoms, and m_triGeoms.
|
inline |
|
inline |
Definition at line 689 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 546 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 317 of file MeshGraph.h.
References m_meshDimension.
Referenced by export_MeshGraph().
|
inline |
Definition at line 789 of file MeshGraph.h.
References m_movement.
Referenced by export_MeshGraph().
| int Nektar::SpatialDomains::MeshGraph::GetNumElements | ( | ) |
Definition at line 260 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 473 of file MeshGraph.h.
References m_pointGeoms.
|
inline |
Returns vertex id from the MeshGraph.
Definition at line 490 of file MeshGraph.h.
References GetGeom(), and m_pointGeoms.
Referenced by export_MeshGraph().
|
inline |
Returns prism id from the MeshGraph.
Definition at line 538 of file MeshGraph.h.
References GetGeom(), and m_prismGeoms.
Referenced by export_MeshGraph().
|
inline |
Returns pyramid id from the MeshGraph.
Definition at line 530 of file MeshGraph.h.
References GetGeom(), and m_pyrGeoms.
Referenced by export_MeshGraph().
|
inline |
Returns quadrilateral id from the MeshGraph.
Definition at line 514 of file MeshGraph.h.
References GetGeom(), and m_quadGeoms.
Referenced by export_MeshGraph().
|
inline |
Returns segment id from the MeshGraph.
Definition at line 498 of file MeshGraph.h.
References GetGeom(), and m_segGeoms.
Referenced by export_MeshGraph().
|
inline |
Dimension of the space (can be a 1D curve in 3D space).
Definition at line 323 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 522 of file MeshGraph.h.
References GetGeom(), and m_tetGeoms.
Referenced by export_MeshGraph().
|
inline |
Returns triangle id from the MeshGraph.
Definition at line 506 of file MeshGraph.h.
References GetGeom(), and m_triGeoms.
Referenced by export_MeshGraph().
|
inline |
Returns vertex id from the MeshGraph.
Definition at line 481 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 3980 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 2666 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 | ( | ) |
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 2962 of file MeshGraph.cpp.
References ASSERTL0, Nektar::LibUtilities::BasisTypeMap, Nektar::LibUtilities::XmlDataSource::create(), Nektar::LibUtilities::FieldIO::CreateForFile(), DefineBasisKeyFromExpansionType(), DefineBasisKeyFromExpansionTypeHomo(), Nektar::SpatialDomains::eExpansionTypeSize, 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 2769 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 1610 of file MeshGraph.cpp.
Referenced by SetBasisKey().
|
inline |
Definition at line 914 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 1602 of file MeshGraph.cpp.
References m_expansionMapShPtrMap, and ResetExpansionInfoToBasisKey().
|
inline |
Definition at line 781 of file MeshGraph.h.
References m_bndRegOrder.
|
inline |
Definition at line 771 of file MeshGraph.h.
References m_compOrder.
| void Nektar::SpatialDomains::MeshGraph::SetDomainRange | ( | LibUtilities::DomainRangeShPtr | rng | ) |
Definition at line 4132 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 4137 of file MeshGraph.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::NekConstants::kNekUnsetDouble, m_domainRange, and Nektar::LibUtilities::NullDomainRangeShPtr.
|
inline |
Definition at line 886 of file MeshGraph.h.
References ASSERTL0, and m_expansionMapShPtrMap.
| void Nektar::SpatialDomains::MeshGraph::SetExpansionInfo | ( | std::vector< LibUtilities::FieldDefinitionsSharedPtr > & | fielddef | ) |
Sets expansions given field definitions.
Definition at line 692 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 1267 of file MeshGraph.cpp.
References ASSERTL0, 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().
| 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 1490 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 1532 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 1565 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 328 of file MeshGraph.h.
References m_meshDimension.
Referenced by export_MeshGraph().
|
inline |
Definition at line 798 of file MeshGraph.h.
References m_meshPartitioned.
| void Nektar::SpatialDomains::MeshGraph::SetPartition | ( | SpatialDomains::MeshGraphSharedPtr | graph | ) |
Definition at line 107 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.
| 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 2726 of file MeshGraph.cpp.
References m_refComposite, m_refRegion, and PRefinementElmts().
Referenced by ReadExpansionInfo().
|
inline |
Definition at line 906 of file MeshGraph.h.
References m_session.
|
inline |
Definition at line 333 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 2576 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 871 of file MeshGraph.h.
Referenced by GetBndRegionOrdering(), and SetBndRegionOrdering().
|
protected |
Definition at line 874 of file MeshGraph.h.
Referenced by FillBoundingBoxTree(), GetElementsContainingPoint(), and MeshGraph().
|
protected |
Definition at line 870 of file MeshGraph.h.
Referenced by GetCompositeOrdering(), and SetCompositeOrdering().
|
protected |
Definition at line 860 of file MeshGraph.h.
Referenced by Clear(), and GetCompositesLabels().
|
protected |
Definition at line 821 of file MeshGraph.h.
Referenced by Clear(), GetCurvedEdges(), and SetPartition().
|
protected |
Definition at line 822 of file MeshGraph.h.
Referenced by Clear(), GetCurvedFaces(), and SetPartition().
|
protected |
Definition at line 861 of file MeshGraph.h.
Referenced by Clear(), GetDomain(), GetDomain(), GetElementsFromEdge(), ReadExpansionInfo(), and SetUpExpansionInfoMap().
|
protected |
Definition at line 862 of file MeshGraph.h.
Referenced by CheckRange(), CheckRange(), CheckRange(), GetDomainRange(), SetDomainRange(), and SetDomainRange().
|
protected |
Definition at line 864 of file MeshGraph.h.
Referenced by Clear(), ExpansionInfoDefined(), GetExpansionInfo(), GetExpansionInfo(), ReadExpansionInfo(), SameExpansionInfo(), SetBasisKey(), SetExpansionInfo(), SetExpansionInfo(), SetExpansionInfo(), SetExpansionInfoToEvenlySpacedPoints(), SetExpansionInfoToNumModes(), and SetExpansionInfoToPointOrder().
|
protected |
Definition at line 866 of file MeshGraph.h.
Referenced by Clear(), GetAllFaceToElMap(), GetElementsFromFace(), PopulateFaceToElMap(), and SetPartition().
Definition at line 831 of file MeshGraph.h.
Referenced by AddGeom(), Clear(), CreateMeshEntities(), FillBoundingBoxTree(), FillGraph(), GetHexGeom(), GetNumElements(), SetExpansionInfo(), SetExpansionInfo(), and SetPartition().
|
protected |
Definition at line 840 of file MeshGraph.h.
Referenced by GetGeomMap().
|
protected |
Definition at line 859 of file MeshGraph.h.
Referenced by Clear(), CreateCompositeDescriptor(), GetComposite(), GetCompositeItem(), GetCompositeList(), GetComposites(), and ReadExpansionInfo().
|
protected |
Definition at line 845 of file MeshGraph.h.
Referenced by CheckRange(), CreateMeshEntities(), Empty(), FillBoundingBoxTree(), FillGraph(), GetCompositeString(), GetMeshDimension(), GetNumElements(), ReadRefinementInfo(), SetMeshDimension(), and SetPartition().
|
protected |
Definition at line 848 of file MeshGraph.h.
Referenced by GetCompositeList(), SetMeshPartitioned(), and SetPartition().
|
protected |
Definition at line 875 of file MeshGraph.h.
Referenced by FillGraph(), GetMovement(), and MeshGraph().
|
protected |
Vector of all unique curve nodes, not including vertices.
Definition at line 843 of file MeshGraph.h.
Referenced by GetAllCurveNodes().
|
protected |
Definition at line 847 of file MeshGraph.h.
Definition at line 824 of file MeshGraph.h.
Referenced by AddGeom(), Clear(), GetNvertices(), GetPointGeom(), GetVertex(), and SetPartition().
|
protected |
Definition at line 833 of file MeshGraph.h.
Referenced by GetGeomMap().
Definition at line 830 of file MeshGraph.h.
Referenced by AddGeom(), Clear(), CreateMeshEntities(), FillBoundingBoxTree(), FillGraph(), GetNumElements(), GetPrismGeom(), SetExpansionInfo(), SetExpansionInfo(), and SetPartition().
|
protected |
Definition at line 839 of file MeshGraph.h.
Referenced by GetGeomMap().
Definition at line 829 of file MeshGraph.h.
Referenced by AddGeom(), Clear(), CreateMeshEntities(), FillBoundingBoxTree(), FillGraph(), GetNumElements(), GetPyrGeom(), SetExpansionInfo(), SetExpansionInfo(), and SetPartition().
|
protected |
Definition at line 838 of file MeshGraph.h.
Referenced by GetGeomMap().
Definition at line 827 of file MeshGraph.h.
Referenced by AddGeom(), Clear(), CreateMeshEntities(), FillBoundingBoxTree(), FillGraph(), GetGeometry2D(), GetNumElements(), GetQuadGeom(), SetExpansionInfo(), SetExpansionInfo(), and SetPartition().
|
protected |
Definition at line 836 of file MeshGraph.h.
Referenced by GetGeomMap().
|
protected |
Link the refinement id with the composites.
Definition at line 853 of file MeshGraph.h.
Referenced by ReadExpansionInfo(), and SetRefinementInfo().
|
protected |
Definition at line 857 of file MeshGraph.h.
Referenced by ReadExpansionInfo().
|
protected |
Link the refinement id with the surface region data.
Definition at line 856 of file MeshGraph.h.
Referenced by ReadRefinementInfo(), and SetRefinementInfo().
Definition at line 825 of file MeshGraph.h.
Referenced by AddGeom(), Clear(), CreateMeshEntities(), FillBoundingBoxTree(), FillGraph(), GetNumElements(), GetSegGeom(), SetExpansionInfo(), SetExpansionInfo(), and SetPartition().
|
protected |
Definition at line 834 of file MeshGraph.h.
Referenced by GetGeomMap().
|
protected |
Definition at line 819 of file MeshGraph.h.
Referenced by FillGraph(), ReadExpansionInfo(), ReadRefinementInfo(), and SetSession().
|
protected |
Definition at line 846 of file MeshGraph.h.
Referenced by Empty(), GetSpaceDimension(), PRefinementElmts(), ReadRefinementInfo(), SetPartition(), and SetSpaceDimension().
Definition at line 828 of file MeshGraph.h.
Referenced by AddGeom(), Clear(), CreateMeshEntities(), FillBoundingBoxTree(), FillGraph(), GetNumElements(), GetTetGeom(), SetExpansionInfo(), SetExpansionInfo(), and SetPartition().
|
protected |
Definition at line 837 of file MeshGraph.h.
Referenced by GetGeomMap().
Definition at line 826 of file MeshGraph.h.
Referenced by AddGeom(), Clear(), CreateMeshEntities(), FillBoundingBoxTree(), FillGraph(), GetGeometry2D(), GetNumElements(), GetTriGeom(), SetExpansionInfo(), SetExpansionInfo(), and SetPartition().
|
protected |
Definition at line 835 of file MeshGraph.h.
Referenced by GetGeomMap().
|
protected |
Definition at line 849 of file MeshGraph.h.
Referenced by PRefinementElmts(), ReadExpansionInfo(), and ReadRefinementInfo().
|
protected |
Definition at line 868 of file MeshGraph.h.