Loading...
Searching...
No Matches
globalMeshData Class Reference

Various mesh related information for a parallel run. Upon construction, constructs all info using parallel communication. More...

#include <globalMeshData.H>

Public Member Functions

 globalMeshData (const globalMeshData &)=delete
 No copy construct.
void operator= (const globalMeshData &)=delete
 No copy assignment.
 ClassName ("globalMeshData")
 Runtime type information.
 globalMeshData (const polyMesh &mesh)
 Construct from mesh, derive rest (does parallel communication!).
 ~globalMeshData ()
 Destructor.
void clearOut ()
 Remove all demand driven data.
const polyMeshmesh () const noexcept
 Return the mesh reference.
bool parallel () const noexcept
 Does the mesh contain processor patches? (also valid when not running parallel).
const globalIndexglobalMeshPointAddr () const noexcept
 Global numbering for mesh points. Not compensated for duplicate points!
const globalIndexglobalMeshFaceAddr () const noexcept
 Global numbering for mesh faces. Not compensated for duplicate faces!
const globalIndexglobalMeshCellAddr () const noexcept
 Global numbering for mesh cells.
label nTotalPoints () const noexcept
 Total global number of mesh points. Not compensated for duplicate points!
label nTotalFaces () const noexcept
 Total global number of mesh faces. Not compensated for duplicate faces!
label nTotalCells () const noexcept
 Total global number of mesh cells.
const processorTopologytopology () const noexcept
 The processor to processor topology.
const lduSchedulepatchSchedule () const noexcept
 Order in which the patches should be initialised/evaluated corresponding to the schedule.
const labelListprocessorPatches () const noexcept
 Return list of processor patch labels.
const labelListprocessorPatchIndices () const noexcept
 Return list of indices into processorPatches_ for each patch.
const labelListprocessorPatchNeighbours () const noexcept
 Return processorPatchIndices of the neighbours processor patches. -1 if not running parallel.
label nGlobalPoints () const
 Return number of globally shared points.
const labelListsharedPointLabels () const
 Return indices of local points that are globally shared.
const labelListsharedPointAddr () const
 Return addressing into the complete globally shared points list.
const labelListsharedPointGlobalLabels () const
 Return shared point global labels. Tries to read 'pointProcAddressing' and returns list or -1 if none available.
pointField sharedPoints () const
 Collect coordinates of shared points on all processors. (does parallel communication!).
pointField geometricSharedPoints () const
 Like sharedPoints but keeps cyclic points separate. (does geometric merging; uses matchTol_*bb as merging tolerance) Use sharedPoints() instead.
label nGlobalEdges () const
 Return number of globally shared edges.
const labelListsharedEdgeLabels () const
 Return indices of local edges that are globally shared.
const labelListsharedEdgeAddr () const
 Return addressing into the complete globally shared edge list.
const indirectPrimitivePatchcoupledPatch () const
 Return patch of all coupled faces.
const labelListcoupledPatchMeshEdges () const
 Return map from coupledPatch edges to mesh edges.
const Map< label > & coupledPatchMeshEdgeMap () const
 Return map from mesh edges to coupledPatch edges.
const globalIndexAndTransformglobalTransforms () const
 Global transforms numbering.
const globalIndexglobalPointNumbering () const
 Numbering of coupled points is according to coupledPatch.
const labelListListglobalPointSlaves () const
const labelListListglobalPointTransformedSlaves () const
const mapDistributeglobalPointSlavesMap () const
template<class Type, class CombineOp, class TransformOp>
void syncPointData (List< Type > &pointData, const CombineOp &cop, const TransformOp &top) const
 Helper to synchronise coupled patch point data.
const globalIndexglobalEdgeNumbering () const
const labelListListglobalEdgeSlaves () const
const labelListListglobalEdgeTransformedSlaves () const
const mapDistributeglobalEdgeSlavesMap () const
const bitSetglobalEdgeOrientation () const
 Is my edge same orientation as master edge.
