82 #ifndef globalMeshData_H
83 #define globalMeshData_H
97 class distributionMap;
98 template<
class T>
class EdgeMap;
100 class globalIndexAndTransform;
101 class PackedBoolList;
185 globalPointTransformedBoundaryFacesPtr_;
194 globalPointTransformedBoundaryCellsPtr_;
207 mutable label nGlobalPoints_;
227 mutable label nGlobalEdges_;
243 static void countSharedEdges
251 void calcSharedPoints()
const;
254 void calcSharedEdges()
const;
257 void calcGlobalPointSlaves()
const;
266 void calcGlobalPointEdges
278 const label localPoint
282 void calcGlobalEdgeSlaves()
const;
285 void calcGlobalEdgeOrientation()
const;
294 void calcGlobalPointBoundaryFaces()
const;
297 void calcGlobalPointBoundaryCells()
const;
308 void calcGlobalCoPointSlaves()
const;
326 x.setSize(
x.size() +
y.size());
376 return processorPatches_.
size() > 0;
383 return nTotalPoints_;
419 return processorPatches_;
427 return processorPatchIndices_;
434 return processorPatchNeighbours_;
507 template<
class Type,
class CombineOp,
class TransformOp>
515 const CombineOp& cop,
516 const TransformOp& top
520 template<
class Type,
class CombineOp>
540 template<
class Type,
class CombineOp,
class TransformOp>
544 const CombineOp& cop,
545 const TransformOp& top
#define forAll(list, i)
Loop across all elements in list.
Map from edge (expressed as its endpoints) to value.
void size(const label)
Override size to be inconsistent with allocated storage.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Class containing processor-to-processor mapping information.
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
void operator()(T &x, const T &y) const
Various mesh related information for a parallel run. Upon construction, constructs all info using par...
const PackedBoolList & globalEdgeOrientation() const
Is my edge same orientation as master edge.
const lduSchedule & patchSchedule() const
Order in which the patches should be initialised/evaluated.
void movePoints(const pointField &newPoints)
Update for moving points.
static void syncData(List< Type > &pointData, const labelListList &slaves, const labelListList &transformedSlaves, const distributionMap &slavesMap, const globalIndexAndTransform &, const CombineOp &cop, const TransformOp &top)
Helper: synchronise data with transforms.
const labelList & sharedPointAddr() const
Return addressing into the complete globally shared points.
void topoChange()
Change global mesh data given a topological change. Does a.
const labelListList & globalPointTransformedBoundaryCells() const
globalMeshData(const polyMesh &mesh)
Construct from mesh, derive rest (does parallel communication!)
label nTotalFaces() const
Return total number of faces in decomposed mesh. Not.
const labelListList & globalEdgeTransformedSlaves() const
const labelList & processorPatches() const
Return list of processor patch labels.
const Map< label > & coupledPatchMeshEdgeMap() const
Return map from mesh edges to coupledPatch edges.
const labelList & sharedEdgeAddr() const
Return addressing into the complete globally shared edge.
bool parallel() const
Does the mesh contain processor patches? (also valid when.
static const Foam::scalar matchTol_
Geometric tolerance (fraction of bounding box)
label nGlobalPoints() const
Return number of globally shared points.
const distributionMap & globalPointBoundaryFacesMap() const
const labelList & processorPatchIndices() const
Return list of indices into processorPatches_ for each patch.
const labelList & sharedPointLabels() const
Return indices of local points that are globally shared.
const labelListList & globalPointTransformedBoundaryFaces() const
const labelList & boundaryCells() const
From boundary cell to mesh cell.
const labelListList & globalPointBoundaryFaces() const
const globalIndex & globalBoundaryFaceNumbering() const
Numbering of boundary faces is face-mesh.nInternalFaces()
const distributionMap & globalEdgeSlavesMap() const
const distributionMap & globalPointBoundaryCellsMap() const
const distributionMap & globalPointSlavesMap() const
void operator=(const globalMeshData &)=delete
Disallow default bitwise assignment.
ClassName("globalMeshData")
Runtime type information.
label nGlobalEdges() const
Return number of globally shared edges. Demand-driven.
const labelList & coupledPatchMeshEdges() const
Return map from coupledPatch edges to mesh edges.
~globalMeshData()
Destructor.
autoPtr< globalIndex > mergePoints(labelList &pointToGlobal, labelList &uniquePoints) const
Helper for merging (collocated!) mesh point data.
const labelList & sharedPointGlobalLabels() const
Return shared point global labels. Tries to read.
label nTotalPoints() const
Return total number of points in decomposed mesh. Not.
const labelListList & globalCoPointSlaves() const
const distributionMap & globalCoPointSlavesMap() const
void syncPointData(List< Type > &pointData, const CombineOp &cop, const TransformOp &top) const
Helper to synchronise coupled patch point data.
pointField sharedPoints() const
Collect coordinates of shared points on all processors.
const globalIndex & globalBoundaryCellNumbering() const
Numbering of boundary cells is according to boundaryCells()
const labelListList & globalPointSlaves() const
const globalIndex & globalEdgeNumbering() const
const globalIndexAndTransform & globalTransforms() const
Global transforms numbering.
const labelList & sharedEdgeLabels() const
Return indices of local edges that are globally shared.
const labelListList & globalPointTransformedSlaves() const
const indirectPrimitivePatch & coupledPatch() const
Return patch of all coupled faces.
const labelList & processorPatchNeighbours() const
Return processorPatchIndices of the neighbours.
const polyMesh & mesh() const
Return the mesh reference.
const labelListList & globalPointBoundaryCells() const
const labelListList & procNbrProcs() const
Return the processor-processor connection table.
void clearOut()
Remove all demand driven data.
label nTotalCells() const
Return total number of cells in decomposed mesh.
const labelListList & globalEdgeSlaves() const
const globalIndex & globalPointNumbering() const
Numbering of coupled points is according to coupledPatch.
Variant of pointEdgePoint with some transported additional data. WIP - should be templated on data li...
Mesh consisting of general polyhedral cells.
const lduSchedule & patchSchedule() const
Order in which the patches should be initialised/evaluated.
const labelListList & procNbrProcs() const
Return the processor-processor connection table.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)