Go to the documentation of this file.
84 #ifndef globalMeshData_H
85 #define globalMeshData_H
99 template<
class T>
class EdgeMap;
101 class globalIndexAndTransform;
184 globalPointTransformedBoundaryFacesPtr_;
193 globalPointTransformedBoundaryCellsPtr_;
206 mutable label nGlobalPoints_;
226 mutable label nGlobalEdges_;
242 static void countSharedEdges
250 void calcSharedPoints()
const;
253 void calcSharedEdges()
const;
256 void calcGlobalPointSlaves()
const;
264 void calcGlobalPointEdges
276 const label localPoint
280 void calcGlobalEdgeSlaves()
const;
283 void calcGlobalEdgeOrientation()
const;
292 void calcGlobalPointBoundaryFaces()
const;
295 void calcGlobalPointBoundaryCells()
const;
305 void calcGlobalCoPointSlaves()
const;
354 return !processorPatches_.empty();
361 return nTotalPoints_;
384 return processorPatches_;
392 return processorPatchIndices_;
399 return processorPatchNeighbours_;
478 template<
class Type,
class CombineOp,
class TransformOp>
486 const CombineOp& cop,
487 const TransformOp& top
491 template<
class Type,
class CombineOp>
511 template<
class Type,
class CombineOp,
class TransformOp>
515 const CombineOp& cop,
516 const TransformOp& top
611 void operator()(
T&
x, const
T&
y)
const
615 x.setSize(
x.size() +
y.size());
List< label > labelList
A List of labels.
vectorField pointField
pointField is a vectorField.
const labelListList & globalPointTransformedSlaves() const
const mapDistribute & globalCoPointSlavesMap() const
const labelListList & globalPointSlaves() const
const globalIndex & globalBoundaryFaceNumbering() const
Numbering of boundary faces is face-mesh.nInternalFaces()
const mapDistribute & globalPointBoundaryCellsMap() const
const Map< label > & coupledPatchMeshEdgeMap() const
Return map from mesh edges to coupledPatch edges.
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
static const Foam::scalar matchTol_
Geometric tolerance (fraction of bounding box)
const mapDistribute & globalEdgeSlavesMap() const
bool parallel() const
Does the mesh contain processor patches? (also valid when.
const labelList & sharedPointGlobalLabels() const
Return shared point global labels. Tries to read.
const globalIndex & globalBoundaryCellNumbering() const
Numbering of boundary cells is according to boundaryCells()
const labelList & sharedEdgeAddr() const
Return addressing into the complete globally shared edge.
const labelListList & globalPointBoundaryCells() const
const labelList & sharedEdgeLabels() const
Return indices of local edges that are globally shared.
void clearOut()
Remove all demand driven data.
const mapDistribute & globalPointSlavesMap() const
label nGlobalEdges() const
Return number of globally shared edges. Demand-driven.
Mesh consisting of general polyhedral cells.
const labelList & boundaryCells() const
From boundary cell to mesh cell.
const labelList & processorPatches() const noexcept
Return list of processor patch labels.
#define forAll(list, i)
Loop across all elements in list.
autoPtr< globalIndex > mergePoints(labelList &pointToGlobal, labelList &uniquePoints) const
Helper for merging (collocated!) mesh point data.
const bitSet & globalEdgeOrientation() const
Is my edge same orientation as master edge.
const labelListList & globalPointTransformedBoundaryFaces() const
Deprecated(2020-09) use ListOps::appendEqOp.
label nGlobalPoints() const
Return number of globally shared points.
const labelList & processorPatchIndices() const noexcept
Return list of indices into processorPatches_ for each patch.
const globalIndexAndTransform & globalTransforms() const
Global transforms numbering.
const labelList & coupledPatchMeshEdges() const
Return map from coupledPatch edges to mesh edges.
Class containing processor-to-processor mapping information.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
Determines processor-processor connection. After instantiation contains on all processors the process...
const labelListList & globalEdgeSlaves() const
static void syncData(List< Type > &elems, const labelListList &slaves, const labelListList &transformedSlaves, const mapDistribute &slavesMap, const globalIndexAndTransform &, const CombineOp &cop, const TransformOp &top)
Helper: synchronise data with transforms.
const globalIndex & globalPointNumbering() const
Numbering of coupled points is according to coupledPatch.
const labelListList & globalPointBoundaryFaces() const
Various mesh related information for a parallel run. Upon construction, constructs all info using par...
void movePoints(const pointField &newPoints)
Update for moving points.
label nTotalPoints() const noexcept
Return total number of points in decomposed mesh. Not.
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
PrimitivePatch< IndirectList< face >, const pointField & > indirectPrimitivePatch
A PrimitivePatch with an IndirectList for the faces, const reference for the point field.
ClassName("globalMeshData")
Runtime type information.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
const globalIndex & globalEdgeNumbering() const
List< labelList > labelListList
A List of labelList.
Map from edge (expressed as its endpoints) to value. For easier forward declaration it is currently i...
~globalMeshData()
Destructor.
const labelListList & globalEdgeTransformedSlaves() const
const indirectPrimitivePatch & coupledPatch() const
Return patch of all coupled faces.
const labelListList & globalPointTransformedBoundaryCells() const
class FOAM_DEPRECATED_FOR(2017-05, "Foam::Enum") NamedEnum
const labelList & sharedPointLabels() const
Return indices of local points that are globally shared.
label nTotalCells() const noexcept
Return total number of cells in decomposed mesh.
const labelList & sharedPointAddr() const
Return addressing into the complete globally shared points.
pointField sharedPoints() const
Collect coordinates of shared points on all processors.
pointField geometricSharedPoints() const
Like sharedPoints but keeps cyclic points separate.
const mapDistribute & globalPointBoundaryFacesMap() const
const labelList & processorPatchNeighbours() const noexcept
Return processorPatchIndices of the neighbours.
const polyMesh & mesh() const noexcept
Return the mesh reference.
const labelListList & globalCoPointSlaves() const
void syncPointData(List< Type > &pointData, const CombineOp &cop, const TransformOp &top) const
Helper to synchronise coupled patch point data.
label nTotalFaces() const noexcept
Return total number of faces in decomposed mesh. Not.
A list of faces which address into the list of points.
void updateMesh()
Change global mesh data given a topological change. Does a.