const labelListListglobalCoPointSlaves () const
const mapDistributeglobalCoPointSlavesMap () const
const globalIndexglobalBoundaryFaceNumbering () const
 Numbering of boundary faces is face-mesh.nInternalFaces().
const labelListListglobalPointBoundaryFaces () const
const labelListListglobalPointTransformedBoundaryFaces () const
const mapDistributeglobalPointBoundaryFacesMap () const
const labelListboundaryCells () const
 From boundary cell to mesh cell.
const globalIndexglobalBoundaryCellNumbering () const
 Numbering of boundary cells is according to boundaryCells().
const labelListListglobalPointBoundaryCells () const
const labelListListglobalPointTransformedBoundaryCells () const
const mapDistributeglobalPointBoundaryCellsMap () const
autoPtr< globalIndexmergePoints (labelList &pointToGlobal, labelList &uniquePoints) const
 Helper for merging (collocated!) mesh point data.
autoPtr< globalIndexmergePoints (const labelUList &meshPoints, const Map< label > &meshPointMap, labelList &pointToGlobal, labelList &uniqueMeshPoints) const
 Helper for merging (collocated!) patch point data.
void movePoints (const pointField &newPoints)
 Update for moving points.
void updateMesh ()
 Change global mesh data given a topological change. Does a.

Static Public Member Functions

template<class Type, class CombineOp, class TransformOp>
static void syncData (List< Type > &elems, const labelListList &slaves, const labelListList &transformedSlaves, const mapDistribute &slavesMap, const globalIndexAndTransform &, const CombineOp &cop, const TransformOp &top)
 Helper: synchronise data with transforms.
template<class Type, class CombineOp>
static void syncData (List< Type > &elems, const labelListList &slaves, const labelListList &transformedSlaves, const mapDistribute &slavesMap, const CombineOp &cop)
 Helper: synchronise data without transforms.
static void calcCellCells (const polyMesh &mesh, const labelUList &agglom, const label nLocalCoarse, const bool parallel, CompactListList< label > &cellCells)
 Determine (local or global) cellCells from mesh agglomeration.
static void calcCellCells (const polyMesh &mesh, const labelUList &agglom, const label nLocalCoarse, const bool parallel, CompactListList< label > &cellCells, CompactListList< scalar > &cellCellWeights)
 Determine (local or global) cellCells and face weights from mesh agglomeration.
static void calcCellCells (const polyMesh &mesh, CompactListList< label > &cellCells, const bool parallel=false)
 Determine (local or global) mesh connectivity.
static labelList calcCellCells (const polyMesh &mesh, const bitSet &selectedCells, CompactListList< label > &cellCells, const bool parallel=false)
 Determine (local or global) sub-mesh connectivity.
static labelList calcCellCells (const polyMesh &mesh, const labelUList &selectedCells, CompactListList< label > &cellCells, const bool parallel=false)
 Determine (local or global) sub-mesh connectivity.

Static Public Attributes

static const Foam::scalar matchTol_ = 1e-8
 Geometric tolerance (fraction of bounding box).

Detailed Description

Various mesh related information for a parallel run. Upon construction, constructs all info using parallel communication.

Requires:

  • all processor patches to have correct ordering.
  • all processorPatches to have their transforms set.

The shared point and edge addressing calculates addressing for points and edges on coupled patches. In the 'old' way a distinction was made between points/edges that are only on two processors and those that are on multiple processors. The problem is that those on multiple processors do not allow any transformations and require a global reduction on the master processor.

The alternative is to have an exchange schedule (through a 'mapDistribute') which sends all point/edge data (no distinction is made between those on two and those on more than two coupled patches) to the local 'master'. This master then does any calculation and sends the result back to the 'slave' points/edges. This only needs to be done on points on coupled faces. Any transformation is done using a predetermined set of transformations - since transformations have to be space filling only a certain number of transformation is supported.

