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. | |
virtual void | ReadGeometry (TiXmlDocument &doc) |
Read will read the meshgraph vertices given a TiXmlDocument. | |
void | ReadGeometryInfo (const std::string &infilename) |
Read geometric information from a file. | |
void | ReadGeometryInfo (TiXmlDocument &doc) |
Read geometric information from an XML document. | |
void | ReadExpansions (const std::string &infilename) |
Read the expansions given the XML file path. | |
void | ReadExpansions (TiXmlDocument &doc) |
Read the expansions given the XML document reference. | |
void | ReadDomain (TiXmlDocument &doc) |
void | ReadCurves (TiXmlDocument &doc) |
void | ReadCurves (std::string &infilename) |
int | GetMeshDimension () const |
Dimension of the mesh (can be a 1D curve in 3D space). | |
int | GetSpaceDimension () const |
Dimension of the space (can be a 1D curve in 3D space). | |
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. | |
bool | CheckRange (Geometry3D &geom) |
Check if goemetry is in range definition if activated. | |
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::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. | |
void | SetExpansions (std::vector< LibUtilities::FieldDefinitionsSharedPtr > &fielddef, std::vector< std::vector< LibUtilities::PointsType > > &pointstype) |
Sets expansions given field definition, quadrature points. | |
void | SetExpansionsToEvenlySpacedPoints (int npoints=0) |
Sets expansions to have equispaced points. | |
void | SetExpansions (const std::string variable, ExpansionMapShPtr &exp) |
This function sets the expansion #exp in map with entry #variable. | |
void | SetBasisKey (LibUtilities::ShapeType shape, LibUtilities::BasisKeyVector &keys, std::string var="DefaultVar") |
Sets the basis key for all expansions of the given shape. | |
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. | |
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. | |
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 CurveVector & | GetCurvedEdges () const |
const CurveVector & | GetCurvedFaces () 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. |
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 180 of file MeshGraph.h.
Nektar::SpatialDomains::MeshGraph::MeshGraph | ( | ) |
Definition at line 73 of file MeshGraph.cpp.
Nektar::SpatialDomains::MeshGraph::MeshGraph | ( | unsigned int | meshDimension, |
unsigned int | spaceDimension | ||
) |
Definition at line 84 of file MeshGraph.cpp.
Nektar::SpatialDomains::MeshGraph::MeshGraph | ( | const LibUtilities::SessionReaderSharedPtr & | pSession, |
const DomainRangeShPtr & | rng = NullDomainRangeShPtr |
||
) |
Definition at line 97 of file MeshGraph.cpp.
|
virtual |
Definition at line 110 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 3386 of file MeshGraph.cpp.
References m_segGeoms, and m_spaceDimension.
HexGeomSharedPtr Nektar::SpatialDomains::MeshGraph::AddHexahedron | ( | QuadGeomSharedPtr | qfaces[HexGeom::kNqfaces] | ) |
Definition at line 3486 of file MeshGraph.cpp.
References m_hexGeoms.
PrismGeomSharedPtr Nektar::SpatialDomains::MeshGraph::AddPrism | ( | TriGeomSharedPtr | tfaces[PrismGeom::kNtfaces], |
QuadGeomSharedPtr | qfaces[PrismGeom::kNqfaces] | ||
) |
Definition at line 3438 of file MeshGraph.cpp.
References m_prismGeoms.
PyrGeomSharedPtr Nektar::SpatialDomains::MeshGraph::AddPyramid | ( | TriGeomSharedPtr | tfaces[PyrGeom::kNtfaces], |
QuadGeomSharedPtr | qfaces[PyrGeom::kNqfaces] | ||
) |
Definition at line 3469 of file MeshGraph.cpp.
References m_pyrGeoms.
QuadGeomSharedPtr Nektar::SpatialDomains::MeshGraph::AddQuadrilateral | ( | SegGeomSharedPtr | edges[], |
StdRegions::Orientation | orient[] | ||
) |
Definition at line 3424 of file MeshGraph.cpp.
References m_quadGeoms.
TetGeomSharedPtr Nektar::SpatialDomains::MeshGraph::AddTetrahedron | ( | TriGeomSharedPtr | tfaces[TetGeom::kNtfaces] | ) |
Definition at line 3455 of file MeshGraph.cpp.
References m_tetGeoms.
TriGeomSharedPtr Nektar::SpatialDomains::MeshGraph::AddTriangle | ( | SegGeomSharedPtr | edges[], |
StdRegions::Orientation | orient[] | ||
) |
Definition at line 3409 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 3374 of file MeshGraph.cpp.
References m_spaceDimension, and m_vertSet.
|
inline |
Definition at line 523 of file MeshGraph.h.
References m_geomInfo.
bool Nektar::SpatialDomains::MeshGraph::CheckRange | ( | Geometry2D & | geom | ) |
Check if goemetry is in range definition if activated.
Definition at line 1415 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 1518 of file MeshGraph.cpp.
References Nektar::SpatialDomains::Geometry::GetNumVerts(), Nektar::SpatialDomains::Geometry::GetVertex(), m_domainRange, and Nektar::SpatialDomains::NullDomainRangeShPtr.
|
static |
Definition at line 2586 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::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 3167 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().
|
inline |
Convenience method for ElVis.
Definition at line 567 of file MeshGraph.h.
References GetAllHexGeoms().
|
inline |
Definition at line 378 of file MeshGraph.h.
References m_hexGeoms.
Referenced by GetAllElementsOfType().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 441 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 1616 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 1654 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 453 of file MeshGraph.h.
References m_meshComposites.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
ExpansionShPtr Nektar::SpatialDomains::MeshGraph::GetExpansion | ( | GeometrySharedPtr | geom, |
const std::string | variable = "DefaultVar" |
||
) |
Definition at line 1729 of file MeshGraph.cpp.
References m_expansionMapShPtrMap.
Referenced by Nektar::SpatialDomains::MeshGraph2D::GetEdgeBasisKey(), and Nektar::SpatialDomains::MeshGraph3D::GetFaceBasisKey().
|
inline |
Definition at line 480 of file MeshGraph.h.
const ExpansionMap & Nektar::SpatialDomains::MeshGraph::GetExpansions | ( | const std::string | variable | ) |
Definition at line 1702 of file MeshGraph.cpp.
References ErrorUtil::efatal, ErrorUtil::ewarning, m_expansionMapShPtrMap, and NEKERROR.
|
inline |
Definition at line 532 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 423 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 432 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 552 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().
|
static |
Definition at line 118 of file MeshGraph.cpp.
References ASSERTL1, ErrorUtil::efatal, and NEKERROR.
Referenced by Diffusion::Diffusion(), Nektar::VortexWaveInteraction::FileRelaxation(), main(), Nektar::Utilities::InputNekpp::Process(), Nektar::Utilities::InputXml::Process(), Nektar::Utilities::ProcessInterpPoints::Process(), Nektar::Utilities::ProcessInterpField::Process(), Nektar::SolverUtils::EquationSystem::v_InitObject(), and Nektar::SolverUtils::FilterModalEnergy::v_Update().
|
static |
Definition at line 179 of file MeshGraph.cpp.
References 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 1102 of file MeshGraph.cpp.
References ASSERTL0, Nektar::LibUtilities::AnalyticExpressionEvaluator::DefineFunction(), ErrorUtil::efatal, Nektar::LibUtilities::AnalyticExpressionEvaluator::Evaluate(), Nektar::StdRegions::find(), Nektar::LibUtilities::kPointsTypeStr, m_curvedEdges, m_curvedFaces, m_meshDimension, NEKERROR, and Nektar::LibUtilities::SIZE_PointsType.
Referenced by ReadCurves(), Nektar::SpatialDomains::MeshGraph3D::ReadGeometry(), and Nektar::SpatialDomains::MeshGraph2D::ReadGeometry().
void Nektar::SpatialDomains::MeshGraph::ReadCurves | ( | std::string & | infilename | ) |
Definition at line 1366 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 1008 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 524 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 542 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 229 of file MeshGraph.cpp.
References ASSERTL0.
Referenced by Read().
|
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 247 of file MeshGraph.cpp.
References ASSERTL0, ASSERTL1, Nektar::LibUtilities::AnalyticExpressionEvaluator::DefineFunction(), Nektar::LibUtilities::AnalyticExpressionEvaluator::Evaluate(), m_meshDimension, m_meshPartitioned, m_partition, m_spaceDimension, and m_vertSet.
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 469 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 490 of file MeshGraph.cpp.
References ASSERTL0, Nektar::iterator, and m_geomInfo.
|
inline |
Definition at line 506 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 2565 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 1380 of file MeshGraph.cpp.
References 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 1751 of file MeshGraph.cpp.
References ASSERTL0, Nektar::LibUtilities::BasisTypeMap, 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_domain, 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 2286 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, and m_triGeoms.
|
inline |
This function sets the expansion #exp in map with entry #variable.
Definition at line 490 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 arguemtn of npoints which redefines how many points are to be used.
Definition at line 2513 of file MeshGraph.cpp.
References Nektar::LibUtilities::ePolyEvenlySpaced, Nektar::LibUtilities::BasisKey::GetBasisType(), Nektar::LibUtilities::BasisKey::GetNumModes(), 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 3503 of file MeshGraph.cpp.
References m_domain.
Referenced by ReadExpansions().
|
protected |
Definition at line 389 of file MeshGraph.h.
Referenced by GetCurvedEdges(), ReadCurves(), Nektar::SpatialDomains::MeshGraph3D::ReadEdges(), and Nektar::SpatialDomains::MeshGraph2D::ReadEdges().
|
protected |
Definition at line 390 of file MeshGraph.h.
Referenced by GetCurvedFaces(), ReadCurves(), Nektar::SpatialDomains::MeshGraph2D::ReadElements(), and Nektar::SpatialDomains::MeshGraph3D::ReadFaces().
|
protected |
Definition at line 407 of file MeshGraph.h.
Referenced by GetDomain(), Nektar::SpatialDomains::MeshGraph2D::GetElementsFromEdge(), ReadDomain(), SetExpansions(), and SetUpExpansionMap().
|
protected |
Definition at line 408 of file MeshGraph.h.
Referenced by CheckRange(), and SetDomainRange().
|
protected |
Definition at line 410 of file MeshGraph.h.
Referenced by GetExpansion(), GetExpansions(), ReadExpansions(), SameExpansions(), SetBasisKey(), SetExpansions(), and SetExpansionsToEvenlySpacedPoints().
|
protected |
Definition at line 412 of file MeshGraph.h.
Referenced by CheckForGeomInfo(), GetGeomInfo(), and ReadGeometryInfo().
|
protected |
Definition at line 399 of file MeshGraph.h.
Referenced by AddHexahedron(), GetAllHexGeoms(), Nektar::SpatialDomains::MeshGraph3D::ReadElements(), Nektar::SpatialDomains::MeshGraph3D::ResolveGeomRef(), and SetExpansions().
|
protected |
Definition at line 387 of file MeshGraph.h.
|
protected |
Definition at line 406 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(), and Nektar::SpatialDomains::MeshGraph2D::ReadComposites().
|
protected |
Definition at line 401 of file MeshGraph.h.
Referenced by GetMeshDimension(), ReadCurves(), and ReadGeometry().
|
protected |
Definition at line 404 of file MeshGraph.h.
Referenced by GetCompositeList(), and ReadGeometry().
|
protected |
Definition at line 403 of file MeshGraph.h.
Referenced by ReadGeometry().
|
protected |
Definition at line 398 of file MeshGraph.h.
Referenced by AddPrism(), GetAllPrismGeoms(), Nektar::SpatialDomains::MeshGraph3D::ReadElements(), Nektar::SpatialDomains::MeshGraph3D::ResolveGeomRef(), and SetExpansions().
|
protected |
Definition at line 397 of file MeshGraph.h.
Referenced by AddPyramid(), GetAllPyrGeoms(), Nektar::SpatialDomains::MeshGraph3D::ReadElements(), Nektar::SpatialDomains::MeshGraph3D::ResolveGeomRef(), and SetExpansions().
|
protected |
Definition at line 395 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(), and SetExpansions().
|
protected |
Definition at line 392 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(), and SetExpansions().
|
protected |
Definition at line 385 of file MeshGraph.h.
Referenced by ReadExpansions().
|
protected |
Definition at line 402 of file MeshGraph.h.
Referenced by AddEdge(), AddVertex(), GetSpaceDimension(), Nektar::SpatialDomains::MeshGraph3D::ReadEdges(), Nektar::SpatialDomains::MeshGraph2D::ReadEdges(), and ReadGeometry().
|
protected |
Definition at line 396 of file MeshGraph.h.
Referenced by AddTetrahedron(), GetAllTetGeoms(), Nektar::SpatialDomains::MeshGraph3D::ReadElements(), Nektar::SpatialDomains::MeshGraph3D::ResolveGeomRef(), and SetExpansions().
|
protected |
Definition at line 394 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(), and SetExpansions().
|
protected |
Definition at line 386 of file MeshGraph.h.
Referenced by AddVertex(), GetNvertices(), GetVertex(), ReadGeometry(), Nektar::SpatialDomains::MeshGraph1D::ResolveGeomRef(), Nektar::SpatialDomains::MeshGraph3D::ResolveGeomRef(), and Nektar::SpatialDomains::MeshGraph2D::ResolveGeomRef().