Nektar++
MeshGraph.h
Go to the documentation of this file.
1////////////////////////////////////////////////////////////////////////////////
2//
3// File: MeshGraph.h
4//
5// For more information, please see: http://www.nektar.info/
6//
7// The MIT License
8//
9// Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA),
10// Department of Aeronautics, Imperial College London (UK), and Scientific
11// Computing and Imaging Institute, University of Utah (USA).
12//
13// Permission is hereby granted, free of charge, to any person obtaining a
14// copy of this software and associated documentation files (the "Software"),
15// to deal in the Software without restriction, including without limitation
16// the rights to use, copy, modify, merge, publish, distribute, sublicense,
17// and/or sell copies of the Software, and to permit persons to whom the
18// Software is furnished to do so, subject to the following conditions:
19//
20// The above copyright notice and this permission notice shall be included
21// in all copies or substantial portions of the Software.
22//
23// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29// DEALINGS IN THE SOFTWARE.
30//
31// Description:
32//
33////////////////////////////////////////////////////////////////////////////////
34
35#ifndef NEKTAR_SPATIALDOMAINS_MESHGRAPH_H
36#define NEKTAR_SPATIALDOMAINS_MESHGRAPH_H
37
38#include <unordered_map>
39
43
52
55
56class TiXmlDocument;
57
58namespace Nektar
59{
60namespace SpatialDomains
61{
62typedef std::map<int, std::pair<LibUtilities::ShapeType, std::vector<int>>>
64
66{
86};
87
88// Keep this consistent with the enums in ExpansionType.
89// This is used in the BC file to specify the expansion type.
90const std::string kExpansionTypeStr[] = {"NOTYPE",
91 "MODIFIED",
92 "MODIFIEDQUADPLUS1",
93 "MODIFIEDQUADPLUS2",
94 "MODIFIEDGLLRADAU10",
95 "ORTHOGONAL",
96 "GLL_LAGRANGE",
97 "GLL_LAGRANGE_SEM",
98 "GAUSS_LAGRANGE",
99 "GAUSS_LAGRANGE_SEM",
100 "FOURIER",
101 "FOURIERSINGLEMODE",
102 "FOURIERHALFMODERE",
103 "FOURIERHALFMODEIM",
104 "CHEBYSHEV",
105 "FOURIER-CHEBYSHEV",
106 "CHEBYSHEV-FOURIER",
107 "FOURIER-MODIFIED"};
108
109typedef std::map<int, std::vector<unsigned int>> CompositeOrdering;
110typedef std::map<int, std::vector<unsigned int>> BndRegionOrdering;
111
112// set restriction on domain range for post-processing.
113// struct DomainRange
114// {
115// bool m_doXrange;
116// NekDouble m_xmin;
117// NekDouble m_xmax;
118// bool m_doYrange;
119// NekDouble m_ymin;
120// NekDouble m_ymax;
121// bool m_doZrange;
122// NekDouble m_zmin;
123// NekDouble m_zmax;
124
125// bool m_checkShape;
126// LibUtilities::ShapeType m_shapeType;
127// };
128
129// typedef std::shared_ptr<DomainRange> DomainRangeShPtr;
130// static DomainRangeShPtr NullDomainRangeShPtr;
131
133{
134 std::vector<std::shared_ptr<Geometry>> m_geomVec;
135};
136
137typedef std::shared_ptr<Composite> CompositeSharedPtr;
138typedef std::map<int, CompositeSharedPtr> CompositeMap;
139
140struct ExpansionInfo;
141
142typedef std::shared_ptr<ExpansionInfo> ExpansionInfoShPtr;
143typedef std::map<int, ExpansionInfoShPtr> ExpansionInfoMap;
144
145typedef std::shared_ptr<ExpansionInfoMap> ExpansionInfoMapShPtr;
146typedef std::map<std::string, ExpansionInfoMapShPtr> ExpansionInfoMapShPtrMap;
147
149{
151 const LibUtilities::BasisKeyVector basiskeyvec)
152 : m_geomShPtr(geomShPtr), m_basisKeyVector(basiskeyvec)
153 {
154 }
155
157 : m_geomShPtr(ExpInfo->m_geomShPtr),
159 {
160 }
161
164};
165
166typedef std::map<std::string, std::string> GeomInfoMap;
167typedef std::shared_ptr<std::vector<std::pair<GeometrySharedPtr, int>>>
169
170// Forward declaration
171class RefRegion;
172
173typedef std::map<std::string, std::string> MeshMetaDataMap;
174
175class MeshGraph;
176typedef std::shared_ptr<MeshGraph> MeshGraphSharedPtr;
177
178class Movement;
179typedef std::shared_ptr<Movement> MovementSharedPtr;
180
181/// Base class for a spectral/hp element mesh.
183{
184public:
187
191 bool fillGraph = true,
192 SpatialDomains::MeshGraphSharedPtr partitionedGraph = nullptr);
193
195 std::string &outfilename, bool defaultExp = false,
196 const LibUtilities::FieldMetaDataMap &metadata =
198
199 void Empty(int dim, int space)
200 {
201 m_meshDimension = dim;
202 m_spaceDimension = space;
203 }
204
205 /*transfers the minial data structure to full meshgraph*/
207
209
212
213 ////////////////////
215
216 /// Read refinement info.
218
219 /* ---- Helper functions ---- */
220 /// Dimension of the mesh (can be a 1D curve in 3D space).
222 {
223 return m_meshDimension;
224 }
225
226 /// Dimension of the space (can be a 1D curve in 3D space).
228 {
229 return m_spaceDimension;
230 }
231
232 /* Range definitions for postprorcessing */
234 NekDouble xmin, NekDouble xmax,
239
240 /// Check if goemetry is in range definition if activated
242
243 /// Check if goemetry is in range definition if activated
245
246 /* ---- Composites and Domain ---- */
248 {
249 ASSERTL0(m_meshComposites.find(whichComposite) !=
250 m_meshComposites.end(),
251 "Composite not found.");
252 return m_meshComposites.find(whichComposite)->second;
253 }
254
256 GetCompositeItem(int whichComposite, int whichItem);
257
259 const std::string &compositeStr, CompositeMap &compositeVector) const;
260
261 std::map<int, CompositeSharedPtr> &GetComposites()
262 {
263 return m_meshComposites;
264 }
265
266 std::map<int, std::string> &GetCompositesLabels()
267 {
268 return m_compositesLabels;
269 }
270
271 std::map<int, std::map<int, CompositeSharedPtr>> &GetDomain()
272 {
273 return m_domain;
274 }
275
276 std::map<int, CompositeSharedPtr> &GetDomain(int domain)
277 {
278 ASSERTL1(m_domain.count(domain),
279 "Request for domain which does not exist");
280 return m_domain[domain];
281 }
282
284 const std::string variable = "DefaultVar");
285
287 GeometrySharedPtr geom, const std::string variable = "DefaultVar");
288
289 /// Sets expansions given field definitions
291 std::vector<LibUtilities::FieldDefinitionsSharedPtr> &fielddef);
292
293 /// Sets expansions given field definition, quadrature points.
295 std::vector<LibUtilities::FieldDefinitionsSharedPtr> &fielddef,
296 std::vector<std::vector<LibUtilities::PointsType>> &pointstype);
297
298 /// Sets expansions to have equispaced points
300 int npoints = 0);
301
302 /// Reset expansion to have specified polynomial order \a nmodes
304
305 /// Reset expansion to have specified point order \a
306 /// npts
308 /// This function sets the expansion #exp in map with
309 /// entry #variable
310
311 /// Set refinement info.
313 ExpansionInfoMapShPtr &expansionMap);
314
315 /// Perform the p-refinement in the selected elements
317 ExpansionInfoMapShPtr &expansionMap, RefRegion *&region,
318 GeometrySharedPtr geomVecIter);
319
320 inline void SetExpansionInfo(const std::string variable,
322
324
325 /// Sets the basis key for all expansions of the given shape.
328 std::string var = "DefaultVar");
329
333
334 inline bool SameExpansionInfo(const std::string var1,
335 const std::string var2);
336
337 inline bool ExpansionInfoDefined(const std::string var);
338
339 inline bool CheckForGeomInfo(std::string parameter);
340
341 inline const std::string GetGeomInfo(std::string parameter);
342
345 const int order);
346
350 ExpansionType type_z, const int nummodes_x, const int nummodes_y,
351 const int nummodes_z);
352
353 /* ---- Manipulation of mesh ---- */
355 {
356 return m_vertSet.size();
357 }
358
360 {
361 return m_vertSet[id];
362 }
363
365 {
366 return m_segGeoms[id];
367 }
368
370 {
371 return m_curvedEdges;
372 }
374 {
375 return m_curvedFaces;
376 }
377
378 SPATIAL_DOMAINS_EXPORT std::map<int, PointGeomSharedPtr> &GetAllPointGeoms()
379 {
380 return m_vertSet;
381 }
382 SPATIAL_DOMAINS_EXPORT std::map<int, SegGeomSharedPtr> &GetAllSegGeoms()
383 {
384 return m_segGeoms;
385 }
387 {
388 return m_triGeoms;
389 }
391 {
392 return m_quadGeoms;
393 }
395 {
396 return m_tetGeoms;
397 }
399 {
400 return m_pyrGeoms;
401 }
403 {
404 return m_prismGeoms;
405 }
407 {
408 return m_hexGeoms;
409 }
410 SPATIAL_DOMAINS_EXPORT std::unordered_map<int, GeometryLinkSharedPtr>
412 {
413 return m_faceToElMap;
414 }
415
417
419 {
420 auto it1 = m_triGeoms.find(gID);
421 if (it1 != m_triGeoms.end())
422 return it1->second;
423
424 auto it2 = m_quadGeoms.find(gID);
425 if (it2 != m_quadGeoms.end())
426 return it2->second;
427
428 return Geometry2DSharedPtr();
429 };
430
433
436
438
440 {
441 return m_compOrder;
442 }
443
445 {
446 m_compOrder = p_compOrder;
447 }
448
450 {
451 return m_bndRegOrder;
452 }
453
455 {
456 m_bndRegOrder = p_bndRegOrder;
457 }
458
459 /*an inital read which loads a very light weight data structure*/
461 bool fillGraph);
464
465 SPATIAL_DOMAINS_EXPORT std::map<int, MeshEntity> CreateMeshEntities();
467
469 {
470 return m_movement;
471 }
472
473protected:
475 std::string &outfilename, bool defaultExp = false,
476 const LibUtilities::FieldMetaDataMap &metadata =
479 LibUtilities::DomainRangeShPtr rng, bool fillGraph) = 0;
482
483 void PopulateFaceToElMap(Geometry3DSharedPtr element, int kNfaces);
485 std::string GetCompositeString(CompositeSharedPtr comp);
486
489
492
494
501
505 bool m_meshPartitioned = false;
507
508 // Refinement attributes (class members)
509 /// Link the refinement id with the composites
510 std::map<int, CompositeMap> m_refComposite;
511 // std::map<int, LibUtilities::BasisKeyVector> m_refBasis;
512 /// Link the refinement id with the surface region data
513 std::map<int, RefRegion *> m_refRegion;
514 bool m_refFlag = false;
515
517 std::map<int, std::string> m_compositesLabels;
518 std::map<int, CompositeMap> m_domain;
520
522
523 std::unordered_map<int, GeometryLinkSharedPtr> m_faceToElMap;
524
525 TiXmlElement *m_xmlGeom;
526
529
530 struct GeomRTree;
531 std::unique_ptr<GeomRTree> m_boundingBoxTree;
533};
534typedef std::shared_ptr<MeshGraph> MeshGraphSharedPtr;
536
538
539/**
540 *
541 */
543 std::string &outfilename, bool defaultExp,
544 const LibUtilities::FieldMetaDataMap &metadata)
545{
546 v_WriteGeometry(outfilename, defaultExp, metadata);
547}
548
549/**
550 *
551 */
553 bool fillGraph)
554{
555 v_ReadGeometry(rng, fillGraph);
556}
557
558/**
559 *
560 */
563{
564 v_PartitionMesh(session);
565}
566
567/**
568 *
569 */
570void MeshGraph::SetExpansionInfo(const std::string variable,
572{
573 if (m_expansionMapShPtrMap.count(variable) != 0)
574 {
575 ASSERTL0(
576 false,
577 (std::string("ExpansionInfo field is already set for variable ") +
578 variable)
579 .c_str());
580 }
581 else
582 {
583 m_expansionMapShPtrMap[variable] = exp;
584 }
585}
586
587/**
588 *
589 */
590inline bool MeshGraph::SameExpansionInfo(const std::string var1,
591 const std::string var2)
592{
593 ExpansionInfoMapShPtr expVec1 = m_expansionMapShPtrMap.find(var1)->second;
594 ExpansionInfoMapShPtr expVec2 = m_expansionMapShPtrMap.find(var2)->second;
595
596 if (expVec1.get() == expVec2.get())
597 {
598 return true;
599 }
600
601 return false;
602}
603
604/**
605 *
606 */
607inline bool MeshGraph::ExpansionInfoDefined(const std::string var)
608{
609 return m_expansionMapShPtrMap.count(var);
610}
611
612} // namespace SpatialDomains
613} // namespace Nektar
614#endif
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:215
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
Definition: ErrorUtil.hpp:249
#define SPATIAL_DOMAINS_EXPORT
Provides a generic Factory class.
Definition: NekFactory.hpp:105
2D geometry information
Definition: Geometry2D.h:69
3D geometry information
Definition: Geometry3D.h:68
Base class for a spectral/hp element mesh.
Definition: MeshGraph.h:183
void SetDomainRange(NekDouble xmin, NekDouble xmax, NekDouble ymin=NekConstants::kNekUnsetDouble, NekDouble ymax=NekConstants::kNekUnsetDouble, NekDouble zmin=NekConstants::kNekUnsetDouble, NekDouble zmax=NekConstants::kNekUnsetDouble)
Definition: MeshGraph.cpp:4130
std::map< int, SegGeomSharedPtr > & GetAllSegGeoms()
Definition: MeshGraph.h:382
bool CheckRange(Geometry2D &geom)
Check if goemetry is in range definition if activated.
Definition: MeshGraph.cpp:354
std::map< int, RefRegion * > m_refRegion
Link the refinement id with the surface region data.
Definition: MeshGraph.h:513
void SetCompositeOrdering(CompositeOrdering p_compOrder)
Definition: MeshGraph.h:444
int GetMeshDimension()
Dimension of the mesh (can be a 1D curve in 3D space).
Definition: MeshGraph.h:221
const std::string GetGeomInfo(std::string parameter)
void ReadGeometry(LibUtilities::DomainRangeShPtr rng, bool fillGraph)
Definition: MeshGraph.h:552
void PopulateFaceToElMap(Geometry3DSharedPtr element, int kNfaces)
Given a 3D geometry object #element, populate the face to element map m_faceToElMap which maps faces ...
Definition: MeshGraph.cpp:3978
void SetRefinementInfo(ExpansionInfoMapShPtr &expansionMap)
This function sets the expansion #exp in map with entry #variable.
Definition: MeshGraph.cpp:2732
Geometry2DSharedPtr GetGeometry2D(int gID)
Definition: MeshGraph.h:418
std::map< int, std::map< int, CompositeSharedPtr > > & GetDomain()
Definition: MeshGraph.h:271
void SetExpansionInfoToEvenlySpacedPoints(int npoints=0)
Sets expansions to have equispaced points.
Definition: MeshGraph.cpp:1496
std::map< int, CompositeSharedPtr > & GetComposites()
Definition: MeshGraph.h:261
std::unordered_map< int, GeometryLinkSharedPtr > & GetAllFaceToElMap()
Definition: MeshGraph.h:411
LibUtilities::SessionReaderSharedPtr m_session
Definition: MeshGraph.h:487
std::map< int, CompositeMap > m_domain
Definition: MeshGraph.h:518
void SetPartition(SpatialDomains::MeshGraphSharedPtr graph)
Definition: MeshGraph.cpp:180
std::unique_ptr< GeomRTree > m_boundingBoxTree
Definition: MeshGraph.h:531
ExpansionInfoMapShPtr SetUpExpansionInfoMap()
Definition: MeshGraph.cpp:2582
std::map< int, CompositeSharedPtr > & GetDomain(int domain)
Definition: MeshGraph.h:276
void SetExpansionInfoToPointOrder(int npts)
Reset expansion to have specified point order npts.
Definition: MeshGraph.cpp:1571
bool SameExpansionInfo(const std::string var1, const std::string var2)
Definition: MeshGraph.h:590
CompositeOrdering m_compOrder
Definition: MeshGraph.h:527
std::map< int, CompositeMap > m_refComposite
Link the refinement id with the composites.
Definition: MeshGraph.h:510
virtual void v_WriteGeometry(std::string &outfilename, bool defaultExp=false, const LibUtilities::FieldMetaDataMap &metadata=LibUtilities::NullFieldMetaDataMap)=0
bool ExpansionInfoDefined(const std::string var)
Definition: MeshGraph.h:607
void GetCompositeList(const std::string &compositeStr, CompositeMap &compositeVector) const
Definition: MeshGraph.cpp:601
virtual void v_PartitionMesh(LibUtilities::SessionReaderSharedPtr session)=0
void Empty(int dim, int space)
Definition: MeshGraph.h:199
const ExpansionInfoMap & GetExpansionInfo(const std::string variable="DefaultVar")
Definition: MeshGraph.cpp:654
void WriteGeometry(std::string &outfilename, bool defaultExp=false, const LibUtilities::FieldMetaDataMap &metadata=LibUtilities::NullFieldMetaDataMap)
Definition: MeshGraph.h:542
GeometryLinkSharedPtr GetElementsFromEdge(Geometry1DSharedPtr edge)
Definition: MeshGraph.cpp:3905
GeometrySharedPtr GetCompositeItem(int whichComposite, int whichItem)
Definition: MeshGraph.cpp:562
ExpansionInfoMapShPtrMap m_expansionMapShPtrMap
Definition: MeshGraph.h:521
void PRefinementElmts(ExpansionInfoMapShPtr &expansionMap, RefRegion *&region, GeometrySharedPtr geomVecIter)
Perform the p-refinement in the selected elements.
Definition: MeshGraph.cpp:2671
int GetSpaceDimension()
Dimension of the space (can be a 1D curve in 3D space).
Definition: MeshGraph.h:227
MovementSharedPtr m_movement
Definition: MeshGraph.h:532
BndRegionOrdering & GetBndRegionOrdering()
Definition: MeshGraph.h:449
std::string GetCompositeString(CompositeSharedPtr comp)
Returns a string representation of a composite.
Definition: MeshGraph.cpp:2626
void ResetExpansionInfoToBasisKey(ExpansionInfoMapShPtr &expansionMap, LibUtilities::ShapeType shape, LibUtilities::BasisKeyVector &keys)
Definition: MeshGraph.cpp:1616
void SetExpansionInfoToNumModes(int nmodes)
Reset expansion to have specified polynomial order nmodes.
Definition: MeshGraph.cpp:1538
std::unordered_map< int, GeometryLinkSharedPtr > m_faceToElMap
Definition: MeshGraph.h:523
MovementSharedPtr & GetMovement()
Definition: MeshGraph.h:468
CompositeSharedPtr GetComposite(int whichComposite)
Definition: MeshGraph.h:247
virtual void v_ReadGeometry(LibUtilities::DomainRangeShPtr rng, bool fillGraph)=0
void SetExpansionInfo(std::vector< LibUtilities::FieldDefinitionsSharedPtr > &fielddef)
Sets expansions given field definitions.
Definition: MeshGraph.cpp:707
void SetBndRegionOrdering(BndRegionOrdering p_bndRegOrder)
Definition: MeshGraph.h:454
CompositeOrdering & GetCompositeOrdering()
Definition: MeshGraph.h:439
std::map< int, MeshEntity > CreateMeshEntities()
Create mesh entities for this graph.
Definition: MeshGraph.cpp:4009
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)
Definition: MeshGraph.cpp:2348
std::map< int, PointGeomSharedPtr > & GetAllPointGeoms()
Definition: MeshGraph.h:378
bool CheckForGeomInfo(std::string parameter)
SegGeomSharedPtr GetSegGeom(int id)
Definition: MeshGraph.h:364
CompositeDescriptor CreateCompositeDescriptor()
Definition: MeshGraph.cpp:4109
GeometryLinkSharedPtr GetElementsFromFace(Geometry2DSharedPtr face)
Definition: MeshGraph.cpp:3960
void ReadRefinementInfo()
Read refinement info.
Definition: MeshGraph.cpp:2775
void SetBasisKey(LibUtilities::ShapeType shape, LibUtilities::BasisKeyVector &keys, std::string var="DefaultVar")
Sets the basis key for all expansions of the given shape.
Definition: MeshGraph.cpp:1608
std::map< int, std::string > m_compositesLabels
Definition: MeshGraph.h:517
std::vector< int > GetElementsContainingPoint(PointGeomSharedPtr p)
Definition: MeshGraph.cpp:300
PointGeomSharedPtr GetVertex(int id)
Definition: MeshGraph.h:359
PrismGeomMap & GetAllPrismGeoms()
Definition: MeshGraph.h:402
std::map< int, std::string > & GetCompositesLabels()
Definition: MeshGraph.h:266
void PartitionMesh(LibUtilities::SessionReaderSharedPtr session)
Definition: MeshGraph.h:561
static LibUtilities::BasisKeyVector DefineBasisKeyFromExpansionType(GeometrySharedPtr in, ExpansionType type, const int order)
Definition: MeshGraph.cpp:1633
void SetSession(LibUtilities::SessionReaderSharedPtr pSession)
static MeshGraphSharedPtr Read(const LibUtilities::SessionReaderSharedPtr pSession, LibUtilities::DomainRangeShPtr rng=LibUtilities::NullDomainRangeShPtr, bool fillGraph=true, SpatialDomains::MeshGraphSharedPtr partitionedGraph=nullptr)
Definition: MeshGraph.cpp:116
LibUtilities::DomainRangeShPtr m_domainRange
Definition: MeshGraph.h:519
BndRegionOrdering m_bndRegOrder
Definition: MeshGraph.h:528
Abstract base class for the refinement surface region.
Definition: RefRegion.h:53
std::vector< BasisKey > BasisKeyVector
Name for a vector of BasisKeys.
std::map< std::string, std::string > FieldMetaDataMap
Definition: FieldIO.h:52
std::shared_ptr< SessionReader > SessionReaderSharedPtr
static FieldMetaDataMap NullFieldMetaDataMap
Definition: FieldIO.h:53
std::shared_ptr< DomainRange > DomainRangeShPtr
Definition: DomainRange.h:66
static DomainRangeShPtr NullDomainRangeShPtr
Definition: DomainRange.h:67
static const NekDouble kNekUnsetDouble
std::map< int, TriGeomSharedPtr > TriGeomMap
Definition: TriGeom.h:59
std::map< std::string, std::string > GeomInfoMap
Definition: MeshGraph.h:166
std::map< int, std::vector< unsigned int > > CompositeOrdering
Definition: MeshGraph.h:109
std::map< int, PyrGeomSharedPtr > PyrGeomMap
Definition: PyrGeom.h:78
std::map< int, QuadGeomSharedPtr > QuadGeomMap
Definition: QuadGeom.h:54
std::map< int, std::pair< LibUtilities::ShapeType, std::vector< int > > > CompositeDescriptor
Definition: MeshGraph.h:63
std::shared_ptr< std::vector< std::pair< GeometrySharedPtr, int > > > GeometryLinkSharedPtr
Definition: MeshGraph.h:168
std::map< int, std::vector< unsigned int > > BndRegionOrdering
Definition: MeshGraph.h:110
std::shared_ptr< Composite > CompositeSharedPtr
Definition: MeshGraph.h:137
std::shared_ptr< ExpansionInfoMap > ExpansionInfoMapShPtr
Definition: MeshGraph.h:145
std::map< int, SegGeomSharedPtr > SegGeomMap
Definition: SegGeom.h:52
std::shared_ptr< Movement > MovementSharedPtr
Definition: MeshGraph.h:179
std::unordered_map< int, CurveSharedPtr > CurveMap
Definition: Curve.hpp:61
LibUtilities::NekFactory< std::string, MeshGraph > MeshGraphFactory
Definition: MeshGraph.h:535
std::shared_ptr< SegGeom > SegGeomSharedPtr
Definition: Geometry2D.h:62
std::map< int, TetGeomSharedPtr > TetGeomMap
Definition: TetGeom.h:87
std::shared_ptr< ExpansionInfo > ExpansionInfoShPtr
Definition: MeshGraph.h:142
const std::string kExpansionTypeStr[]
Definition: MeshGraph.h:90
std::shared_ptr< MeshGraph > MeshGraphSharedPtr
Definition: MeshGraph.h:176
std::map< std::string, std::string > MeshMetaDataMap
Definition: MeshGraph.h:173
std::map< int, PrismGeomSharedPtr > PrismGeomMap
Definition: PrismGeom.h:86
std::shared_ptr< PointGeom > PointGeomSharedPtr
Definition: Geometry.h:60
std::shared_ptr< Geometry2D > Geometry2DSharedPtr
Definition: Geometry.h:65
std::shared_ptr< Geometry > GeometrySharedPtr
Definition: Geometry.h:54
MeshGraphFactory & GetMeshGraphFactory()
Definition: MeshGraph.cpp:79
std::shared_ptr< Geometry1D > Geometry1DSharedPtr
Definition: Geometry.h:64
std::map< std::string, ExpansionInfoMapShPtr > ExpansionInfoMapShPtrMap
Definition: MeshGraph.h:146
std::map< int, HexGeomSharedPtr > HexGeomMap
Definition: HexGeom.h:88
std::map< int, PointGeomSharedPtr > PointGeomMap
Definition: PointGeom.h:54
std::map< int, ExpansionInfoShPtr > ExpansionInfoMap
Definition: MeshGraph.h:143
std::shared_ptr< Geometry3D > Geometry3DSharedPtr
Definition: Geometry3D.h:53
std::map< int, CompositeSharedPtr > CompositeMap
Definition: MeshGraph.h:138
The above copyright notice and this permission notice shall be included.
Definition: CoupledSolver.h:2
double NekDouble
std::vector< std::shared_ptr< Geometry > > m_geomVec
Definition: MeshGraph.h:134
ExpansionInfo(GeometrySharedPtr geomShPtr, const LibUtilities::BasisKeyVector basiskeyvec)
Definition: MeshGraph.h:150
LibUtilities::BasisKeyVector m_basisKeyVector
Definition: MeshGraph.h:163
ExpansionInfo(ExpansionInfoShPtr ExpInfo)
Definition: MeshGraph.h:156