The exchange needs

  • a field of data
  • a mapDistribute which does all parallel exchange and transformations This appends remote data to the end of the field.
  • a set of indices which indicate where to get untransformed data in the field
  • a set of indices which indicate where to get transformed data in the field
Note
  • compared to 17x nTotalFaces, nTotalPoints do not compensate for shared points since this would trigger full connectivity analysis
  • most calculation is demand driven and uses parallel communication so make sure to invoke on all processors at the same time
  • old sharedEdge calculation: currently an edge is considered shared if it uses two shared points and is used more than once. This is not correct on processor patches but it only slightly overestimates the number of shared edges. Doing full analysis of how many patches use the edge would be too complicated
See also
mapDistribute globalIndexAndTransform
Source files

Definition at line 104 of file globalMeshData.H.

Constructor & Destructor Documentation

◆ globalMeshData() [1/2]

globalMeshData ( const globalMeshData & )
delete

No copy construct.

References globalMeshData().

Referenced by globalMeshData(), and operator=().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ globalMeshData() [2/2]

globalMeshData ( const polyMesh & mesh)

Construct from mesh, derive rest (does parallel communication!).

Definition at line 1787 of file globalMeshData.C.

References mesh(), Foam::New(), and updateMesh().

Here is the call graph for this function:

◆ ~globalMeshData()

Destructor.

Definition at line 1808 of file globalMeshData.C.

Member Function Documentation

◆ operator=()

void operator= ( const globalMeshData & )
delete

No copy assignment.

References globalMeshData().

Here is the call graph for this function:

◆ ClassName()

ClassName ( "globalMeshData" )

Runtime type information.

◆ clearOut()

void clearOut ( )

Remove all demand driven data.

Definition at line 1812 of file globalMeshData.C.

Referenced by updateMesh().

Here is the caller graph for this function:

◆ mesh()

const polyMesh & mesh ( ) const
inlinenoexcept

Return the mesh reference.

Definition at line 430 of file globalMeshData.H.

References Foam::noexcept.

Referenced by calcCellCells(), calcCellCells(), calcCellCells(), calcCellCells(), calcCellCells(), globalMeshData(), and faGlobalMeshData::updateMesh().

Here is the caller graph for this function:

◆ parallel()

bool parallel ( ) const
inlinenoexcept

Does the mesh contain processor patches? (also valid when not running parallel).

Definition at line 439 of file globalMeshData.H.

References Foam::noexcept.

Referenced by calcCellCells(), calcCellCells(), calcCellCells(), calcCellCells(), and calcCellCells().

Here is the caller graph for this function:

◆ globalMeshPointAddr()

const globalIndex & globalMeshPointAddr ( ) const
inlinenoexcept

Global numbering for mesh points. Not compensated for duplicate points!

Definition at line 448 of file globalMeshData.H.

References Foam::noexcept.

◆ globalMeshFaceAddr()

const globalIndex & globalMeshFaceAddr ( ) const
inlinenoexcept

Global numbering for mesh faces. Not compensated for duplicate faces!

Definition at line 457 of file globalMeshData.H.

References Foam::noexcept.

◆ globalMeshCellAddr()

const globalIndex & globalMeshCellAddr ( ) const
inlinenoexcept

Global numbering for mesh cells.

Definition at line 465 of file globalMeshData.H.

References Foam::noexcept.

◆ nTotalPoints()

label nTotalPoints ( ) const
inlinenoexcept

Total global number of mesh points. Not compensated for duplicate points!

Definition at line 474 of file globalMeshData.H.

References Foam::noexcept.

Referenced by updateMesh().

Here is the caller graph for this function:

◆ nTotalFaces()

label nTotalFaces ( ) const
inlinenoexcept

Total global number of mesh faces. Not compensated for duplicate faces!

Definition at line 483 of file globalMeshData.H.

References Foam::noexcept.

