Abstract base class for decomposition. More...
Public Member Functions | |
TypeName ("decompositionMethod") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, decompositionMethod, decomposer,(const dictionary &decompositionDict),(decompositionDict)) | |
declareRunTimeSelectionTable (autoPtr, decompositionMethod, distributor,(const dictionary &decompositionDict),(decompositionDict)) | |
decompositionMethod (const dictionary &decompositionDict) | |
Construct given the decomposition dictionary. More... | |
decompositionMethod (const decompositionMethod &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~decompositionMethod () |
Destructor. More... | |
label | nDomains () const |
virtual labelList | decompose (const pointField &points, const scalarField &pointWeights) |
Return for every coordinate the wanted processor number. More... | |
virtual labelList | decompose (const pointField &) |
Like decompose but with uniform weights on the points. More... | |
virtual labelList | decompose (const polyMesh &mesh, const pointField &points, const scalarField &pointWeights)=0 |
Return for every coordinate the wanted processor number. Use the. More... | |
virtual labelList | decompose (const polyMesh &, const pointField &) |
Like decompose but with uniform weights on the points. More... | |
virtual labelList | decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField ®ionPoints, const scalarField ®ionWeights) |
Return for every coordinate the wanted processor number. Gets. More... | |
virtual labelList | decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField ®ionPoints) |
Like decompose but with uniform weights on the regions. More... | |
virtual labelList | decompose (const labelListList &globalCellCells, const pointField &cellCentres, const scalarField &cellWeights)=0 |
Return for every coordinate the wanted processor number. More... | |
virtual labelList | decompose (const labelListList &globalCellCells, const pointField &cellCentres) |
Like decompose but with uniform weights on the cells. More... | |
void | setConstraints (const polyMesh &mesh, boolList &blockedFace, PtrList< labelList > &specifiedProcessorFaces, labelList &specifiedProcessor, List< labelPair > &explicitConnections) |
Helper: extract constraints: More... | |
void | applyConstraints (const polyMesh &mesh, const boolList &blockedFace, const PtrList< labelList > &specifiedProcessorFaces, const labelList &specifiedProcessor, const List< labelPair > &explicitConnections, labelList &finalDecomp) |
Helper: apply constraints to a decomposition. This gives. More... | |
virtual labelList | decompose (const polyMesh &mesh, const scalarField &cellWeights, const boolList &blockedFace, const PtrList< labelList > &specifiedProcessorFaces, const labelList &specifiedProcessor, const List< labelPair > &explicitConnections) |
Decompose a mesh with constraints. More... | |
labelList | decompose (const polyMesh &mesh, const scalarField &cellWeights) |
Decompose a mesh. Apply all constraints from decomposeParDict. More... | |
void | operator= (const decompositionMethod &)=delete |
Disallow default bitwise assignment. More... | |
Static Public Member Functions | |
static autoPtr< decompositionMethod > | NewDecomposer (const dictionary &decompositionDict) |
Return a reference to the selected decomposition method. More... | |
static autoPtr< decompositionMethod > | NewDistributor (const dictionary &decompositionDict) |
Return a reference to the selected decomposition method. More... | |
static IOdictionary | decomposeParDict (const Time &time) |
Read and return the decomposeParDict. More... | |
static labelList | scaleWeights (const scalarField &weights, label &nWeights, const bool distributed=true) |
Convert the given scalar weights to labels. More... | |
static void | calcCellCells (const polyMesh &mesh, const labelList &agglom, const label nLocalCoarse, const bool global, CompactListList< label > &cellCells) |
Helper: determine (local or global) cellCells from mesh. More... | |
static void | calcCellCells (const polyMesh &mesh, const labelList &agglom, const label nLocalCoarse, const bool parallel, CompactListList< label > &cellCells, CompactListList< scalar > &cellCellWeights) |
Helper: determine (local or global) cellCells and face weights. More... | |
Protected Member Functions | |
label | nWeights (const pointField &points, const scalarField &pointWeights) const |
Return the number of weights per point. More... | |
label | checkWeights (const pointField &points, const scalarField &pointWeights) const |
Check the weights against the points. More... | |
Protected Attributes | |
dictionary | decompositionDict_ |
label | nProcessors_ |
PtrList< decompositionConstraint > | constraints_ |
Optional constraints. More... | |
Abstract base class for decomposition.
Definition at line 49 of file decompositionMethod.H.
decompositionMethod | ( | const dictionary & | decompositionDict | ) |
Construct given the decomposition dictionary.
Definition at line 99 of file decompositionMethod.C.
References List< T >::append(), decompositionMethod::constraints_, decompositionMethod::decompositionDict_, dict, forAllConstIter, dictionary::found(), UList< T >::last(), decompositionConstraint::New(), and dictionary::subDict().
|
delete |
Disallow default bitwise copy construction.
|
inlinevirtual |
Destructor.
Definition at line 137 of file decompositionMethod.H.
|
protected |
Return the number of weights per point.
Definition at line 54 of file decompositionMethod.C.
References Foam::exit(), Foam::FatalError, FatalErrorInFunction, points, Foam::returnReduce(), and List< T >::size().
|
protected |
Check the weights against the points.
and return the number of weights per point
Definition at line 77 of file decompositionMethod.C.
References Foam::exit(), Foam::FatalError, FatalErrorInFunction, points, and Foam::type().
TypeName | ( | "decompositionMethod" | ) |
Runtime type information.
declareRunTimeSelectionTable | ( | autoPtr | , |
decompositionMethod | , | ||
decomposer | , | ||
(const dictionary &decompositionDict) | , | ||
(decompositionDict) | |||
) |
declareRunTimeSelectionTable | ( | autoPtr | , |
decompositionMethod | , | ||
distributor | , | ||
(const dictionary &decompositionDict) | , | ||
(decompositionDict) | |||
) |
|
static |
Return a reference to the selected decomposition method.
Definition at line 141 of file decompositionMethod.C.
References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::Info, Foam::libs, dictionary::lookupBackwardsCompatible(), Foam::nl, and dlLibraryTable::open().
Referenced by multiLevel::multiLevel(), and structured::structured().
|
static |
Return a reference to the selected decomposition method.
Definition at line 181 of file decompositionMethod.C.
|
inline |
Definition at line 143 of file decompositionMethod.H.
References decompositionMethod::nProcessors_.
Referenced by multiLevel::multiLevel(), and structured::structured().
|
static |
Read and return the decomposeParDict.
Definition at line 220 of file decompositionMethod.C.
|
inlinevirtual |
Return for every coordinate the wanted processor number.
Reimplemented in geometric, hierarchical, and simple.
Definition at line 155 of file decompositionMethod.H.
References NotImplemented.
Referenced by meshRefinement::balance().
|
inlinevirtual |
Like decompose but with uniform weights on the points.
Reimplemented in geometric, simple, and hierarchical.
Definition at line 166 of file decompositionMethod.H.
References NotImplemented.
|
pure virtual |
Return for every coordinate the wanted processor number. Use the.
mesh connectivity (if needed)
Implemented in zoltan, scotch, ptscotch, parMetis, metis, structured, multiLevel, random, none, manual, hierarchical, and simple.
|
virtual |
Like decompose but with uniform weights on the points.
Reimplemented in hierarchical, and simple.
Definition at line 237 of file decompositionMethod.C.
References points, and List< T >::size().
|
virtual |
Return for every coordinate the wanted processor number. Gets.
passed agglomeration map (from fine to coarse cells) and coarse cell location. Can be overridden by decomposers that provide this functionality natively. Coarse cells are local to the processor (if in parallel). If you want to have coarse cells spanning processors use the globalCellCells instead.
Reimplemented in parMetis, metis, zoltan, scotch, and ptscotch.
Definition at line 249 of file decompositionMethod.C.
References forAll, UCompactListList< T >::list(), and List< T >::size().
|
virtual |
Like decompose but with uniform weights on the regions.
Definition at line 290 of file decompositionMethod.C.
References List< T >::size().
|
pure virtual |
Return for every coordinate the wanted processor number.
The connectivity is equal to mesh.cellCells() except for
Implemented in zoltan, scotch, ptscotch, parMetis, metis, structured, simple, random, none, multiLevel, manual, and hierarchical.
|
virtual |
Like decompose but with uniform weights on the cells.
Reimplemented in hierarchical.
Definition at line 309 of file decompositionMethod.C.
|
static |
Convert the given scalar weights to labels.
in the range 0-labelMax/2 Removes 0 weights and updates nWeights accordingly
Definition at line 321 of file decompositionMethod.C.
|
static |
Helper: determine (local or global) cellCells from mesh.
agglomeration. Agglomeration is local to the processor. local : connections are in local indices. Coupled across cyclics but not processor patches. global : connections are in global indices. Coupled across cyclics and processor patches.
Definition at line 431 of file decompositionMethod.C.
References polyMesh::boundaryMesh(), HashTable< T, Key, Hash >::clear(), polyPatch::coupled(), polyMesh::faceNeighbour(), polyMesh::faceOwner(), forAll, HashSet< Key, Hash >::insert(), globalIndex::isLocal(), UCompactListList< T >::m(), UPstream::msgType(), primitiveMesh::nFaces(), primitiveMesh::nInternalFaces(), UCompactListList< T >::offsets(), patches, patchi, CompactListList< T >::setSize(), UCompactListList< T >::size(), polyPatch::start(), syncTools::swapBoundaryFaceList(), globalIndex::toGlobal(), globalIndex::toLocal(), and UPstream::worldComm.
Referenced by renumberMethod::renumber(), CuthillMcKeeRenumber::renumber(), and springRenumber::renumber().
|
static |
Helper: determine (local or global) cellCells and face weights.
from mesh agglomeration. Uses mag of faceArea as weights
Definition at line 621 of file decompositionMethod.C.
References polyMesh::boundaryMesh(), HashTable< T, Key, Hash >::clear(), polyPatch::coupled(), polyMesh::faceNeighbour(), polyMesh::faceOwner(), forAll, HashSet< Key, Hash >::insert(), globalIndex::isLocal(), UCompactListList< T >::m(), primitiveMesh::magFaceAreas(), UPstream::msgType(), primitiveMesh::nFaces(), primitiveMesh::nInternalFaces(), UCompactListList< T >::offsets(), patches, patchi, CompactListList< T >::setSize(), UCompactListList< T >::size(), polyPatch::start(), syncTools::swapBoundaryFaceList(), globalIndex::toGlobal(), globalIndex::toLocal(), and UPstream::worldComm.
void setConstraints | ( | const polyMesh & | mesh, |
boolList & | blockedFace, | ||
PtrList< labelList > & | specifiedProcessorFaces, | ||
labelList & | specifiedProcessor, | ||
List< labelPair > & | explicitConnections | ||
) |
Helper: extract constraints:
blockedface: existing faces where owner and neighbour on same proc explicitConnections: sets of boundary faces ,, ,, specifiedProcessorFaces: groups of faces with all cells on same processor.
Definition at line 1156 of file decompositionMethod.C.
References List< T >::clear(), PtrList< T >::clear(), forAll, primitiveMesh::nFaces(), and List< T >::setSize().
Referenced by meshRefinement::balance().
void applyConstraints | ( | const polyMesh & | mesh, |
const boolList & | blockedFace, | ||
const PtrList< labelList > & | specifiedProcessorFaces, | ||
const labelList & | specifiedProcessor, | ||
const List< labelPair > & | explicitConnections, | ||
labelList & | finalDecomp | ||
) |
Helper: apply constraints to a decomposition. This gives.
constraints opportunity to modify decomposition in case the native decomposition method has not obeyed all constraints
Definition at line 1185 of file decompositionMethod.C.
References forAll.
|
virtual |
Decompose a mesh with constraints.
Constraints:
Definition at line 825 of file decompositionMethod.C.
References polyMesh::boundaryMesh(), primitiveMesh::cellCentres(), polyPatch::coupled(), UList< T >::data(), FaceCellWave< Type, TrackingData >::data(), Foam::endl(), Foam::exit(), f(), primitiveMesh::faceCentres(), polyMesh::faceNeighbour(), polyMesh::faceOwner(), polyMesh::faces(), Foam::FatalError, FatalErrorInFunction, Pair< Type >::first(), forAll, polyMesh::globalData(), Foam::Info, primitiveMesh::isInternalFace(), VectorSpace< Form, Cmpt, Ncmpts >::max, patchIdentifier::name(), primitiveMesh::nCells(), primitiveMesh::nFaces(), primitiveMesh::nInternalFaces(), regionSplit::nLocalRegions(), globalMeshData::nTotalCells(), UPstream::parRun(), patches, patchi, pFaces, primitiveMesh::pointFaces(), Foam::reduce(), Foam::returnReduce(), Pair< Type >::second(), UPtrList< T >::size(), List< T >::size(), polyPatch::start(), syncTools::swapBoundaryCellList(), and Foam::blendedInterfacialModel::valid().
Foam::labelList decompose | ( | const polyMesh & | mesh, |
const scalarField & | cellWeights | ||
) |
Decompose a mesh. Apply all constraints from decomposeParDict.
('preserveFaceZones' etc). Calls either
Definition at line 1210 of file decompositionMethod.C.
|
delete |
Disallow default bitwise assignment.
|
protected |
Definition at line 55 of file decompositionMethod.H.
Referenced by decompositionMethod::decompositionMethod().
|
protected |
Definition at line 57 of file decompositionMethod.H.
Referenced by geometric::geometric(), and decompositionMethod::nDomains().
|
protected |
Optional constraints.
Definition at line 60 of file decompositionMethod.H.
Referenced by decompositionMethod::decompositionMethod().