82 #ifndef globalMeshData_H 83 #define globalMeshData_H 98 template<
class T>
class EdgeMap;
100 class globalIndexAndTransform;
101 class PackedBoolList;
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;
330 x.setSize(x.size() + y.size());
377 return processorPatches_.
size() > 0;
384 return nTotalPoints_;
407 return processorPatches_;
415 return processorPatchIndices_;
422 return processorPatchNeighbours_;
501 template<
class Type,
class CombineOp,
class TransformOp>
509 const CombineOp& cop,
510 const TransformOp& top
514 template<
class Type,
class CombineOp>
534 template<
class Type,
class CombineOp,
class TransformOp>
538 const CombineOp& cop,
539 const TransformOp& top
Variant of pointEdgePoint with some transported additional data. WIP - should be templated on data li...
const globalIndex & globalEdgeNumbering() const
const labelList & sharedPointAddr() const
Return addressing into the complete globally shared points.
#define forAll(list, i)
Loop across all elements in list.
const labelList & coupledPatchMeshEdges() const
Return map from coupledPatch edges to mesh edges.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
autoPtr< globalIndex > mergePoints(labelList &pointToGlobal, labelList &uniquePoints) const
Helper for merging (collocated!) mesh point data.
const labelListList & globalPointTransformedBoundaryFaces() const
const globalIndex & globalBoundaryCellNumbering() const
Numbering of boundary cells is according to boundaryCells()
const mapDistribute & globalPointSlavesMap() 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 nGlobalEdges() const
Return number of globally shared edges. Demand-driven.
void size(const label)
Override size to be inconsistent with allocated storage.
void clearOut()
Remove all demand driven data.
void operator()(T &x, const T &y) const
const labelList & processorPatches() const
Return list of processor patch labels.
const labelList & sharedEdgeLabels() const
Return indices of local edges that are globally shared.
const labelListList & globalPointSlaves() const
const labelListList & globalPointTransformedBoundaryCells() const
const polyMesh & mesh() const
Return the mesh reference.
Determines processor-processor connection. After instantiation contains on all processors the process...
const globalIndex & globalPointNumbering() const
Numbering of coupled points is according to coupledPatch.
pointField sharedPoints() const
Collect coordinates of shared points on all processors.
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 & globalBoundaryFaceNumbering() const
Numbering of boundary faces is face-mesh.nInternalFaces()
const labelListList & globalCoPointSlaves() const
An ordered pair of two objects of type <T> with first() and second() elements.
const labelListList & globalPointBoundaryCells() const
const PackedBoolList & globalEdgeOrientation() const
Is my edge same orientation as master edge.
label nTotalFaces() const
Return total number of faces in decomposed mesh. Not.
pointField geometricSharedPoints() const
Like sharedPoints but keeps cyclic points separate.
label nTotalPoints() const
Return total number of points in decomposed mesh. Not.
const mapDistribute & globalPointBoundaryCellsMap() const
const mapDistribute & globalEdgeSlavesMap() const
const indirectPrimitivePatch & coupledPatch() const
Return patch of all coupled faces.
ClassName("globalMeshData")
Runtime type information.
Map from edge (expressed as its endpoints) to value.
const globalIndexAndTransform & globalTransforms() const
Global transforms numbering.
~globalMeshData()
Destructor.
const mapDistribute & globalCoPointSlavesMap() const
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
const labelListList & globalEdgeTransformedSlaves() const
const labelList & boundaryCells() const
From boundary cell to mesh cell.
void movePoints(const pointField &newPoints)
Update for moving points.
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 labelList & processorPatchNeighbours() const
Return processorPatchIndices of the neighbours.
const labelListList & globalPointTransformedSlaves() const
const labelList & sharedEdgeAddr() const
Return addressing into the complete globally shared edge.
Class containing processor-to-processor mapping information.
const labelList & processorPatchIndices() const
Return list of indices into processorPatches_ for each patch.
const labelListList & globalEdgeSlaves() const
void updateMesh()
Change global mesh data given a topological change. Does a.
const labelListList & globalPointBoundaryFaces() 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 & 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 mapDistribute & globalPointBoundaryFacesMap() const
label nGlobalPoints() const
Return number of globally shared points.
bool parallel() const
Does the mesh contain processor patches? (also valid when.
label nTotalCells() const
Return total number of cells in decomposed mesh.
void syncPointData(List< Type > &pointData, const CombineOp &cop, const TransformOp &top) const
Helper to synchronise coupled patch point data.
const labelList & sharedPointGlobalLabels() const
Return shared point global labels. Tries to read.