Go to the documentation of this file.
82 #ifndef globalMeshData_H
83 #define globalMeshData_H
87 #include "indirectPrimitivePatch.H"
98 template<
class T>
class EdgeMap;
100 class globalIndexAndTransform;
101 class PackedBoolList;
276 const label localPoint
330 x.setSize(
x.size() +
y.size());
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
labelList processorPatches_
List of processor patch labels.
vectorField pointField
pointField is a vectorField.
autoPtr< labelList > boundaryCellsPtr_
const labelListList & globalPointTransformedSlaves() const
const mapDistribute & globalCoPointSlavesMap() const
autoPtr< globalIndex > globalEdgeNumberingPtr_
autoPtr< labelListList > globalPointBoundaryCellsPtr_
const labelListList & globalPointSlaves() const
const globalIndex & globalBoundaryFaceNumbering() const
Numbering of boundary faces is face-mesh.nInternalFaces()
label nGlobalPoints_
Total number of global points.
static void countSharedEdges(const EdgeMap< labelList > &, EdgeMap< label > &, label &)
Helper function for shared edge addressing.
List< label > labelList
A List of labels.
const mapDistribute & globalPointBoundaryCellsMap() const
const Map< label > & coupledPatchMeshEdgeMap() const
Return map from mesh edges to coupledPatch edges.
autoPtr< labelListList > globalPointSlavesPtr_
void calcGlobalEdgeSlaves() const
Calculate global edge addressing.
const polyMesh & mesh() const
Return the mesh reference.
static const Foam::scalar matchTol_
Geometric tolerance (fraction of bounding box)
const mapDistribute & globalEdgeSlavesMap() const
#define forAll(list, i)
Loop across all elements in list.
autoPtr< labelList > coupledPatchMeshEdgesPtr_
const labelList & processorPatches() const
Return list of processor patch labels.
bool parallel() const
Does the mesh contain processor patches? (also valid when.
autoPtr< Map< label > > coupledPatchMeshEdgeMapPtr_
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.
autoPtr< labelList > sharedPointAddrPtr_
Indices of globally shared points in the master list.
label nGlobalEdges_
Total number of global edges.
label nTotalPoints() const
Return total number of points in decomposed mesh. Not.
PrimitivePatch< face, IndirectList, const pointField & > indirectPrimitivePatch
Foam::indirectPrimitivePatch.
const labelListList & globalPointBoundaryCells() const
autoPtr< labelListList > globalPointTransformedBoundaryFacesPtr_
label nTotalCells() const
Return total number of cells in decomposed mesh.
const labelList & sharedEdgeLabels() const
Return indices of local edges that are globally shared.
autoPtr< labelListList > globalCoPointSlavesPtr_
void calcGlobalPointBoundaryCells() const
Calculate global point to global boundary cell addressing.
Variant of pointEdgePoint with some transported additional data. WIP - should be templated on data li...
label nTotalFaces() const
Return total number of faces in decomposed mesh. Not.
const labelList & processorPatchIndices() const
Return list of indices into processorPatches_ for each patch.
void clearOut()
Remove all demand driven data.
autoPtr< labelListList > globalPointTransformedSlavesPtr_
const mapDistribute & globalPointSlavesMap() const
autoPtr< labelList > sharedPointLabelsPtr_
Indices of local points that are globally shared.
autoPtr< labelListList > globalPointBoundaryFacesPtr_
void calcSharedEdges() const
Calculate shared edge addressing.
label nGlobalEdges() const
Return number of globally shared edges. Demand-driven.
Mesh consisting of general polyhedral cells.
globalMeshData(const globalMeshData &)
Disallow default bitwise copy construct.
const labelList & boundaryCells() const
From boundary cell to mesh cell.
void operator=(const globalMeshData &)
Disallow default bitwise assignment.
autoPtr< globalIndex > globalBoundaryFaceNumberingPtr_
autoPtr< globalIndex > mergePoints(labelList &pointToGlobal, labelList &uniquePoints) const
Helper for merging (collocated!) mesh point data.
void initProcAddr()
Set up processor patch addressing.
const labelListList & globalPointTransformedBoundaryFaces() const
label nGlobalPoints() const
Return number of globally shared points.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
label nTotalCells_
Total number of cells in the complete mesh.
Pre-declare SubField and related Field type.
autoPtr< labelList > sharedEdgeAddrPtr_
Indices of globally shared edge in the master list.
const PackedBoolList & globalEdgeOrientation() const
Is my edge same orientation as master edge.
const globalIndexAndTransform & globalTransforms() const
Global transforms numbering.
void calcGlobalEdgeOrientation() const
Calculate orientation w.r.t. edge master.
const labelList & coupledPatchMeshEdges() const
Return map from coupledPatch edges to mesh edges.
Class containing processor-to-processor mapping information.
autoPtr< mapDistribute > globalPointBoundaryCellsMapPtr_
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
autoPtr< mapDistribute > globalCoPointSlavesMapPtr_
autoPtr< labelList > sharedPointGlobalLabelsPtr_
Shared point global labels.
Determines processor-processor connection. After instantiation contains on all processors the process...
const labelListList & globalEdgeSlaves() const
const globalIndex & globalPointNumbering() const
Numbering of coupled points is according to coupledPatch.
const labelListList & globalPointBoundaryFaces() const
autoPtr< PackedBoolList > globalEdgeOrientationPtr_
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.
void calcGlobalPointBoundaryFaces() const
Calculate global point to global boundary face addressing.
Various mesh related information for a parallel run. Upon construction, constructs all info using par...
autoPtr< mapDistribute > globalPointBoundaryFacesMapPtr_
void calcSharedPoints() const
Calculate shared point addressing.
void movePoints(const pointField &newPoints)
Update for moving points.
void calcGlobalPointSlaves() const
Calculate global point addressing.
void calcPointConnectivity(List< labelPairList > &) const
Calculate connected points.
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
const labelList & processorPatchNeighbours() const
Return processorPatchIndices of the neighbours.
autoPtr< labelListList > globalPointTransformedBoundaryCellsPtr_
autoPtr< globalIndex > globalBoundaryCellNumberingPtr_
autoPtr< globalIndexAndTransform > globalTransformsPtr_
Global numbering for transforms.
void calcPointBoundaryFaces(labelListList &) const
Calculate coupled point to uncoupled boundary faces. Local only.
ClassName("globalMeshData")
Runtime type information.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
const globalIndex & globalEdgeNumbering() const
List< labelList > labelListList
A List of labelList.
Map from edge (expressed as its endpoints) to value.
~globalMeshData()
Destructor.
An ordered pair of two objects of type <T> with first() and second() elements.
const labelListList & globalEdgeTransformedSlaves() const
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
const indirectPrimitivePatch & coupledPatch() const
Return patch of all coupled faces.
const labelListList & globalPointTransformedBoundaryCells() const
void calcGlobalCoPointSlaves() const
autoPtr< indirectPrimitivePatch > coupledPatchPtr_
Patch of coupled faces. Additional patch edge to mesh edges.
labelList processorPatchIndices_
List of indices into processorPatches_ for each patch.
label nTotalPoints_
Total number of points in the complete mesh.
const polyMesh & mesh_
Reference to mesh.
autoPtr< mapDistribute > globalPointSlavesMapPtr_
autoPtr< globalIndex > globalPointNumberingPtr_
Global numbering for coupledPatch points.
const labelList & sharedPointLabels() const
Return indices of local points that are globally shared.
const labelList & sharedPointAddr() const
Return addressing into the complete globally shared points.
autoPtr< mapDistribute > globalEdgeSlavesMapPtr_
autoPtr< labelList > sharedEdgeLabelsPtr_
Indices of local edges that are globally shared.
void size(const label)
Override size to be inconsistent with allocated storage.
label nTotalFaces_
Total number of faces in the complete mesh.
pointField sharedPoints() const
Collect coordinates of shared points on all processors.
void calcGlobalPointEdges(labelListList &globalPointEdges, List< labelPairList > &globalPointPoints) const
Calculate pointEdges and pointPoints addressing.
pointField geometricSharedPoints() const
Like sharedPoints but keeps cyclic points separate.
label findTransform(const labelPairList &info, const labelPair &remotePoint, const label localPoint) const
Look up remote and local point and find using info the.
autoPtr< labelListList > globalEdgeTransformedSlavesPtr_
const mapDistribute & globalPointBoundaryFacesMap() const
void operator()(T &x, const T &y) const
autoPtr< labelListList > globalEdgeSlavesPtr_
const labelListList & globalCoPointSlaves() const
void syncPointData(List< Type > &pointData, const CombineOp &cop, const TransformOp &top) const
Helper to synchronise coupled patch point data.
A list of faces which address into the list of points.
labelList processorPatchNeighbours_
processorPatchIndices_ of the neighbours processor patches
void updateMesh()
Change global mesh data given a topological change. Does a.