Referenced by updateMesh().

Here is the caller graph for this function:

◆ nTotalCells()

label nTotalCells ( ) const
inlinenoexcept

Total global number of mesh cells.

Definition at line 491 of file globalMeshData.H.

References Foam::noexcept.

Referenced by meshRefinement::printMeshInfo(), and updateMesh().

Here is the caller graph for this function:

◆ topology()

const processorTopology & topology ( ) const
inlinenoexcept

The processor to processor topology.

Definition at line 502 of file globalMeshData.H.

References Foam::noexcept.

Referenced by addPatchCellLayer::calcExtrudeInfo(), FaceCellWave< Type, TrackingData >::handleProcPatches(), and Cloud< ParticleType >::move().

Here is the caller graph for this function:

◆ patchSchedule()

const lduSchedule & patchSchedule ( ) const
inlinenoexcept

Order in which the patches should be initialised/evaluated corresponding to the schedule.

Definition at line 511 of file globalMeshData.H.

References Foam::noexcept.

Referenced by faBoundaryMesh::calcGeometry(), faBoundaryMesh::movePoints(), pointBoundaryMesh::movePoints(), polyBoundaryMesh::movePoints(), faBoundaryMesh::updateMesh(), pointBoundaryMesh::updateMesh(), and polyBoundaryMesh::updateMesh().

Here is the caller graph for this function:

◆ processorPatches()

const labelList & processorPatches ( ) const
inlinenoexcept

Return list of processor patch labels.

(size of list = number of processor patches)

Definition at line 521 of file globalMeshData.H.

References Foam::noexcept.

Referenced by FaceCellWave< Type, TrackingData >::handleProcPatches(), and Cloud< ParticleType >::move().

Here is the caller graph for this function:

◆ processorPatchIndices()

const labelList & processorPatchIndices ( ) const
inlinenoexcept

Return list of indices into processorPatches_ for each patch.

Index = -1 for non-processor parches. (size of list = number of patches)

Definition at line 532 of file globalMeshData.H.

References Foam::noexcept.

◆ processorPatchNeighbours()

const labelList & processorPatchNeighbours ( ) const
inlinenoexcept

Return processorPatchIndices of the neighbours processor patches. -1 if not running parallel.

Definition at line 541 of file globalMeshData.H.

References Foam::noexcept.

Referenced by Cloud< ParticleType >::move().

Here is the caller graph for this function:

◆ nGlobalPoints()

Foam::label nGlobalPoints ( ) const

Return number of globally shared points.

Definition at line 2012 of file globalMeshData.C.

Referenced by sharedPoints(), syncTools::syncPointMap(), and faGlobalMeshData::updateMesh().

Here is the caller graph for this function:

◆ sharedPointLabels()

const Foam::labelList & sharedPointLabels ( ) const

Return indices of local points that are globally shared.

Definition at line 2022 of file globalMeshData.C.

Referenced by geometricSharedPoints(), sharedPointGlobalLabels(), sharedPoints(), syncTools::syncEdgeMap(), syncTools::syncPointMap(), and faGlobalMeshData::updateMesh().

Here is the caller graph for this function:

◆ sharedPointAddr()

const Foam::labelList & sharedPointAddr ( ) const

Return addressing into the complete globally shared points list.

Note: It is assumed that a (never constructed) complete list of globally shared points exists. The set of shared points on the current processor is a subset of all shared points. Shared point addressing gives the index in the list of all globally shared points for each of the locally shared points.

Definition at line 2032 of file globalMeshData.C.

Referenced by sharedPoints(), syncTools::syncEdgeMap(), syncTools::syncPointMap(), and faGlobalMeshData::updateMesh().

Here is the caller graph for this function:

◆ sharedPointGlobalLabels()

const Foam::labelList & sharedPointGlobalLabels ( ) const

Return shared point global labels. Tries to read 'pointProcAddressing' and returns list or -1 if none available.

