81 #ifndef globalMeshData_H 82 #define globalMeshData_H 97 template<
class T>
class EdgeMap;
99 class globalIndexAndTransform;
100 class PackedBoolList;
183 globalPointTransformedBoundaryFacesPtr_;
192 globalPointTransformedBoundaryCellsPtr_;
205 mutable label nGlobalPoints_;
225 mutable label nGlobalEdges_;
241 static void countSharedEdges
249 void calcSharedPoints()
const;
252 void calcSharedEdges()
const;
255 void calcGlobalPointSlaves()
const;
263 void calcGlobalPointEdges
275 const label localPoint
279 void calcGlobalEdgeSlaves()
const;
282 void calcGlobalEdgeOrientation()
const;
291 void calcGlobalPointBoundaryFaces()
const;
294 void calcGlobalPointBoundaryCells()
const;
304 void calcGlobalCoPointSlaves()
const;
322 x.setSize(x.size() + y.size());
372 return processorPatches_.
size() > 0;
379 return nTotalPoints_;
402 return processorPatches_;
410 return processorPatchIndices_;
417 return processorPatchNeighbours_;
496 template<
class Type,
class CombineOp,
class TransformOp>
504 const CombineOp& cop,
505 const TransformOp& top
509 template<
class Type,
class CombineOp>
529 template<
class Type,
class CombineOp,
class TransformOp>
533 const CombineOp& cop,
534 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 & globalPointSlaves() const
const mapDistribute & globalCoPointSlavesMap() const
#define forAll(list, i)
Loop across all elements in list.
const labelList & processorPatches() const
Return list of processor patch labels.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
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
const mapDistribute & globalEdgeSlavesMap() 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.
void size(const label)
Override size to be inconsistent with allocated storage.
void clearOut()
Remove all demand driven data.
const mapDistribute & globalPointSlavesMap() 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.
bool parallel() const
Does the mesh contain processor patches? (also valid when.
const labelListList & globalPointBoundaryFaces() const
Determines processor-processor connection. After instantiation contains on all processors the process...
const labelList & boundaryCells() const
From boundary cell to mesh cell.
label nGlobalEdges() const
Return number of globally shared edges. Demand-driven.
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.
~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.
const indirectPrimitivePatch & coupledPatch() const
Return patch of all coupled faces.
static void syncData(List< Type > &pointData, const labelListList &slaves, const labelListList &transformedSlaves, const mapDistribute &slavesMap, const globalIndexAndTransform &, const CombineOp &cop, const TransformOp &top)
Helper: synchronise data with transforms.
const labelListList & globalPointTransformedBoundaryCells() const
void operator()(T &x, const T &y) const
Class containing processor-to-processor mapping information.
globalMeshData(const polyMesh &mesh)
Construct from mesh, derive rest (does parallel communication!)
void updateMesh()
Change global mesh data given a topological change. Does a.
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 mapDistribute & globalPointBoundaryFacesMap() const
const labelList & sharedPointAddr() const
Return addressing into the complete globally shared points.
pointField sharedPoints() const
Collect coordinates of shared points on all processors.
const mapDistribute & globalPointBoundaryCellsMap() 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()