Nektar++
|
Base class for a spectral/hp element mesh. More...
#include <MeshGraph.h>
Public Member Functions | |
MeshGraph () | |
MeshGraph (unsigned int meshDimension, unsigned int spaceDimension) | |
MeshGraph (const LibUtilities::SessionReaderSharedPtr &pSession, const DomainRangeShPtr &rng=NullDomainRangeShPtr) | |
virtual | ~MeshGraph () |
virtual void | ReadGeometry (const std::string &infilename) |
Read will read the meshgraph vertices given a filename. More... | |
virtual void | ReadGeometry (TiXmlDocument &doc) |
Read will read the meshgraph vertices given a TiXmlDocument. More... | |
void | ReadGeometryInfo (const std::string &infilename) |
Read geometric information from a file. More... | |
void | ReadGeometryInfo (TiXmlDocument &doc) |
Read geometric information from an XML document. More... | |
void | ReadExpansions (const std::string &infilename) |
Read the expansions given the XML file path. More... | |
void | ReadExpansions (TiXmlDocument &doc) |
Read the expansions given the XML document reference. More... | |
void | ReadDomain (TiXmlDocument &doc) |
void | ReadCurves (TiXmlDocument &doc) |
void | ReadCurves (std::string &infilename) |
void | WriteGeometry (std::string &outfilename) |
Write out an XML file containing the GEOMETRY block representing this MeshGraph instance inside a NEKTAR tag. More... | |
void | WriteGeometry (TiXmlDocument &doc) |
Populate a TinyXML document with a GEOMETRY tag inside the NEKTAR tag. More... | |
int | GetMeshDimension () const |
Dimension of the mesh (can be a 1D curve in 3D space). More... | |
int | GetSpaceDimension () const |
Dimension of the space (can be a 1D curve in 3D space). More... | |
void | SetDomainRange (NekDouble xmin, NekDouble xmax, NekDouble ymin=NekConstants::kNekUnsetDouble, NekDouble ymax=NekConstants::kNekUnsetDouble, NekDouble zmin=NekConstants::kNekUnsetDouble, NekDouble zmax=NekConstants::kNekUnsetDouble) |
bool | CheckRange (Geometry2D &geom) |
Check if goemetry is in range definition if activated. More... | |
bool | CheckRange (Geometry3D &geom) |
Check if goemetry is in range definition if activated. More... | |
Composite | GetComposite (int whichComposite) const |
GeometrySharedPtr | GetCompositeItem (int whichComposite, int whichItem) |
void | GetCompositeList (const std::string &compositeStr, CompositeMap &compositeVector) const |
const CompositeMap & | GetComposites () const |
const std::map< int, std::string > & | GetCompositesLabels () const |
Return a map of integers and strings containing the labels of each composite. More... | |
const std::vector< CompositeMap > & | GetDomain (void) const |
const CompositeMap & | GetDomain (int domain) const |
const ExpansionMap & | GetExpansions () |
const ExpansionMap & | GetExpansions (const std::string variable) |
ExpansionShPtr | GetExpansion (GeometrySharedPtr geom, const std::string variable="DefaultVar") |
void | SetExpansions (std::vector< LibUtilities::FieldDefinitionsSharedPtr > &fielddef) |
Sets expansions given field definitions. More... | |
void | SetExpansions (std::vector< LibUtilities::FieldDefinitionsSharedPtr > &fielddef, std::vector< std::vector< LibUtilities::PointsType > > &pointstype) |
Sets expansions given field definition, quadrature points. More... | |
void | SetExpansionsToEvenlySpacedPoints (int npoints=0) |
Sets expansions to have equispaced points. More... | |
void | SetExpansionsToPolyOrder (int nmodes) |
Reset expansion to have specified polynomial order nmodes. More... | |
void | SetExpansionsToPointOrder (int npts) |
Reset expansion to have specified point order npts. More... | |
void | SetExpansions (const std::string variable, ExpansionMapShPtr &exp) |
This function sets the expansion #exp in map with entry #variable. More... | |
void | SetBasisKey (LibUtilities::ShapeType shape, LibUtilities::BasisKeyVector &keys, std::string var="DefaultVar") |
Sets the basis key for all expansions of the given shape. More... | |
bool | SameExpansions (const std::string var1, const std::string var2) |
bool | CheckForGeomInfo (std::string parameter) |
const std::string | GetGeomInfo (std::string parameter) |
LibUtilities::BasisKeyVector | DefineBasisKeyFromExpansionTypeHomo (GeometrySharedPtr in, ExpansionType type_x, ExpansionType type_y, ExpansionType type_z, const int nummodes_x, const int nummodes_y, const int nummodes_z) |
int | GetNvertices () const |
PointGeomSharedPtr | GetVertex (int id) |
PointGeomSharedPtr | AddVertex (NekDouble x, NekDouble y, NekDouble z) |
Adds a vertex to the with the next available ID. More... | |
SegGeomSharedPtr | AddEdge (PointGeomSharedPtr v0, PointGeomSharedPtr v1, CurveSharedPtr curveDefinition=CurveSharedPtr()) |
Adds an edge between two points. If curveDefinition is null, then the edge is straight, otherwise it is curved according to the curveDefinition. More... | |
SegGeomSharedPtr | GetEdge (unsigned int id) |
TriGeomSharedPtr | AddTriangle (SegGeomSharedPtr edges[], StdRegions::Orientation orient[]) |
QuadGeomSharedPtr | AddQuadrilateral (SegGeomSharedPtr edges[], StdRegions::Orientation orient[]) |
TetGeomSharedPtr | AddTetrahedron (TriGeomSharedPtr tfaces[TetGeom::kNtfaces]) |
PyrGeomSharedPtr | AddPyramid (TriGeomSharedPtr tfaces[PyrGeom::kNtfaces], QuadGeomSharedPtr qfaces[PyrGeom::kNqfaces]) |
PrismGeomSharedPtr | AddPrism (TriGeomSharedPtr tfaces[PrismGeom::kNtfaces], QuadGeomSharedPtr qfaces[PrismGeom::kNqfaces]) |
HexGeomSharedPtr | AddHexahedron (QuadGeomSharedPtr qfaces[HexGeom::kNqfaces]) |
const PointGeomMap & | GetVertSet () const |
CurveMap & | GetCurvedEdges () |
CurveMap & | GetCurvedFaces () |
const PointGeomMap & | GetAllPointGeoms () const |
const SegGeomMap & | GetAllSegGeoms () const |
const TriGeomMap & | GetAllTriGeoms () const |
const QuadGeomMap & | GetAllQuadGeoms () const |
const TetGeomMap & | GetAllTetGeoms () const |
const PyrGeomMap & | GetAllPyrGeoms () const |
const PrismGeomMap & | GetAllPrismGeoms () const |
const HexGeomMap & | GetAllHexGeoms () const |
template<typename ElementType > | |
const std::map< int, boost::shared_ptr< ElementType > > & | GetAllElementsOfType () const |
Convenience method for ElVis. More... | |
template<> | |
const std::map< int, boost::shared_ptr< SegGeom > > & | GetAllElementsOfType () const |
template<> | |
const std::map< int, boost::shared_ptr< TriGeom > > & | GetAllElementsOfType () const |
template<> | |
const std::map< int, boost::shared_ptr< QuadGeom > > & | GetAllElementsOfType () const |
template<> | |
const std::map< int, boost::shared_ptr< HexGeom > > & | GetAllElementsOfType () const |
template<> | |
const std::map< int, boost::shared_ptr< PrismGeom > > & | GetAllElementsOfType () const |
template<> | |
const std::map< int, boost::shared_ptr< TetGeom > > & | GetAllElementsOfType () const |
template<> | |
const std::map< int, boost::shared_ptr< PyrGeom > > & | GetAllElementsOfType () const |
Static Public Member Functions | |
static boost::shared_ptr < MeshGraph > | Read (const LibUtilities::SessionReaderSharedPtr &pSession, DomainRangeShPtr &rng=NullDomainRangeShPtr) |
static boost::shared_ptr < MeshGraph > | Read (const std::string &infilename, bool pReadExpansions=true) |
static LibUtilities::BasisKeyVector | DefineBasisKeyFromExpansionType (GeometrySharedPtr in, ExpansionType type, const int order) |
Protected Member Functions | |
ExpansionMapShPtr | SetUpExpansionMap (void) |
Base class for a spectral/hp element mesh.
Definition at line 186 of file MeshGraph.h.
Nektar::SpatialDomains::MeshGraph::MeshGraph | ( | ) |
Definition at line 76 of file MeshGraph.cpp.
Nektar::SpatialDomains::MeshGraph::MeshGraph | ( | unsigned int | meshDimension, |
unsigned int | spaceDimension | ||
) |
Definition at line 87 of file MeshGraph.cpp.
Nektar::SpatialDomains::MeshGraph::MeshGraph | ( | const LibUtilities::SessionReaderSharedPtr & | pSession, |
const DomainRangeShPtr & | rng = NullDomainRangeShPtr |
||
) |
Definition at line 100 of file MeshGraph.cpp.
|
virtual |
Definition at line 113 of file MeshGraph.cpp.
SegGeomSharedPtr Nektar::SpatialDomains::MeshGraph::AddEdge | ( | PointGeomSharedPtr | v0, |
PointGeomSharedPtr | v1, | ||
CurveSharedPtr | curveDefinition = CurveSharedPtr() |
||
) |
Adds an edge between two points. If curveDefinition is null, then the edge is straight, otherwise it is curved according to the curveDefinition.
Definition at line 4005 of file MeshGraph.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), m_segGeoms, and m_spaceDimension.
HexGeomSharedPtr Nektar::SpatialDomains::MeshGraph::AddHexahedron | ( | QuadGeomSharedPtr | qfaces[HexGeom::kNqfaces] | ) |
Definition at line 4105 of file MeshGraph.cpp.
References m_hexGeoms.
PrismGeomSharedPtr Nektar::SpatialDomains::MeshGraph::AddPrism | ( | TriGeomSharedPtr | tfaces[PrismGeom::kNtfaces], |
QuadGeomSharedPtr | qfaces[PrismGeom::kNqfaces] | ||
) |
Definition at line 4057 of file MeshGraph.cpp.
References m_prismGeoms.
PyrGeomSharedPtr Nektar::SpatialDomains::MeshGraph::AddPyramid | ( | TriGeomSharedPtr | tfaces[PyrGeom::kNtfaces], |
QuadGeomSharedPtr | qfaces[PyrGeom::kNqfaces] | ||
) |
Definition at line 4088 of file MeshGraph.cpp.
References m_pyrGeoms.
QuadGeomSharedPtr Nektar::SpatialDomains::MeshGraph::AddQuadrilateral | ( | SegGeomSharedPtr | edges[], |
StdRegions::Orientation | orient[] | ||
) |
Definition at line 4043 of file MeshGraph.cpp.
References m_quadGeoms.
TetGeomSharedPtr Nektar::SpatialDomains::MeshGraph::AddTetrahedron | ( | TriGeomSharedPtr | tfaces[TetGeom::kNtfaces] | ) |
Definition at line 4074 of file MeshGraph.cpp.
References m_tetGeoms.
TriGeomSharedPtr Nektar::SpatialDomains::MeshGraph::AddTriangle | ( | SegGeomSharedPtr | edges[], |
StdRegions::Orientation | orient[] | ||
) |
Definition at line 4028 of file MeshGraph.cpp.
References m_triGeoms.
PointGeomSharedPtr Nektar::SpatialDomains::MeshGraph::AddVertex | ( | NekDouble | x, |
NekDouble | y, | ||
NekDouble | z | ||
) |
Adds a vertex to the with the next available ID.
Definition at line 3994 of file MeshGraph.cpp.
References m_spaceDimension, m_vertSet, and Nektar::NekMeshUtils::vert.
|
inline |
bool Nektar::SpatialDomains::MeshGraph::CheckRange | ( | Geometry2D & | geom | ) |
Check if goemetry is in range definition if activated.
Definition at line 2002 of file MeshGraph.cpp.
References Nektar::SpatialDomains::Geometry::GetCoordim(), Nektar::SpatialDomains::Geometry::GetNumVerts(), Nektar::SpatialDomains::Geometry::GetVertex(), m_domainRange, and Nektar::SpatialDomains::NullDomainRangeShPtr.
Referenced by Nektar::SpatialDomains::MeshGraph3D::ResolveGeomRef(), and Nektar::SpatialDomains::MeshGraph2D::ResolveGeomRef().
bool Nektar::SpatialDomains::MeshGraph::CheckRange | ( | Geometry3D & | geom | ) |
Check if goemetry is in range definition if activated.
Definition at line 2105 of file MeshGraph.cpp.
References Nektar::SpatialDomains::Geometry::GetNumVerts(), Nektar::SpatialDomains::Geometry::GetShapeType(), Nektar::SpatialDomains::Geometry::GetVertex(), m_domainRange, and Nektar::SpatialDomains::NullDomainRangeShPtr.
|
static |
Definition at line 3195 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::eGaussRadauMAlpha1Beta0, Nektar::LibUtilities::eGaussRadauMAlpha2Beta0, 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::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, and Nektar::LibUtilities::eTriangle.
Referenced by ReadExpansions().
LibUtilities::BasisKeyVector Nektar::SpatialDomains::MeshGraph::DefineBasisKeyFromExpansionTypeHomo | ( | GeometrySharedPtr | 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 3787 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, and Nektar::LibUtilities::eTriangle.
Referenced by ReadExpansions().
const std::map<int, boost::shared_ptr<ElementType> >& Nektar::SpatialDomains::MeshGraph::GetAllElementsOfType | ( | ) | const |
Convenience method for ElVis.
|
inline |
Definition at line 602 of file MeshGraph.h.
References GetAllSegGeoms().
|
inline |
Definition at line 611 of file MeshGraph.h.
References GetAllTriGeoms().
|
inline |
Definition at line 620 of file MeshGraph.h.
References GetAllQuadGeoms().
|
inline |
Definition at line 629 of file MeshGraph.h.
References GetAllHexGeoms().
|
inline |
Definition at line 639 of file MeshGraph.h.
References GetAllPrismGeoms().
|
inline |
Definition at line 649 of file MeshGraph.h.
References GetAllTetGeoms().
|
inline |
Definition at line 659 of file MeshGraph.h.
References GetAllPyrGeoms().
|
inline |
Definition at line 402 of file MeshGraph.h.
References m_hexGeoms.
Referenced by GetAllElementsOfType().
|
inline |
|
inline |
Definition at line 401 of file MeshGraph.h.
References m_prismGeoms.
Referenced by GetAllElementsOfType().
|
inline |
Definition at line 400 of file MeshGraph.h.
References m_pyrGeoms.
Referenced by GetAllElementsOfType().
|
inline |
Definition at line 398 of file MeshGraph.h.
References m_quadGeoms.
Referenced by GetAllElementsOfType().
|
inline |
Definition at line 396 of file MeshGraph.h.
References m_segGeoms.
Referenced by GetAllElementsOfType().
|
inline |
Definition at line 399 of file MeshGraph.h.
References m_tetGeoms.
Referenced by GetAllElementsOfType().
|
inline |
Definition at line 397 of file MeshGraph.h.
References m_triGeoms.
Referenced by GetAllElementsOfType().
|
inline |
Definition at line 466 of file MeshGraph.h.
References ASSERTL0, and m_meshComposites.
Referenced by GetCompositeList(), and Nektar::SpatialDomains::Domain::Read().
GeometrySharedPtr Nektar::SpatialDomains::MeshGraph::GetCompositeItem | ( | int | whichComposite, |
int | whichItem | ||
) |
Definition at line 2212 of file MeshGraph.cpp.
References ErrorUtil::efatal, m_meshComposites, and NEKERROR.
void Nektar::SpatialDomains::MeshGraph::GetCompositeList | ( | const std::string & | compositeStr, |
CompositeMap & | compositeVector | ||
) | const |
Definition at line 2250 of file MeshGraph.cpp.
References ASSERTL0, ErrorUtil::ewarning, Nektar::StdRegions::find(), Nektar::ParseUtils::GenerateSeqVector(), GetComposite(), Nektar::iterator, m_meshComposites, m_meshPartitioned, and NEKERROR.
Referenced by ReadDomain(), and ReadExpansions().
|
inline |
Definition at line 478 of file MeshGraph.h.
References m_meshComposites.
|
inline |
Return a map of integers and strings containing the labels of each composite.
Definition at line 488 of file MeshGraph.h.
References m_compositesLabels.
|
inline |
|
inline |
|
inline |
Definition at line 497 of file MeshGraph.h.
References m_domain.
|
inline |
Definition at line 505 of file MeshGraph.h.
References ASSERTL1, and m_domain.
|
inline |
ExpansionShPtr Nektar::SpatialDomains::MeshGraph::GetExpansion | ( | GeometrySharedPtr | geom, |
const std::string | variable = "DefaultVar" |
||
) |
Definition at line 2325 of file MeshGraph.cpp.
References ASSERTL1, and m_expansionMapShPtrMap.
Referenced by Nektar::SpatialDomains::MeshGraph2D::GetEdgeBasisKey(), and Nektar::SpatialDomains::MeshGraph3D::GetFaceBasisKey().
|
inline |
Definition at line 515 of file MeshGraph.h.
const ExpansionMap & Nektar::SpatialDomains::MeshGraph::GetExpansions | ( | const std::string | variable | ) |
Definition at line 2298 of file MeshGraph.cpp.
References ErrorUtil::efatal, ErrorUtil::ewarning, m_expansionMapShPtrMap, and NEKERROR.
|
inline |
Definition at line 567 of file MeshGraph.h.
References ASSERTL1, and m_geomInfo.
|
inline |
Dimension of the mesh (can be a 1D curve in 3D space).
Definition at line 448 of file MeshGraph.h.
References m_meshDimension.
Referenced by Read().
|
inline |
|
inline |
Dimension of the space (can be a 1D curve in 3D space).
Definition at line 457 of file MeshGraph.h.
References m_spaceDimension.
Referenced by Nektar::SpatialDomains::MeshGraph1D::GetCoordim(), Nektar::SpatialDomains::MeshGraph3D::GetCoordim(), and Nektar::SpatialDomains::MeshGraph2D::GetCoordim().
|
inline |
Definition at line 587 of file MeshGraph.h.
References ASSERTL0, Nektar::iterator, and m_vertSet.
Referenced by Nektar::SpatialDomains::MeshGraph3D::ReadEdges(), Nektar::SpatialDomains::MeshGraph2D::ReadEdges(), and Nektar::SpatialDomains::MeshGraph1D::ReadElements().
|
inline |
|
static |
Definition at line 121 of file MeshGraph.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL0, ErrorUtil::efatal, and NEKERROR.
Referenced by Nektar::VortexWaveInteraction::FileRelaxation(), main(), Nektar::Utilities::InputXml::Process(), Nektar::Utilities::InputNekpp::Process(), Nektar::Utilities::ProcessDisplacement::Process(), Nektar::Utilities::ProcessInterpField::Process(), Nektar::Utilities::ProcessInterpPoints::Process(), Nektar::Utilities::OutputNekpp::Process(), Nektar::SolverUtils::EquationSystem::v_InitObject(), and Nektar::SolverUtils::FilterModalEnergy::v_Update().
|
static |
Definition at line 182 of file MeshGraph.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ErrorUtil::efatal, GetMeshDimension(), NEKERROR, and ReadGeometry().
void Nektar::SpatialDomains::MeshGraph::ReadCurves | ( | TiXmlDocument & | doc | ) |
We know we have it since we made it this far.
Look for elements in CURVE block.
All curves are of the form: "<? ID="#" TYPE="GLL OR other points type" NUMPOINTS="#"> ... </?>", with ? being an element type (either E or F).
These should be ordered.
Read id attribute.
Read edge id attribute.
Read text edgelement description.
Parse out the element components corresponding to type of element.
Read id attribute.
Read face id attribute.
Read text face element description.
Parse out the element components corresponding to type of element.
Definition at line 1160 of file MeshGraph.cpp.
References ASSERTL0, Nektar::NekMeshUtils::curve, Nektar::LibUtilities::AnalyticExpressionEvaluator::DefineFunction(), ErrorUtil::efatal, Nektar::LibUtilities::AnalyticExpressionEvaluator::Evaluate(), Nektar::StdRegions::find(), Nektar::LibUtilities::CompressData::GetCompressString(), Nektar::LibUtilities::MeshCurvedPts::id, Nektar::LibUtilities::MeshCurvedPts::index, Nektar::LibUtilities::kPointsTypeStr, m_curvedEdges, m_curvedFaces, m_meshDimension, NEKERROR, Nektar::LibUtilities::MeshCurvedPts::pts, Nektar::LibUtilities::SIZE_PointsType, Nektar::NekMeshUtils::vert, and Nektar::LibUtilities::CompressData::ZlibDecodeFromBase64Str().
Referenced by ReadCurves(), Nektar::SpatialDomains::MeshGraph1D::ReadGeometry(), Nektar::SpatialDomains::MeshGraph3D::ReadGeometry(), and Nektar::SpatialDomains::MeshGraph2D::ReadGeometry().
void Nektar::SpatialDomains::MeshGraph::ReadCurves | ( | std::string & | infilename | ) |
Definition at line 1633 of file MeshGraph.cpp.
References ASSERTL0, and ReadCurves().
void Nektar::SpatialDomains::MeshGraph::ReadDomain | ( | TiXmlDocument & | doc | ) |
Look for data in DOMAIN block.
Elements are of the form: "<D ID = "N"> ... </D>". Read the ID field first.
Keep looking
Definition at line 1066 of file MeshGraph.cpp.
References ASSERTL0, GetCompositeList(), and m_domain.
Referenced by Nektar::SpatialDomains::MeshGraph1D::ReadGeometry(), Nektar::SpatialDomains::MeshGraph3D::ReadGeometry(), and Nektar::SpatialDomains::MeshGraph2D::ReadGeometry().
void Nektar::SpatialDomains::MeshGraph::ReadExpansions | ( | const std::string & | infilename | ) |
Read the expansions given the XML file path.
Definition at line 582 of file MeshGraph.cpp.
References ASSERTL0.
Referenced by Nektar::SpatialDomains::MeshGraph1D::MeshGraph1D(), Nektar::SpatialDomains::MeshGraph2D::MeshGraph2D(), and Nektar::SpatialDomains::MeshGraph3D::MeshGraph3D().
void Nektar::SpatialDomains::MeshGraph::ReadExpansions | ( | TiXmlDocument & | doc | ) |
Read the expansions given the XML document reference.
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 only set to "DefaultVar".
Mandatory components...optional are to follow later.
Mandatory components...optional are to follow later.
Definition at line 600 of file MeshGraph.cpp.
References ASSERTL0, Nektar::LibUtilities::BasisTypeMap, DefineBasisKeyFromExpansionType(), DefineBasisKeyFromExpansionTypeHomo(), Nektar::SpatialDomains::eExpansionTypeSize, Nektar::SpatialDomains::eNoExpansionType, Nektar::LibUtilities::Equation::Evaluate(), Nektar::StdRegions::find(), Nektar::ParseUtils::GenerateOrderedStringVector(), Nektar::ParseUtils::GenerateOrderedVector(), GetCompositeList(), Nektar::LibUtilities::FieldIO::ImportFieldDefs(), Nektar::SpatialDomains::kExpansionTypeStr, Nektar::LibUtilities::kPointsTypeStr, m_expansionMapShPtrMap, m_session, SetExpansions(), SetUpExpansionMap(), Nektar::LibUtilities::SIZE_BasisType, and Nektar::LibUtilities::SIZE_PointsType.
|
virtual |
Read will read the meshgraph vertices given a filename.
Reimplemented in Nektar::SpatialDomains::MeshGraph2D, Nektar::SpatialDomains::MeshGraph3D, and Nektar::SpatialDomains::MeshGraph1D.
Definition at line 232 of file MeshGraph.cpp.
References ASSERTL0.
Referenced by Read(), Nektar::SpatialDomains::MeshGraph1D::ReadGeometry(), Nektar::SpatialDomains::MeshGraph3D::ReadGeometry(), and Nektar::SpatialDomains::MeshGraph2D::ReadGeometry().
|
virtual |
Read will read the meshgraph vertices given a TiXmlDocument.
Error value returned by TinyXML.
Reimplemented in Nektar::SpatialDomains::MeshGraph2D, Nektar::SpatialDomains::MeshGraph3D, and Nektar::SpatialDomains::MeshGraph1D.
Definition at line 250 of file MeshGraph.cpp.
References ASSERTL0, ASSERTL1, Nektar::LibUtilities::AnalyticExpressionEvaluator::DefineFunction(), Nektar::LibUtilities::AnalyticExpressionEvaluator::Evaluate(), Nektar::LibUtilities::CompressData::GetCompressString(), m_meshDimension, m_meshPartitioned, m_partition, m_spaceDimension, m_vertSet, Nektar::NekMeshUtils::vert, and Nektar::LibUtilities::CompressData::ZlibDecodeFromBase64Str().
void Nektar::SpatialDomains::MeshGraph::ReadGeometryInfo | ( | const std::string & | infilename | ) |
Read geometric information from a file.
Read the geometry-related information from the given file. This information is located within the XML tree under <NEKTAR><GEOMETRY><GEOMINFO>.
infilename | Filename of XML file. |
Definition at line 527 of file MeshGraph.cpp.
References ASSERTL0.
void Nektar::SpatialDomains::MeshGraph::ReadGeometryInfo | ( | TiXmlDocument & | doc | ) |
Read geometric information from an XML document.
Read the geometry-related information from the given XML document. This information is located within the XML tree under <NEKTAR><GEOMETRY><GEOMINFO>.
doc | XML document. |
Definition at line 548 of file MeshGraph.cpp.
References ASSERTL0, Nektar::iterator, and m_geomInfo.
|
inline |
Definition at line 541 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.
: 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 3174 of file MeshGraph.cpp.
References m_expansionMapShPtrMap.
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 1964 of file MeshGraph.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::NekConstants::kNekUnsetDouble, m_domainRange, and Nektar::SpatialDomains::NullDomainRangeShPtr.
void Nektar::SpatialDomains::MeshGraph::SetExpansions | ( | std::vector< LibUtilities::FieldDefinitionsSharedPtr > & | fielddef | ) |
Sets expansions given field definitions.
Definition at line 2342 of file MeshGraph.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL0, Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eGaussRadauMAlpha1Beta0, Nektar::LibUtilities::eGaussRadauMAlpha2Beta0, 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, and m_triGeoms.
Referenced by ReadExpansions().
void Nektar::SpatialDomains::MeshGraph::SetExpansions | ( | std::vector< LibUtilities::FieldDefinitionsSharedPtr > & | fielddef, |
std::vector< std::vector< LibUtilities::PointsType > > & | pointstype | ||
) |
Sets expansions given field definition, quadrature points.
Definition at line 2825 of file MeshGraph.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), 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, and m_triGeoms.
|
inline |
This function sets the expansion #exp in map with entry #variable.
Definition at line 525 of file MeshGraph.h.
References ASSERTL0, and m_expansionMapShPtrMap.
void Nektar::SpatialDomains::MeshGraph::SetExpansionsToEvenlySpacedPoints | ( | 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 3052 of file MeshGraph.cpp.
References Nektar::LibUtilities::ePolyEvenlySpaced, Nektar::LibUtilities::BasisKey::GetBasisType(), Nektar::LibUtilities::BasisKey::GetNumModes(), m_expansionMapShPtrMap, and npts.
void Nektar::SpatialDomains::MeshGraph::SetExpansionsToPointOrder | ( | 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 3127 of file MeshGraph.cpp.
References Nektar::LibUtilities::BasisKey::GetBasisType(), Nektar::LibUtilities::BasisKey::GetNumModes(), Nektar::LibUtilities::BasisKey::GetPointsType(), and m_expansionMapShPtrMap.
void Nektar::SpatialDomains::MeshGraph::SetExpansionsToPolyOrder | ( | 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 3094 of file MeshGraph.cpp.
References Nektar::LibUtilities::BasisKey::GetBasisType(), Nektar::LibUtilities::BasisKey::GetNumModes(), Nektar::LibUtilities::BasisKey::GetNumPoints(), Nektar::LibUtilities::BasisKey::GetPointsType(), m_expansionMapShPtrMap, and npts.
|
protected |
Generate a single vector of Expansion structs mapping global element ID to a corresponding Geometry shared pointer and basis key.
Expansion map ensures elements which appear in multiple composites within the domain are only listed once.
Definition at line 4122 of file MeshGraph.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and m_domain.
Referenced by ReadExpansions().
void Nektar::SpatialDomains::MeshGraph::WriteGeometry | ( | std::string & | outfilename | ) |
Write out an XML file containing the GEOMETRY block representing this MeshGraph instance inside a NEKTAR tag.
Definition at line 1950 of file MeshGraph.cpp.
void Nektar::SpatialDomains::MeshGraph::WriteGeometry | ( | TiXmlDocument & | doc | ) |
Populate a TinyXML document with a GEOMETRY tag inside the NEKTAR tag.
This routine will create a GEOMETRY XML tag which represents the MeshGraph object. If a NEKTAR tag does not already exist, it will create one. If a GEOMETRY block already exists inside the NEKTAR tag, it will overwrite it.
Definition at line 1656 of file MeshGraph.cpp.
References Nektar::NekMeshUtils::curve, Nektar::LibUtilities::eHexahedron, Nektar::LibUtilities::ePrism, Nektar::LibUtilities::ePyramid, Nektar::LibUtilities::eQuadrilateral, Nektar::LibUtilities::eSegment, Nektar::LibUtilities::eTetrahedron, Nektar::LibUtilities::eTriangle, Nektar::ParseUtils::GenerateSeqString(), Nektar::iterator, Nektar::LibUtilities::kPointsTypeStr, m_curvedEdges, m_curvedFaces, m_domain, m_hexGeoms, m_meshComposites, m_meshDimension, m_prismGeoms, m_pyrGeoms, m_quadGeoms, m_segGeoms, m_spaceDimension, m_tetGeoms, m_triGeoms, and m_vertSet.
|
protected |
Definition at line 431 of file MeshGraph.h.
Referenced by GetCompositesLabels(), Nektar::SpatialDomains::MeshGraph3D::ReadComposites(), and Nektar::SpatialDomains::MeshGraph2D::ReadComposites().
|
protected |
Definition at line 413 of file MeshGraph.h.
Referenced by GetCurvedEdges(), ReadCurves(), Nektar::SpatialDomains::MeshGraph3D::ReadEdges(), Nektar::SpatialDomains::MeshGraph2D::ReadEdges(), Nektar::SpatialDomains::MeshGraph1D::ReadElements(), Nektar::SpatialDomains::MeshGraph2D::ReadElements(), Nektar::SpatialDomains::MeshGraph3D::ReadFaces(), and WriteGeometry().
|
protected |
Definition at line 414 of file MeshGraph.h.
Referenced by GetCurvedFaces(), ReadCurves(), Nektar::SpatialDomains::MeshGraph2D::ReadElements(), Nektar::SpatialDomains::MeshGraph3D::ReadFaces(), and WriteGeometry().
|
protected |
Definition at line 432 of file MeshGraph.h.
Referenced by GetDomain(), Nektar::SpatialDomains::MeshGraph2D::GetElementsFromEdge(), ReadDomain(), SetUpExpansionMap(), and WriteGeometry().
|
protected |
Definition at line 433 of file MeshGraph.h.
Referenced by CheckRange(), and SetDomainRange().
|
protected |
Definition at line 435 of file MeshGraph.h.
Referenced by GetExpansion(), GetExpansions(), ReadExpansions(), SameExpansions(), SetBasisKey(), SetExpansions(), SetExpansionsToEvenlySpacedPoints(), SetExpansionsToPointOrder(), and SetExpansionsToPolyOrder().
|
protected |
Definition at line 437 of file MeshGraph.h.
Referenced by CheckForGeomInfo(), GetGeomInfo(), and ReadGeometryInfo().
|
protected |
Definition at line 423 of file MeshGraph.h.
Referenced by AddHexahedron(), GetAllHexGeoms(), Nektar::SpatialDomains::MeshGraph3D::ReadElements(), Nektar::SpatialDomains::MeshGraph3D::ResolveGeomRef(), SetExpansions(), and WriteGeometry().
|
protected |
Definition at line 411 of file MeshGraph.h.
|
protected |
Definition at line 430 of file MeshGraph.h.
Referenced by GetComposite(), GetCompositeItem(), GetCompositeList(), GetComposites(), Nektar::SpatialDomains::MeshGraph3D::GetNumCompositeItems(), Nektar::SpatialDomains::MeshGraph2D::GetNumCompositeItems(), Nektar::SpatialDomains::MeshGraph3D::GetNumComposites(), Nektar::SpatialDomains::MeshGraph2D::GetNumComposites(), Nektar::SpatialDomains::MeshGraph1D::ReadComposites(), Nektar::SpatialDomains::MeshGraph3D::ReadComposites(), Nektar::SpatialDomains::MeshGraph2D::ReadComposites(), and WriteGeometry().
|
protected |
Definition at line 425 of file MeshGraph.h.
Referenced by GetMeshDimension(), ReadCurves(), ReadGeometry(), and WriteGeometry().
|
protected |
Definition at line 428 of file MeshGraph.h.
Referenced by GetCompositeList(), and ReadGeometry().
|
protected |
Definition at line 427 of file MeshGraph.h.
Referenced by ReadGeometry().
|
protected |
Definition at line 422 of file MeshGraph.h.
Referenced by AddPrism(), GetAllPrismGeoms(), Nektar::SpatialDomains::MeshGraph3D::ReadElements(), Nektar::SpatialDomains::MeshGraph3D::ResolveGeomRef(), SetExpansions(), and WriteGeometry().
|
protected |
Definition at line 421 of file MeshGraph.h.
Referenced by AddPyramid(), GetAllPyrGeoms(), Nektar::SpatialDomains::MeshGraph3D::ReadElements(), Nektar::SpatialDomains::MeshGraph3D::ResolveGeomRef(), SetExpansions(), and WriteGeometry().
|
protected |
Definition at line 419 of file MeshGraph.h.
Referenced by AddQuadrilateral(), GetAllQuadGeoms(), Nektar::SpatialDomains::MeshGraph3D::GetCartesianEorientFromElmt(), Nektar::SpatialDomains::MeshGraph2D::GetCartesianEorientFromElmt(), Nektar::SpatialDomains::MeshGraph3D::GetEidFromElmt(), Nektar::SpatialDomains::MeshGraph2D::GetEidFromElmt(), Nektar::SpatialDomains::MeshGraph3D::GetEorientFromElmt(), Nektar::SpatialDomains::MeshGraph2D::GetEorientFromElmt(), Nektar::SpatialDomains::MeshGraph3D::GetGeometry2D(), Nektar::SpatialDomains::MeshGraph2D::GetQuadgeoms(), Nektar::SpatialDomains::MeshGraph3D::GetQuadgeoms(), Nektar::SpatialDomains::MeshGraph3D::GetVidFromElmt(), Nektar::SpatialDomains::MeshGraph2D::GetVidFromElmt(), Nektar::SpatialDomains::MeshGraph2D::ReadElements(), Nektar::SpatialDomains::MeshGraph3D::ReadFaces(), Nektar::SpatialDomains::MeshGraph3D::ResolveGeomRef(), Nektar::SpatialDomains::MeshGraph2D::ResolveGeomRef(), SetExpansions(), and WriteGeometry().
|
protected |
Definition at line 416 of file MeshGraph.h.
Referenced by AddEdge(), GetAllSegGeoms(), GetEdge(), Nektar::SpatialDomains::MeshGraph3D::GetNseggeoms(), Nektar::SpatialDomains::MeshGraph2D::GetNseggeoms(), Nektar::SpatialDomains::MeshGraph3D::GetSegGeom(), Nektar::SpatialDomains::MeshGraph2D::GetSegGeom(), Nektar::SpatialDomains::MeshGraph1D::GetSeggeoms(), Nektar::SpatialDomains::MeshGraph1D::GetVidFromElmt(), Nektar::SpatialDomains::MeshGraph3D::ReadEdges(), Nektar::SpatialDomains::MeshGraph2D::ReadEdges(), Nektar::SpatialDomains::MeshGraph1D::ReadElements(), Nektar::SpatialDomains::MeshGraph1D::ResolveGeomRef(), Nektar::SpatialDomains::MeshGraph3D::ResolveGeomRef(), Nektar::SpatialDomains::MeshGraph2D::ResolveGeomRef(), SetExpansions(), and WriteGeometry().
|
protected |
Definition at line 409 of file MeshGraph.h.
Referenced by ReadExpansions().
|
protected |
Definition at line 426 of file MeshGraph.h.
Referenced by AddEdge(), AddVertex(), GetSpaceDimension(), Nektar::SpatialDomains::MeshGraph3D::ReadEdges(), Nektar::SpatialDomains::MeshGraph2D::ReadEdges(), Nektar::SpatialDomains::MeshGraph1D::ReadElements(), ReadGeometry(), and WriteGeometry().
|
protected |
Definition at line 420 of file MeshGraph.h.
Referenced by AddTetrahedron(), GetAllTetGeoms(), Nektar::SpatialDomains::MeshGraph3D::ReadElements(), Nektar::SpatialDomains::MeshGraph3D::ResolveGeomRef(), SetExpansions(), and WriteGeometry().
|
protected |
Definition at line 418 of file MeshGraph.h.
Referenced by AddTriangle(), GetAllTriGeoms(), Nektar::SpatialDomains::MeshGraph3D::GetCartesianEorientFromElmt(), Nektar::SpatialDomains::MeshGraph2D::GetCartesianEorientFromElmt(), Nektar::SpatialDomains::MeshGraph3D::GetEidFromElmt(), Nektar::SpatialDomains::MeshGraph2D::GetEidFromElmt(), Nektar::SpatialDomains::MeshGraph3D::GetEorientFromElmt(), Nektar::SpatialDomains::MeshGraph2D::GetEorientFromElmt(), Nektar::SpatialDomains::MeshGraph3D::GetGeometry2D(), Nektar::SpatialDomains::MeshGraph2D::GetTrigeoms(), Nektar::SpatialDomains::MeshGraph3D::GetTrigeoms(), Nektar::SpatialDomains::MeshGraph3D::GetVidFromElmt(), Nektar::SpatialDomains::MeshGraph2D::GetVidFromElmt(), Nektar::SpatialDomains::MeshGraph2D::ReadElements(), Nektar::SpatialDomains::MeshGraph3D::ReadFaces(), Nektar::SpatialDomains::MeshGraph3D::ResolveGeomRef(), Nektar::SpatialDomains::MeshGraph2D::ResolveGeomRef(), SetExpansions(), and WriteGeometry().
|
protected |
Definition at line 410 of file MeshGraph.h.
Referenced by AddVertex(), GetAllPointGeoms(), GetNvertices(), GetVertex(), GetVertSet(), ReadGeometry(), Nektar::SpatialDomains::MeshGraph1D::ResolveGeomRef(), Nektar::SpatialDomains::MeshGraph3D::ResolveGeomRef(), Nektar::SpatialDomains::MeshGraph2D::ResolveGeomRef(), and WriteGeometry().