Definition at line 1865 of file globalMeshData.C.

References Foam::endl(), forAll, polyMesh::meshSubDir, IOobjectOption::MUST_READ, pointLabels(), Foam::Pout, sharedPointGlobalLabels(), sharedPointLabels(), and IOobject::typeHeaderOk().

Referenced by sharedPointGlobalLabels().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sharedPoints()

Foam::pointField sharedPoints ( ) const

Collect coordinates of shared points on all processors. (does parallel communication!).

Note: not valid for cyclicParallel since shared cyclic points are merged into single global point. (use geometricSharedPoints instead)

Definition at line 1916 of file globalMeshData.C.

References UPstream::broadcast, forAll, UPstream::incrMsgType(), UPstream::master(), UPstream::masterNo(), UPstream::msgType(), nGlobalPoints(), UPstream::parRun(), pointLabels(), UPstream::scheduled, sharedPointAddr(), sharedPointLabels(), sharedPoints(), and UPstream::subProcs().

Referenced by geometricSharedPoints(), and sharedPoints().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ geometricSharedPoints()

Foam::pointField geometricSharedPoints ( ) const

Like sharedPoints but keeps cyclic points separate. (does geometric merging; uses matchTol_*bb as merging tolerance) Use sharedPoints() instead.

Definition at line 1982 of file globalMeshData.C.

References Pstream::combineReduce(), UPstream::incrMsgType(), Foam::inplaceMergePoints(), matchTol_, UPstream::msgType(), sharedPointLabels(), and sharedPoints().

Here is the call graph for this function:

◆ nGlobalEdges()

Foam::label nGlobalEdges ( ) const

Return number of globally shared edges.

Demand-driven calculation so call needs to be synchronous among processors!

Definition at line 2042 of file globalMeshData.C.

◆ sharedEdgeLabels()

const Foam::labelList & sharedEdgeLabels ( ) const

Return indices of local edges that are globally shared.

Demand-driven calculation so call needs to be synchronous among processors!

Definition at line 2052 of file globalMeshData.C.

◆ sharedEdgeAddr()

const Foam::labelList & sharedEdgeAddr ( ) const

Return addressing into the complete globally shared edge list.

The set of shared edges on the current processor is a subset of all shared edges. Shared edge addressing gives the index in the list of all globally shared edges for each of the locally shared edges. Demand-driven calculation so call needs to be synchronous among processors!

Definition at line 2062 of file globalMeshData.C.

◆ coupledPatch()

◆ coupledPatchMeshEdges()

const Foam::labelList & coupledPatchMeshEdges ( ) const

Return map from coupledPatch edges to mesh edges.

Definition at line 2133 of file globalMeshData.C.

References coupledPatch().

Referenced by coupledPatchMeshEdgeMap(), syncTools::getMasterEdges(), syncTools::syncEdgeList(), and syncTools::syncEdgeList().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ coupledPatchMeshEdgeMap()

const Foam::Map< Foam::label > & coupledPatchMeshEdgeMap ( ) const

Return map from mesh edges to coupledPatch edges.

Definition at line 2153 of file globalMeshData.C.

References coupledPatchMeshEdges(), and Foam::invertToMap().

Referenced by syncTools::syncEdgeList().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ globalTransforms()

const Foam::globalIndexAndTransform & globalTransforms ( ) const

◆ syncData() [1/2]

template<class Type, class CombineOp, class TransformOp>
void syncData ( List< Type > & elems,
const labelListList & slaves,
const labelListList & transformedSlaves,
const mapDistribute & slavesMap,
const globalIndexAndTransform & transforms,
const CombineOp & cop,
const TransformOp & top )
static

◆ syncData() [2/2]

template<class Type, class CombineOp>
void syncData ( List< Type > & elems,
const labelListList & slaves,
const labelListList & transformedSlaves,
const mapDistribute & slavesMap,
const CombineOp & cop )
static

