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_;
513 template<
class Type,
class CombineOp,
class TransformOp>
521 const CombineOp& cop,
522 const TransformOp& top
526 template<
class Type,
class CombineOp>
546 template<
class Type,
class CombineOp,
class TransformOp>
550 const CombineOp& cop,
551 const TransformOp& top
Variant of pointEdgePoint with some transported additional data. WIP - should be templated on data li...
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 Map< label > & coupledPatchMeshEdgeMap() const
Return map from mesh edges to coupledPatch edges.
const labelListList & procNbrProcs() const
Return the processor-processor connection table.
const labelListList & globalPointSlaves() const
#define forAll(list, i)
Loop across all elements in list.
const labelList & processorPatches() const
Return list of processor patch labels.
const labelListList & globalPointTransformedSlaves() const
pointField geometricSharedPoints() const
Like sharedPoints but keeps cyclic points separate.
const globalIndex & globalBoundaryCellNumbering() const
Numbering of boundary cells is according to boundaryCells()
const labelList & sharedPointGlobalLabels() const
Return shared point global labels. Tries to read.
const labelListList & globalPointTransformedBoundaryFaces() const
static const Foam::scalar matchTol_
Geometric tolerance (fraction of bounding box)
Various mesh related information for a parallel run. Upon construction, constructs all info using par...
label nTotalPoints() const
Return total number of points in decomposed mesh. Not.
const labelListList & procNbrProcs() const
Return the processor-processor connection table.
void size(const label)
Override size to be inconsistent with allocated storage.
void clearOut()
Remove all demand driven data.
const lduSchedule & patchSchedule() const
Order in which the patches should be initialised/evaluated.
const distributionMap & globalEdgeSlavesMap() const
label nTotalCells() const
Return total number of cells in decomposed mesh.
const labelListList & globalPointBoundaryCells() const
autoPtr< globalIndex > mergePoints(labelList &pointToGlobal, labelList &uniquePoints) const
Helper for merging (collocated!) mesh point data.
const labelListList & globalEdgeSlaves() const
const labelList & coupledPatchMeshEdges() const
Return map from coupledPatch edges to mesh edges.
const lduSchedule & patchSchedule() const
Order in which the patches should be initialised/evaluated.
bool parallel() const
Does the mesh contain processor patches? (also valid when.
const labelListList & globalPointBoundaryFaces() const
const labelList & boundaryCells() const
From boundary cell to mesh cell.
label nGlobalEdges() const
Return number of globally shared edges. Demand-driven.
const distributionMap & globalPointBoundaryCellsMap() const
A list of faces which address into the list of points.
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
const globalIndex & globalEdgeNumbering() const
label nGlobalPoints() const
Return number of globally shared points.
const labelList & sharedEdgeAddr() const
Return addressing into the complete globally shared edge.
label nTotalFaces() const
Return total number of faces in decomposed mesh. Not.
An ordered pair of two objects of type <T> with first() and second() elements.
const globalIndexAndTransform & globalTransforms() const
Global transforms numbering.
const PackedBoolList & globalEdgeOrientation() const
Is my edge same orientation as master edge.
const globalIndex & globalPointNumbering() const
Numbering of coupled points is according to coupledPatch.
void operator=(const globalMeshData &)=delete
Disallow default bitwise assignment.
ClassName("globalMeshData")
Runtime type information.
Map from edge (expressed as its endpoints) to value.
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.
~globalMeshData()
Destructor.
const labelList & processorPatchNeighbours() const
Return processorPatchIndices of the neighbours.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
void movePoints(const pointField &newPoints)
Update for moving points.
void topoChange()
Change global mesh data given a topological change. Does a.
const indirectPrimitivePatch & coupledPatch() const
Return patch of all coupled faces.
Class containing processor-to-processor mapping information.
const labelListList & globalPointTransformedBoundaryCells() const
void operator()(T &x, const T &y) const
const distributionMap & globalPointSlavesMap() const
globalMeshData(const polyMesh &mesh)
Construct from mesh, derive rest (does parallel communication!)
const distributionMap & globalPointBoundaryFacesMap() const
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Mesh consisting of general polyhedral cells.
const labelList & sharedPointAddr() const
Return addressing into the complete globally shared points.
pointField sharedPoints() const
Collect coordinates of shared points on all processors.
const distributionMap & globalCoPointSlavesMap() const
const polyMesh & mesh() const
Return the mesh reference.
const labelList & sharedEdgeLabels() const
Return indices of local edges that are globally shared.
const labelListList & globalCoPointSlaves() const
const labelListList & globalEdgeTransformedSlaves() const
void syncPointData(List< Type > &pointData, const CombineOp &cop, const TransformOp &top) const
Helper to synchronise coupled patch point data.
const globalIndex & globalBoundaryFaceNumbering() const
Numbering of boundary faces is face-mesh.nInternalFaces()