WARPXM v1.10.0
Loading...
Searching...
No Matches
wmudggeometry.h
Go to the documentation of this file.
1#ifndef WMUDGGEOMETRY_H
2#define WMUDGGEOMETRY_H
3
4// Wm includes
8
9// STL includes
10#include <memory>
11
12class face_t
13{
14 friend class WmUDGGeometry;
15
16public:
18 {
20 }
22 {
24 }
26 {
27 return _insideFaceIndex;
28 }
30 {
31 return _outsideFaceIndex;
32 }
34 {
36 }
38 {
40 }
41 const real* get_norm() const
42 {
43 return _norm;
44 }
45 int get_global_id() const
46 {
47 return _globalIndex;
48 }
50 {
52 }
54 {
56 }
58 {
60 }
62 {
64 }
65 bool is_boundary_face() const
66 {
67 return _isBoundaryFace;
68 }
70 {
72 }
73
74 void print(std::stringstream& ss) const;
75
76protected:
77 face_t(const int insideElementIndex,
78 const int outsideElementIndex,
79 const int insideFaceIndex,
80 const int outsideFaceIndex,
82 const WmBasisArraySet& dgBasisSet);
83
84 void setup(const WmBasisArraySet& dgBasisSet);
85
92 const real* _norm;
94
99
102
103private:
104 std::vector<int> _nodeIndexAllocation;
105};
106
108{
109public:
110 typedef std::map<std::string, std::vector<int>> boundaryFacesMap_t;
111 typedef std::map<std::string, std::vector<std::unique_ptr<face_t>>> bcFaceMap_t;
112
114 const std::vector<std::string>& boundaryNames,
115 const WmBasisArraySet& dgBasisSet,
116 const bool useLimiter = false);
117
119
121 {
123 }
124
125 int getNumFaces() const
126 {
127 return _numFaces;
128 }
130 {
131 return _numInteriorFaces;
132 }
134 {
135 return _numBoundaryFaces;
136 }
138 {
139 return _numSharedFaces;
140 }
141
142 int getNumElements() const
143 {
144 return _numElements_PEG;
145 }
147 {
149 }
150
152 {
153 return _numElements_PIPEG; // right now only giving up to 1 layer?
154 }
155
157 {
158 return &(_faceGeometry[0]);
159 }
160
183 {
184 return &(_elementGeometry[0]);
185 }
187 {
188 return &(_jacobianGeometry[0]);
189 }
191 {
192 return &(_limiterGeometry[0]);
193 }
194
196 {
198 }
199
206 {
208 }
209
211 {
213 }
214
216 {
218 }
219
221 {
223 }
224
226 {
228 }
229
231 {
233 }
234
236 {
238 }
239
241 {
243 }
244
246 {
247 return &(_reconstruction_w[0]);
248 }
249
251 {
252 return &(_reconstruction_lInverse[0]);
253 }
254
256 {
257 return &(_reconstruction_b[0]);
258 }
259
261 {
263 }
264
266 {
268 }
269
271 {
273 }
274
276 {
278 }
279
281 {
282 return _reconstruction_stencilIndexes.size();
283 }
284
286 {
287 return _reconstruction_w.size();
288 }
289
291 {
292 return _reconstruction_lInverse.size();
293 }
294
296 {
297 return _reconstruction_b.size();
298 }
299
301 {
303 }
304
305 // returns interconnected elements by face (inside,outside)
307 {
309 }
310
311 // returns interconnected elements by face (inside,outside)
312 // but outside cannot be -1 -> instead increases numbering after _numElements_PIPEG
314 {
316 }
317
318 // this yields local node numbers for global faces
320 {
321 return &(_compositeFaceNodeIndexes[0]);
322 }
323
324 // this yields global node numbers for global faces
326 {
328 }
329
339 {
341 }
342
344 {
346 }
348 {
350 }
351
353 {
355 }
356
358 {
360 }
361
363 {
365 }
366
367 // Some Indexing functions
368 int getElementIndexes_NumInLayers(int lowerLayer, int upperLayer) const;
369 int getFaceIndexes_NumInLayers(int lowerLayer, int upperLayer) const;
370
373
374 bool hasBoundary(const std::string& boundary) const;
375
376 // iman addition
377 int isBoundaryFace(int faceIndex) const
378 {
379 return _isBoundaryFaceArray[faceIndex];
380 }
381
382 // iman addition
383 int isPatchBoundaryFace(int faceIndex) const
384 {
385 return _isPatchBoundaryFaceArray[faceIndex];
386 }
387 // iman addition
388 const real* getCommonNormal(int faceIndex) const
389 {
390 return &_commonNormals[faceIndex * 3];
391 }
392
394 {
395 return _patch;
396 }
397
399 {
400 return _uG;
401 }
402
403 const face_t& get_face(const int global_face_index) const
404 {
405 return *_all_faces[global_face_index];
406 }
407
408 int get_global_face_from_element_local_face(int global_element_index,
409 int local_face_index) const
410 {
411 return _globalFaceNumbersOfGlobalElementNumbers[global_element_index *
413 local_face_index];
414 }
415
416 // print the face data block for a given global face index
417 // // globalFaceGeometry[effectiveDx, (nx,ny,nz), ((p0x, p0y, p0z), (p1x, p1y,
418 // p1z), ...)] - per face
419 void printFaceInformation(int global_face_index) const
420 {
421 std::stringstream ss;
422 const int numDims = _basisSet.getNumDims();
423 const int numFaceNodes = _basisSet.getNumFaceNodes();
424 const real* fGeoArray =
425 &(_faceGeometry.at(global_face_index * _faceGeometryBlockSize));
426
427 ss << "global_face_index = " << global_face_index << " on patch "
428 << getPatch().getPatchIndex() << std::endl;
429 ss << "effective_dx = " << fGeoArray[0] << std::endl;
430 ss << "normal = (";
431 for (int i = 0; i < numDims; i++)
432 {
433 ss << fGeoArray[1 + i] << ", ";
434 }
435 ss << ")" << std::endl;
436
437 ss << "nodes = (";
438 for (int i = 0; i < numFaceNodes; i++)
439 {
440 ss << "(";
441 for (int j = 0; j < numDims; j++)
442 {
443 ss << fGeoArray[1 + numDims + i * numDims + j] << ", ";
444 }
445 ss << "), ";
446 }
447 ss << ")" << std::endl;
448
449 std::cout << ss.str();
450 }
451
452 // print the Element data block for a given global element index
453 // globalElementGeometry[(dx,dy,dz), ((p0x, p0y, p0z), (p1x, p1y, p1z),
454 // ...)] - per element (inclusive)
455
456 void printElementInformation(int global_element_index)
457 {
458 std::stringstream ss;
459
460 const int numDims = _basisSet.getNumDims();
461 const int numElementNodes = _basisSet.getNumTotalNodes();
462 const real* eGeomArray =
463 &(_elementGeometry[0]) + global_element_index * _elementGeometryBlockSize;
464
465 ss << "global_element_index = " << global_element_index << " on patch "
466 << getPatch().getPatchIndex() << std::endl;
467 ss << "(dx,dy,dv) = (";
468 for (int i = 0; i < numDims; i++)
469 {
470 ss << eGeomArray[i] << ", ";
471 }
472 ss << ")" << std::endl;
473
474 ss << "nodes = (";
475 for (int i = 0; i < numElementNodes; i++)
476 {
477 ss << "(";
478 for (int j = 0; j < numDims; j++)
479 {
480 ss << eGeomArray[numDims + i * numDims + j] << ", ";
481 }
482 ss << "), ";
483 }
484 ss << ")" << std::endl;
485
486 std::cout << ss.str();
487 }
488
495 {
496 return _l1_elements.size();
497 }
498
499 // The following 2 functions go hand in hand to find the global node index of some
500 // position within an element
501
509 void getElementGlobalNodePositionsAndIndexes(const int element_index,
510 int* global_node_indexes,
511 real* global_node_positions) const;
512
521 int getGlobalNodeIndexAtPosition(const real* global_node_positions,
522 const int* global_node_indexes,
523 const real position[3]) const;
524
530 void printDGNeighborhood(std::stringstream& ss) const;
531
537 void printElementwiseFaceInsideOutsideNodes(std::stringstream& ss) const;
538
543 const int* getDGNeighborhood() const
544 {
545 return _dg_neighborhood.data();
546 }
547
553 const int* getLocalDGNeighborhood(const int element_index) const
554 {
555 return _dg_neighborhood.data() + element_index * _uG->getNumFacesPerElement();
556 }
557
566 int getNeighborLocalFaceIndex(const int element_index,
567 const int local_face_index) const
568 {
569 return _dg_neighbor_local_face[element_index * _uG->getNumFacesPerElement() +
570 local_face_index];
571 }
572
581 int getFaceOrientation(const int element_index, const int local_face_index) const
582 {
583 return _dg_orientations[element_index * _uG->getNumFacesPerElement() +
584 local_face_index];
585 }
586
599 const int* getFaceNodeGlobalInsideOutsideIndexes(const int element_index,
600 const int local_face_index,
601 const int local_node_index) const
602 {
603 const int numFacesPerElement = _uG->getNumFacesPerElement();
604 const int numFaceNodes = _basisSet.getNumFaceNodes();
606 element_index * numFacesPerElement * numFaceNodes * 2 +
607 local_face_index * numFaceNodes * 2 + local_node_index * 2;
608 }
609
610 void printCompositeFaceNodeIndexesArray(std::stringstream& ss) const;
611
615 std::shared_ptr<WxRange> ownElementRange() const;
616
625 template<typename Func> void forEachNode(Func f)
626 {
627 WxRange scope = *ownElementRange();
628 int N_p = _basisSet.getNumTotalNodes();
629 int ndims = _basisSet.getNumDims();
630
631 std::vector<real> x(ndims);
632
633 const real* globalElementGeometryData = getGeometryArray_Element();
634 const int element_geometry_block_size = getGeometryArray_Element_BlockSize();
635
636 for (int elementIndex = scope.lower(0); elementIndex <= scope.upper(0);
637 elementIndex++)
638 {
639 for (int localNodeIndex = 0; localNodeIndex < N_p; localNodeIndex++)
640 {
641 const int globalNodeIndex = elementIndex * N_p + localNodeIndex;
642
643 x[0] =
644 globalElementGeometryData[element_geometry_block_size * elementIndex +
645 ndims * (localNodeIndex + 1) + 0];
646 if (ndims > 1)
647 {
648 x[1] = globalElementGeometryData[element_geometry_block_size *
649 elementIndex +
650 ndims * (localNodeIndex + 1) + 1];
651 }
652 if (ndims > 2)
653 {
654 x[2] = globalElementGeometryData[element_geometry_block_size *
655 elementIndex +
656 ndims * (localNodeIndex + 1) + 2];
657 }
658
659 f(globalNodeIndex, x);
660 }
661 }
662 }
663
664protected:
668
669 std::vector<std::string> _boundaryNames;
671
672 // vectors and maps of face objects for the various types
673 std::vector<std::shared_ptr<face_t>> _interior_faces;
674 std::vector<std::shared_ptr<face_t>> _all_faces;
677
682
683 // Number of elements in patch
685
686 // Number of elements in patch, interpatch elements group
688
689 // Number of elements in patch, interpatch, boundary condition elements
690 // group
692
697
698 std::vector<real> _faceGeometry;
699 // std::vector<std::unique_ptr<face_t>> _face_t_array;
700 std::vector<real> _elementGeometry;
701 std::vector<real> _jacobianGeometry;
702 std::vector<real> _limiterGeometry;
703
708
710 std::vector<real> _reconstruction_w;
711 std::vector<real> _reconstruction_lInverse;
712 std::vector<real> _reconstruction_b;
713
717
718 std::vector<int> _numFacesPerLayer;
719
721 std::vector<int>
722 _interconnectedFaceElementIndexes; // indexes of element numbers associated with
723 // face, first is inside face, second is
724 // outside face
725
726 // this is same as _interconnectedFaceElementIndexes except outside boundary elements
727 // are not -1 but have numbers added to end of the ther elements in the patch
729
730 std::vector<int> _compositeFaceNodeIndexes; // local node indexes for global face
731 std::vector<int>
732 _compositeGlobalFaceNodeIndexes; // global node indexes for global face (added by
733 // iman nov 25, 2017 for use by limiter)
734 std::vector<int> _isBoundaryFaceArray; // iman addition aug 29 2017 for LDG to know if
735 // face is on boundary or not
736 std::vector<int>
737 _isPatchBoundaryFaceArray; // iman addition sep 19 2017 for LDG to know if face is
738 // on a patch boundary or not
739 std::vector<real>
740 _commonNormals; // iman addition sep 20 2017 for LDG common face normals
741
742 std::vector<real>
743 _globalFaceNumbersOfGlobalElementNumbers; // this gives the global face numbers of
744 // the element faces (should be in order
745 // of local faces from 0 to whatever).
746 // Think of it as neighborhood but
747 // instead of neighboring element
748 // numbers it gives the global face
749 // number between the neighbor and
750 // current element
751
752 std::vector<int> _l1_elements; // element neighbours patch
753
755
760 std::vector<int> _dg_neighborhood;
761
766 std::vector<int> _dg_neighbor_local_face;
767
772 std::vector<int> _dg_orientations;
773
781
782private:
783 // functions for constructor
789 void constructFacesAndLayer1Vector();
790
795 void setInteriorFaceIndexes();
796
801 void setNumFacesPerLayer();
802
808 void constructAllFacesVectorAndCountNumFaces();
809
818 void setupLimiters(const bool useLimiter);
819
824 void setupFaceGeometry();
825
831 void setupElementGeometry(const bool useLimiter);
832
840 void setupDGNeighborhoodLocalNeighborFacesAndOrientations();
841
850 int boundaryFaceIndex(const int global_face_index) const;
851
863 int boundaryElementIndex(const int global_face_index) const;
864
876 void setupElementwiseFaceInsideOutsideNodes();
877
878 // WmUDGGeometry(){}
879};
880#endif // WMUDGGEOMETRY_H
Definition: wmbasisarrayset.h:13
int getNumDims() const
Definition: wmbasisarrayset.h:43
int getNumTotalNodes() const
Definition: wmbasisarrayset.h:47
int getNumFaceNodes() const
Definition: wmbasisarrayset.h:27
Definition: wmudggeometry.h:108
WmUDGGeometry(const WmUnstructuredPatch &patch, const std::vector< std::string > &boundaryNames, const WmBasisArraySet &dgBasisSet, const bool useLimiter=false)
std::vector< int > _dg_neighborhood
Neighborhood of elements [_numElements X _numFacesPerElement] However ghost elements are given a numb...
Definition: wmudggeometry.h:760
const int * getReconstructionArray_StencilIndexes() const
Definition: wmudggeometry.h:240
std::vector< real > _reconstruction_lInverse
Definition: wmudggeometry.h:711
std::vector< int > _dg_orientations
Get orientations for each elements by face [_numElements X _numFacesPerElement] However ghost element...
Definition: wmudggeometry.h:772
int getFaceNodeIndexes_Composite_BlockSize() const
Definition: wmudggeometry.h:347
int isPatchBoundaryFace(int faceIndex) const
Definition: wmudggeometry.h:383
const WmUnstructuredPatch & _patch
Definition: wmudggeometry.h:665
int _reconstruction_b_blockSize
Definition: wmudggeometry.h:707
int getFaceElementIndexes_Interconnected_BlockSize() const
Returns block size of interconnectedFaceElementIndexes.
Definition: wmudggeometry.h:338
int _numSharedFaces
Definition: wmudggeometry.h:680
int getNeighborLocalFaceIndex(const int element_index, const int local_face_index) const
Get neighboring element local face index at a particular local face index of an element index Returns...
Definition: wmudggeometry.h:566
int _numFaces
Definition: wmudggeometry.h:678
int getGeometryArray_Limiter_Size() const
Definition: wmudggeometry.h:235
const real * getGeometryArray_Limiter() const
Definition: wmudggeometry.h:190
const int * getDGNeighborhood() const
Get raw pointer to _dg_neighborhood.
Definition: wmudggeometry.h:543
std::vector< int > _reconstruction_stencilIndexes
Definition: wmudggeometry.h:709
int getElementIndexes_NumInLayers(int lowerLayer, int upperLayer) const
int getFaceIndexes_NumInLayers(int lowerLayer, int upperLayer) const
int getReconstructionArray_Weights_Size() const
Definition: wmudggeometry.h:285
void forEachNode(Func f)
Iterate over every node in this geometry and call the provided function.
Definition: wmudggeometry.h:625
int getReconstructionArray_Correction_BlockSize() const
Definition: wmudggeometry.h:275
int _reconstruction_stencilIndexes_blockSize
Definition: wmudggeometry.h:704
int getReconstructionArray_StencilIndexes_Size() const
Definition: wmudggeometry.h:280
int getNumElements_Inclusive() const
Definition: wmudggeometry.h:146
bool hasBoundary(const std::string &boundary) const
const real * getReconstructionArray_Weights() const
Definition: wmudggeometry.h:245
std::vector< real > _faceGeometry
Definition: wmudggeometry.h:698
int getFaceNodeIndexes_Composite_Size() const
Definition: wmudggeometry.h:362
boundaryFacesMap_t _boundaryFaceIndexes
Definition: wmudggeometry.h:670
void printCompositeFaceNodeIndexesArray(std::stringstream &ss) const
int getNumFaces_Shared() const
Definition: wmudggeometry.h:137
int getNumL1Elements() const
Grab number of layer 1 elements.
Definition: wmudggeometry.h:494
int _reconstruction_w_blockSize
Definition: wmudggeometry.h:705
std::vector< int > _isBoundaryFaceArray
Definition: wmudggeometry.h:734
int getGlobalNodeIndexAtPosition(const real *global_node_positions, const int *global_node_indexes, const real position[3]) const
Find the global node index of a position given global_node_indexes and global_node_positions of an el...
int getGeometryArray_Face_BlockSize() const
Definition: wmudggeometry.h:195
int isBoundaryFace(int faceIndex) const
Definition: wmudggeometry.h:377
int _jacobianGeometryBlockSize
Definition: wmudggeometry.h:695
int get_global_face_from_element_local_face(int global_element_index, int local_face_index) const
Definition: wmudggeometry.h:408
const real * getCommonNormal(int faceIndex) const
Definition: wmudggeometry.h:388
int getNumFaces_Interior() const
Definition: wmudggeometry.h:129
int getFaceNodeIndexes_Interconnected_BlockSize() const
Definition: wmudggeometry.h:343
const WmUnstructuredPatch & getPatch() const
Definition: wmudggeometry.h:393
std::vector< real > _elementGeometry
Definition: wmudggeometry.h:700
int _interconnectedFaceNodeIndexesBlockSize
Definition: wmudggeometry.h:714
std::vector< int > _inside_outside_global_node_indexes
This gives the element and facewise inside and outside global node indexes [_numElements_PEG X numFac...
Definition: wmudggeometry.h:780
const int * getFaceElementIndexes_Interconnected() const
Definition: wmudggeometry.h:306
std::vector< real > _reconstruction_w
Definition: wmudggeometry.h:710
int getFaceNodeIndexes_Interconnected_Size() const
Definition: wmudggeometry.h:357
const int * getLocalDGNeighborhood(const int element_index) const
Get raw pointer to _dg_neighborhood at a particular element index.
Definition: wmudggeometry.h:553
int getFaceOrientation(const int element_index, const int local_face_index) const
Get the orientation at a particular local face index of an element index Returns 0 when unstructured ...
Definition: wmudggeometry.h:581
std::vector< int > _isPatchBoundaryFaceArray
Definition: wmudggeometry.h:737
int _numElements_PEG
Definition: wmudggeometry.h:684
std::vector< int > _interconnectedFaceElementIndexes
Definition: wmudggeometry.h:722
std::shared_ptr< WxRange > ownElementRange() const
The range of elements belonging to this patch.
std::map< std::string, std::vector< std::unique_ptr< face_t > > > bcFaceMap_t
Definition: wmudggeometry.h:111
void printFaceInformation(int global_face_index) const
Definition: wmudggeometry.h:419
std::vector< std::string > _boundaryNames
Definition: wmudggeometry.h:669
void printDGNeighborhood(std::stringstream &ss) const
Print _dg_neighborhood into a stringstream.
int _numBoundaryFaces
Definition: wmudggeometry.h:679
int _numElements_PIPEG
Definition: wmudggeometry.h:687
const boundaryFacesMap_t & getBoundaryFaces() const
Definition: wmudggeometry.h:120
int getReconstructionArray_StencilIndexes_BlockSize() const
Definition: wmudggeometry.h:260
std::vector< int > _l1_elements
Definition: wmudggeometry.h:752
int getNumElements_Interpatch_Elements_Group() const
Definition: wmudggeometry.h:151
int getGeometryArray_Element_BlockSize() const
the block size of the element geometry array
Definition: wmudggeometry.h:205
int getReconstructionArray_Correction_Size() const
Definition: wmudggeometry.h:295
void getElementGlobalNodePositionsAndIndexes(const int element_index, int *global_node_indexes, real *global_node_positions) const
Grab the global node positions and indexes for an element.
std::vector< std::shared_ptr< face_t > > _interior_faces
Definition: wmudggeometry.h:673
std::vector< int > _compositeGlobalFaceNodeIndexes
Definition: wmudggeometry.h:732
std::vector< int > _dg_neighbor_local_face
Local faces of neighboring elements written by face [_numElements X _numFacesPerElement] However ghos...
Definition: wmudggeometry.h:766
int _reconstruction_lInverse_blockSize
Definition: wmudggeometry.h:706
std::vector< real > _commonNormals
Definition: wmudggeometry.h:740
const WmUnstructuredGeometry * get_unstructured_geometry() const
Definition: wmudggeometry.h:398
int getNumFaces() const
Definition: wmudggeometry.h:125
int getGeometryArray_Jacobian_Size() const
Definition: wmudggeometry.h:230
const int * getFaceNodeGlobalInsideOutsideIndexes(const int element_index, const int local_face_index, const int local_node_index) const
Get raw pointer to _inside_outside_global_node_indexes at a particular element index,...
Definition: wmudggeometry.h:599
void printElementwiseFaceInsideOutsideNodes(std::stringstream &ss) const
Print _inside_outside_global_node_indexes into a stringstream.
void printElementInformation(int global_element_index)
Definition: wmudggeometry.h:456
bcFaceMap_t _shared_faces
Definition: wmudggeometry.h:676
std::vector< std::shared_ptr< face_t > > _all_faces
Definition: wmudggeometry.h:674
std::vector< real > _reconstruction_b
Definition: wmudggeometry.h:712
bcFaceMap_t _boundary_faces
Definition: wmudggeometry.h:675
std::map< std::string, std::vector< int > > boundaryFacesMap_t
Definition: wmudggeometry.h:110
std::vector< int > _compositeFaceNodeIndexes
Definition: wmudggeometry.h:730
int getGeometryArray_Jacobian_BlockSize() const
Definition: wmudggeometry.h:210
std::vector< int > _interconnectedFaceNodeIndexes
Definition: wmudggeometry.h:720
int _limiterGeometryBlockSize
Definition: wmudggeometry.h:696
int _faceGeometryBlockSize
Definition: wmudggeometry.h:693
const real * getGeometryArray_Face() const
Definition: wmudggeometry.h:156
int _numElements_PIPBCEG
Definition: wmudggeometry.h:691
int getGeometryArray_Face_Size() const
Definition: wmudggeometry.h:220
std::vector< real > _jacobianGeometry
Definition: wmudggeometry.h:701
int getElementIndexes_StartIndexForLayer(int layer) const
std::vector< int > _interconnectedFaceElementIndexesNoMinusOne
Definition: wmudggeometry.h:728
const int * getGlobalFaceNodeIndexes_Composite() const
Definition: wmudggeometry.h:325
int _numInteriorFaces
Definition: wmudggeometry.h:681
int _elementGeometryBlockSize
Definition: wmudggeometry.h:694
const WmBasisArraySet & _basisSet
Definition: wmudggeometry.h:667
std::vector< real > _limiterGeometry
Definition: wmudggeometry.h:702
int getReconstructionArray_Reconstruction_Size() const
Definition: wmudggeometry.h:290
const real * getGeometryArray_Element() const
the "element geometry array"
Definition: wmudggeometry.h:182
int getReconstructionArray_Reconstruction_BlockSize() const
Definition: wmudggeometry.h:270
int getGeometryArray_Element_Size() const
Definition: wmudggeometry.h:225
int getFaceIndexes_StartIndexForLayer(int layer) const
int getGeometryArray_Limiter_BlockSize() const
Definition: wmudggeometry.h:215
std::vector< int > _numFacesPerLayer
Definition: wmudggeometry.h:718
const face_t & get_face(const int global_face_index) const
Definition: wmudggeometry.h:403
const int * getFaceNodeIndexes_Interconnected() const
Definition: wmudggeometry.h:300
int _compositeFaceNodeIndexesBlockSize
Definition: wmudggeometry.h:716
const real * getGeometryArray_Jacobian() const
Definition: wmudggeometry.h:186
int _interconnectedFaceElementIndexesBlockSize
Definition: wmudggeometry.h:715
std::vector< real > _globalFaceNumbersOfGlobalElementNumbers
Definition: wmudggeometry.h:743
const int * getFaceElementIndexes_InterconnectedNoMinusOne() const
Definition: wmudggeometry.h:313
std::vector< real > _numerical_flux_multipliers
Definition: wmudggeometry.h:754
int getNumFaces_Boundary() const
Definition: wmudggeometry.h:133
const real * getReconstructionArray_Reconstruction() const
Definition: wmudggeometry.h:250
const real * getReconstructionArray_Correction() const
Definition: wmudggeometry.h:255
int getNumElements() const
Definition: wmudggeometry.h:142
int getReconstructionArray_Weights_BlockSize() const
Definition: wmudggeometry.h:265
const WmUnstructuredGeometry * _uG
Definition: wmudggeometry.h:666
const int * getFaceNodeIndexes_Composite() const
Definition: wmudggeometry.h:319
int getFaceElementIndexes_Interconnected_Size() const
Definition: wmudggeometry.h:352
Class used for generating mesh geometry concerns.
Definition: wmunstructuredgeometry.h:45
int getNumFacesPerElement() const
Number of faces on an element.
Definition: wmunstructuredgeometry.h:367
Definition: wmunstructuredpatch.h:22
int getPatchIndex() const
Definition: wmunstructuredpatch.h:54
TYPE upper(unsigned dim) const
Upper bound along dimension 'dim'.
Definition: wxbox.h:147
TYPE lower(unsigned dim) const
Lower bound along dimension 'dim'.
Definition: wxbox.h:124
WxRange represents a hyper-rectangular domain of an n-dimensional space of integers.
Definition: wxrange.h:23
Definition: wmudggeometry.h:13
int * _insideFaceLocalNodeIndexes
Definition: wmudggeometry.h:97
bool is_boundary_face() const
Definition: wmudggeometry.h:65
int _outsideFaceIndex
Definition: wmudggeometry.h:89
int * _outsideFaceLocalNodeIndexes
Definition: wmudggeometry.h:98
int _globalIndex
Definition: wmudggeometry.h:93
int * _insideFaceGlobalNodeIndexes
Definition: wmudggeometry.h:95
const int * get_outside_face_local_node_indexes() const
Definition: wmudggeometry.h:61
int get_inside_face_orientation() const
Definition: wmudggeometry.h:33
int _insideFaceIndex
Definition: wmudggeometry.h:88
int get_outside_face_index() const
Definition: wmudggeometry.h:29
const int * get_outside_face_global_node_indexes() const
Definition: wmudggeometry.h:53
void print(std::stringstream &ss) const
int get_global_id() const
Definition: wmudggeometry.h:45
int get_inside_face_index() const
Definition: wmudggeometry.h:25
int _insideFaceOrientation
Definition: wmudggeometry.h:90
bool is_patch_boundary_face() const
Definition: wmudggeometry.h:69
const int * get_inside_face_local_node_indexes() const
Definition: wmudggeometry.h:57
const real * _norm
Definition: wmudggeometry.h:92
bool _isPatchBoundaryFace
Definition: wmudggeometry.h:101
void setup(const WmBasisArraySet &dgBasisSet)
bool _isBoundaryFace
Definition: wmudggeometry.h:100
int _outsideElementIndex
Definition: wmudggeometry.h:87
const int * get_inside_face_global_node_indexes() const
Definition: wmudggeometry.h:49
int * _outsideFaceGlobalNodeIndexes
Definition: wmudggeometry.h:96
const real * get_norm() const
Definition: wmudggeometry.h:41
face_t(const int insideElementIndex, const int outsideElementIndex, const int insideFaceIndex, const int outsideFaceIndex, const WmUnstructuredGeometry &geometry, const WmBasisArraySet &dgBasisSet)
int get_outside_face_orientation() const
Definition: wmudggeometry.h:37
int get_inside_element_index() const
Definition: wmudggeometry.h:17
int _outsideFaceOrientation
Definition: wmudggeometry.h:91
int get_outside_element_index() const
Definition: wmudggeometry.h:21
int _insideElementIndex
Definition: wmudggeometry.h:86
Definition: phase_space_34duoprism.h:9
#define real
Definition: wmoclunstructuredreconstruction.h:11