Helper: synchronise data without transforms.

Definition at line 100 of file globalMeshDataTemplates.C.

References mapDistribute::distribute(), UList< T >::empty(), forAll, UPstream::incrMsgType(), UPstream::msgType(), List< label >::null(), mapDistribute::reverseDistribute(), and UList< T >::size().

Here is the call graph for this function:

◆ globalPointNumbering()

const Foam::globalIndex & globalPointNumbering ( ) const

Numbering of coupled points is according to coupledPatch.

Definition at line 2169 of file globalMeshData.C.

References coupledPatch(), UPstream::incrMsgType(), UPstream::msgType(), and nPoints.

Referenced by mergePoints().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ globalPointSlaves()

const Foam::labelListList & globalPointSlaves ( ) const

◆ globalPointTransformedSlaves()

const Foam::labelListList & globalPointTransformedSlaves ( ) const

◆ globalPointSlavesMap()

const Foam::mapDistribute & globalPointSlavesMap ( ) const

Definition at line 2226 of file globalMeshData.C.

Referenced by PatchTools::pointNormals(), PatchTools::pointNormals(), syncPointData(), syncTools::syncPointList(), and syncTools::syncPointList().

Here is the caller graph for this function:

◆ syncPointData()

template<class Type, class CombineOp, class TransformOp>
void syncPointData ( List< Type > & pointData,
const CombineOp & cop,
const TransformOp & top ) const

◆ globalEdgeNumbering()

const Foam::globalIndex & globalEdgeNumbering ( ) const

Definition at line 2236 of file globalMeshData.C.

References coupledPatch(), UPstream::incrMsgType(), and UPstream::msgType().

Here is the call graph for this function:

◆ globalEdgeSlaves()

◆ globalEdgeTransformedSlaves()

◆ globalEdgeSlavesMap()

◆ globalEdgeOrientation()

const Foam::bitSet & globalEdgeOrientation ( ) const

Is my edge same orientation as master edge.

Definition at line 2276 of file globalMeshData.C.

Referenced by syncTools::syncEdgeList(), and syncTools::syncEdgeList().

Here is the caller graph for this function:

◆ globalCoPointSlaves()

const Foam::labelListList & globalCoPointSlaves ( ) const

◆ globalCoPointSlavesMap()

const Foam::mapDistribute & globalCoPointSlavesMap ( ) const

◆ globalBoundaryFaceNumbering()

const Foam::globalIndex & globalBoundaryFaceNumbering ( ) const

Numbering of boundary faces is face-mesh.nInternalFaces().

Definition at line 2296 of file globalMeshData.C.

◆ globalPointBoundaryFaces()

const Foam::labelListList & globalPointBoundaryFaces ( ) const

Definition at line 2307 of file globalMeshData.C.

◆ globalPointTransformedBoundaryFaces()

const Foam::labelListList & globalPointTransformedBoundaryFaces ( ) const

Definition at line 2319 of file globalMeshData.C.

◆ globalPointBoundaryFacesMap()

const Foam::mapDistribute & globalPointBoundaryFacesMap ( ) const

Definition at line 2329 of file globalMeshData.C.

◆ boundaryCells()

const Foam::labelList & boundaryCells ( ) const

From boundary cell to mesh cell.

Definition at line 2340 of file globalMeshData.C.

◆ globalBoundaryCellNumbering()

const Foam::globalIndex & globalBoundaryCellNumbering ( ) const

Numbering of boundary cells is according to boundaryCells().

Definition at line 2350 of file globalMeshData.C.

◆ globalPointBoundaryCells()

const Foam::labelListList & globalPointBoundaryCells ( ) const

Definition at line 2361 of file globalMeshData.C.

◆ globalPointTransformedBoundaryCells()

const Foam::labelListList & globalPointTransformedBoundaryCells ( ) const

Definition at line 2373 of file globalMeshData.C.

◆ globalPointBoundaryCellsMap()

const Foam::mapDistribute & globalPointBoundaryCellsMap ( ) const

Definition at line 2383 of file globalMeshData.C.

◆ mergePoints() [1/2]

Foam::autoPtr< Foam::globalIndex > mergePoints ( labelList & pointToGlobal,
labelList & uniquePoints ) const

Helper for merging (collocated!) mesh point data.

Determines:

  • my unique indices
  • global numbering over all unique indices
  • the global number for all local points (so this will be local for my unique points)

Definition at line 2414 of file globalMeshData.C.

References mapDistributeBase::constructSize(), coupledPatch(), forAll, globalCoPointSlaves(), globalCoPointSlavesMap(), globalPointNumbering(), UPstream::incrMsgType(), PrimitivePatch< FaceList, PointField >::meshPoints(), UPstream::msgType(), PrimitivePatch< FaceList, PointField >::nPoints(), mapDistribute::reverseDistribute(), List< T >::setSize(), UList< T >::size(), syncData(), globalIndex::toGlobal(), and bitSet::unset().

Here is the call graph for this function:

◆ mergePoints() [2/2]

Foam::autoPtr< Foam::globalIndex > mergePoints ( const labelUList & meshPoints,
const Map< label > & meshPointMap,
labelList & pointToGlobal,
labelList & uniqueMeshPoints ) const

Helper for merging (collocated!) patch point data.

Takes maps from: local points to/from mesh. Determines

  • my unique points. These are mesh point indices, not patch point indices.
  • global numbering over all unique indices.
  • the global number for all local points.
Parameters
meshPointMapcurrently unused

Definition at line 2553 of file globalMeshData.C.

References HashTable< T, Key, Hash >::cfind(), mapDistributeBase::constructSize(), coupledPatch(), mapDistribute::distribute(), forAll, globalCoPointSlaves(), globalCoPointSlavesMap(), UPstream::incrMsgType(), Foam::labelMax, PrimitivePatch< FaceList, PointField >::meshPointMap(), UPstream::msgType(), PrimitivePatch< FaceList, PointField >::nPoints(), mapDistribute::reverseDistribute(), List< T >::setSize(), UList< T >::size(), syncData(), and globalIndex::toGlobal().

Here is the call graph for this function:

◆ movePoints()

void movePoints ( const pointField & newPoints)

Update for moving points.

Definition at line 2774 of file globalMeshData.C.

◆ updateMesh()

void updateMesh ( )

Change global mesh data given a topological change. Does a.

full parallel analysis to determine shared points and boundaries.

Definition at line 2783 of file globalMeshData.C.

References UList< T >::begin(), clearOut(), UPstream::commWarn(), UList< T >::data(), Foam::endl(), Foam::Info, UPstream::is_parallel(), matchTol_, UPstream::mpiAllGather(), UPstream::myProcNo(), UPstream::nProcs(), nTotalCells(), nTotalFaces(), nTotalPoints(), and Foam::Pout.

Referenced by globalMeshData().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calcCellCells() [1/5]

void calcCellCells ( const polyMesh & mesh,
const labelUList & agglom,
const label nLocalCoarse,
const bool parallel,
CompactListList< label > & cellCells )
static

Determine (local or global) cellCells from mesh agglomeration.

Agglomeration is local to the processor.

  • parallel = false Resulting connections are in local cell indices. Coupled across cyclics but not processor patches.
  • parallel = true Resulting connections are in global cell indices. Coupled across cyclics and processor patches.
Parameters
agglomThe cell agglomeration, negative agglomeration are excluded from the sub-mesh
nLocalCoarseThe number of unique, agglomerated cells
parallelUse global cell ids in parallel
[out]cellCellsthe mesh connectivity as CSR

Definition at line 298 of file globalMeshDataTopology.C.

References Foam::calcCellCellsImpl(), mesh(), and parallel().

Referenced by Foam::meshTools::bandCompression(), decompositionMethod::calcCellCells(), decompositionMethod::calcCellCells(), calcCellCells(), calcCellCells(), decompositionMethod::decompose(), metisLikeDecomp::decompose(), metisLikeDecomp::decompose(), multiLevelDecomp::decompose(), ptscotchDecomp::decompose(), ptscotchDecomp::decompose(), renumberMethod::renumber(), renumberMethod::renumber(), and springRenumber::renumber().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calcCellCells() [2/5]

void calcCellCells ( const polyMesh & mesh,
const labelUList & agglom,
const label nLocalCoarse,
const bool parallel,
CompactListList< label > & cellCells,
CompactListList< scalar > & cellCellWeights )
static

Determine (local or global) cellCells and face weights from mesh agglomeration.

Uses mag of faceArea as weights

Parameters
agglomThe cell agglomeration, negative agglomeration are excluded from the sub-mesh
nLocalCoarseThe number of unique, agglomerated cells
parallelUse global cell ids in parallel
[out]cellCellsthe mesh connectivity as CSR
[out]cellCellWeightsthe connectivity weights (face area)

Definition at line 318 of file globalMeshDataTopology.C.

References Foam::calcCellCellsImpl(), mesh(), and parallel().

Here is the call graph for this function:

◆ calcCellCells() [3/5]

void calcCellCells ( const polyMesh & mesh,
CompactListList< label > & cellCells,
const bool parallel = false )
static

Determine (local or global) mesh connectivity.

  • parallel = false Resulting connections are in local cell indices. Coupled across cyclics but not processor patches.
  • parallel = true Resulting connections are in global cell indices. Coupled across cyclics and processor patches.
Parameters
[out]cellCellsthe mesh connectivity as CSR
parallelUse global cell ids in parallel

Definition at line 342 of file globalMeshDataTopology.C.

References Foam::calcCellCellsImpl(), mesh(), and parallel().

Here is the call graph for this function:

◆ calcCellCells() [4/5]

Foam::labelList calcCellCells ( const polyMesh & mesh,
const bitSet & selectedCells,
CompactListList< label > & cellCells,
const bool parallel = false )
static

Determine (local or global) sub-mesh connectivity.

  • parallel = false Resulting connections are in local cell indices. Coupled across cyclics but not processor patches.
  • parallel = true Resulting connections are in global cell indices. Coupled across cyclics and processor patches.
Returns
the cellMap
Parameters
selectedCellsThe cell-subset
[out]cellCellsthe mesh connectivity as CSR
parallelUse global cell ids in parallel

Definition at line 360 of file globalMeshDataTopology.C.

References calcCellCells(), mesh(), parallel(), List< T >::resize(), and UList< T >::size().

Here is the call graph for this function:

◆ calcCellCells() [5/5]

Foam::labelList calcCellCells ( const polyMesh & mesh,
const labelUList & selectedCells,
CompactListList< label > & cellCells,
const bool parallel = false )
static

Determine (local or global) sub-mesh connectivity.

  • parallel = false Resulting connections are in local cell indices. Coupled across cyclics but not processor patches.
  • parallel = true Resulting connections are in global cell indices. Coupled across cyclics and processor patches.
Returns
the cellMap
Parameters
selectedCellsThe cell-subset
[out]cellCellsthe mesh connectivity as CSR
parallelUse global cell ids in parallel

Definition at line 424 of file globalMeshDataTopology.C.

References calcCellCells(), mesh(), parallel(), List< T >::resize(), and UList< T >::size().

Here is the call graph for this function:

Member Data Documentation

◆ matchTol_

const scalar matchTol_ = 1e-8
static

Geometric tolerance (fraction of bounding box).

Definition at line 401 of file globalMeshData.H.

Referenced by Foam::defineTypeNameAndDebug(), geometricSharedPoints(), and updateMesh().


The documentation for this class was generated from the following files: