Abstract base class for domain decomposition. More...
Public Member Functions | |
TypeName ("decompositionMethod") | |
declareRunTimeSelectionTable (autoPtr, decompositionMethod, dictionary,(const dictionary &decompDict, const word ®ionName),(decompDict, regionName)) | |
decompositionMethod (const dictionary &decompDict, const word ®ionName="") | |
virtual | ~decompositionMethod ()=default |
label | nDomains () const noexcept |
virtual bool | parallelAware () const =0 |
virtual labelList | decompose (const pointField &points, const scalarField &pointWeights) const |
virtual labelList | decompose (const pointField &points) const |
virtual labelList | decompose (const polyMesh &mesh, const pointField &points, const scalarField &pointWeights) const =0 |
virtual labelList | decompose (const polyMesh &mesh, const pointField &points) const |
virtual labelList | decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField ®ionPoints, const scalarField ®ionWeights) const |
virtual labelList | decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField ®ionPoints) const |
virtual labelList | decompose (const labelListList &globalCellCells, const pointField &cc, const scalarField &cWeights) const =0 |
virtual labelList | decompose (const labelListList &globalCellCells, const pointField &cc) const |
void | setConstraints (const polyMesh &mesh, boolList &blockedFace, PtrList< labelList > &specifiedProcessorFaces, labelList &specifiedProcessor, List< labelPair > &explicitConnections) const |
void | applyConstraints (const polyMesh &mesh, const boolList &blockedFace, const PtrList< labelList > &specifiedProcessorFaces, const labelList &specifiedProcessor, const List< labelPair > &explicitConnections, labelList &finalDecomp) const |
virtual labelList | decompose (const polyMesh &mesh, const scalarField &cellWeights, const boolList &blockedFace, const PtrList< labelList > &specifiedProcessorFaces, const labelList &specifiedProcessor, const List< labelPair > &explicitConnections) const |
labelList | decompose (const polyMesh &mesh, const scalarField &cWeights) const |
Static Public Member Functions | |
static label | nDomains (const dictionary &decompDict, const word ®ionName="") |
static const dictionary & | optionalRegionDict (const dictionary &decompDict, const word ®ionName) |
static autoPtr< decompositionMethod > | New (const dictionary &decompDict, const word ®ionName="") |
static void | calcCellCells (const polyMesh &mesh, const labelList &agglom, const label nLocalCoarse, const bool global, CompactListList< label > &cellCells) |
static void | calcCellCells (const polyMesh &mesh, const labelList &agglom, const label nLocalCoarse, const bool parallel, CompactListList< label > &cellCells, CompactListList< scalar > &cellCellWeights) |
Protected Types | |
enum | selectionType { DEFAULT = 0, EXACT = 1, MANDATORY = 2, NULL_DICT = 4 } |
Protected Member Functions | |
const dictionary & | findCoeffsDict (const word &coeffsName, int select=selectionType::DEFAULT) const |
Static Protected Member Functions | |
static const dictionary & | findCoeffsDict (const dictionary &dict, const word &coeffsName, int select=selectionType::DEFAULT) |
Protected Attributes | |
const dictionary & | decompDict_ |
const dictionary & | decompRegionDict_ |
label | nDomains_ |
PtrList< decompositionConstraint > | constraints_ |
Abstract base class for domain decomposition.
Definition at line 47 of file decompositionMethod.H.
|
protected |
Enumerator | |
---|---|
DEFAULT | Default request. |
EXACT | No fallback to "coeffs" if main name not found. |
MANDATORY | Fatal if dictionary could not be found. |
NULL_DICT | On failure, return dictionary::null instead of the top-level enclosing dictionary. |
Definition at line 72 of file decompositionMethod.H.
|
explicit |
Definition at line 318 of file decompositionMethod.C.
|
virtualdefault |
|
staticprotected |
Definition at line 237 of file decompositionMethod.C.
References Foam::abort(), Foam::cfindCoeffsDict(), dict, Foam::endl(), Foam::FatalIOError, dictionary::name(), and dictionary::null.
|
protected |
Definition at line 272 of file decompositionMethod.C.
References Foam::abort(), Foam::cfindCoeffsDict(), Foam::endl(), Foam::FatalIOError, and dictionary::null.
TypeName | ( | "decompositionMethod" | ) |
declareRunTimeSelectionTable | ( | autoPtr | , |
decompositionMethod | , | ||
dictionary | , | ||
(const dictionary &decompDict, const word ®ionName) | , | ||
(decompDict, regionName) | |||
) |
|
static |
Definition at line 76 of file decompositionMethod.C.
References Foam::endl(), dictionary::get(), Foam::nl, dictionary::readIfPresent(), regionName, and WarningInFunction.
|
static |
Definition at line 109 of file decompositionMethod.C.
References dictionary::findDict(), and regionName.
|
static |
Definition at line 337 of file decompositionMethod.C.
References Foam::endl(), Foam::exit(), Foam::FatalIOError, FatalIOErrorInLookup, dictionary::get(), Foam::Info, dictionary::readIfPresent(), and regionName.
Referenced by decompositionModel::decomposer().
|
inlinenoexcept |
Definition at line 205 of file decompositionMethod.H.
References decompositionMethod::nDomains_.
|
pure virtual |
Implemented in scotchDecomp, hierarchGeomDecomp, kahipDecomp, simpleGeomDecomp, metisDecomp, multiLevelDecomp, ptscotchDecomp, manualDecomp, structuredDecomp, noDecomp, and randomDecomp.
|
virtual |
Reimplemented in simpleGeomDecomp, geomDecomp, randomDecomp, and hierarchGeomDecomp.
Definition at line 1318 of file decompositionMethod.C.
References NotImplemented.
Referenced by meshRefinement::balance().
|
virtual |
Reimplemented in geomDecomp, simpleGeomDecomp, randomDecomp, and hierarchGeomDecomp.
Definition at line 1329 of file decompositionMethod.C.
References NotImplemented.
|
pure virtual |
Implemented in simpleGeomDecomp, scotchDecomp, multiLevelDecomp, metisLikeDecomp, ptscotchDecomp, structuredDecomp, hierarchGeomDecomp, manualDecomp, randomDecomp, and noDecomp.
|
virtual |
Reimplemented in simpleGeomDecomp, and hierarchGeomDecomp.
Definition at line 377 of file decompositionMethod.C.
|
virtual |
Reimplemented in scotchDecomp, metisLikeDecomp, and ptscotchDecomp.
Definition at line 389 of file decompositionMethod.C.
|
virtual |
Definition at line 430 of file decompositionMethod.C.
References mesh.
|
pure virtual |
Implemented in metisLikeDecomp, scotchDecomp, hierarchGeomDecomp, simpleGeomDecomp, ptscotchDecomp, multiLevelDecomp, manualDecomp, randomDecomp, noDecomp, and structuredDecomp.
|
virtual |
Reimplemented in hierarchGeomDecomp.
Definition at line 449 of file decompositionMethod.C.
|
static |
Definition at line 461 of file decompositionMethod.C.
References polyMesh::boundaryMesh(), polyMesh::faceNeighbour(), polyMesh::faceOwner(), forAll, HashSet::insert(), globalIndex::isLocal(), CompactListList::m(), mesh, UPstream::msgType(), primitiveMesh::nBoundaryFaces(), primitiveMesh::nInternalFaces(), CompactListList::offsets(), patches, CompactListList::setSize(), List::setSize(), CompactListList::size(), syncTools::swapBoundaryFaceList(), globalIndex::toGlobal(), globalIndex::toLocal(), UPstream::worldComm, and Foam::Zero.
Referenced by CuthillMcKeeRenumber::renumber(), and springRenumber::renumber().
|
static |
Definition at line 659 of file decompositionMethod.C.
References polyMesh::boundaryMesh(), primitiveMesh::faceAreas(), polyMesh::faceNeighbour(), polyMesh::faceOwner(), forAll, HashSet::insert(), globalIndex::isLocal(), CompactListList::m(), Foam::mag(), mesh, UPstream::msgType(), primitiveMesh::nBoundaryFaces(), primitiveMesh::nInternalFaces(), CompactListList::offsets(), patches, CompactListList::setSize(), List::setSize(), CompactListList::size(), syncTools::swapBoundaryFaceList(), globalIndex::toGlobal(), globalIndex::toLocal(), UPstream::worldComm, and Foam::Zero.
void setConstraints | ( | const polyMesh & | mesh, |
boolList & | blockedFace, | ||
PtrList< labelList > & | specifiedProcessorFaces, | ||
labelList & | specifiedProcessor, | ||
List< labelPair > & | explicitConnections | ||
) | const |
Definition at line 1210 of file decompositionMethod.C.
References PtrList::clear(), List::clear(), mesh, primitiveMesh::nFaces(), and List::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 | ||
) | const |
Definition at line 1239 of file decompositionMethod.C.
References mesh.
|
virtual |
Definition at line 860 of file decompositionMethod.C.
References Foam::BitOps::all(), polyMesh::boundaryMesh(), primitiveMesh::cellCentres(), Foam::BitOps::count(), FaceCellWave< Type, TrackingData >::data(), Foam::expressions::patchExpr::debug, Foam::endl(), Foam::exit(), f(), primitiveMesh::faceCentres(), polyMesh::faceNeighbour(), polyMesh::faceOwner(), polyMesh::faces(), Foam::FatalError, FatalErrorInFunction, forAll, polyMesh::globalData(), Foam::Info, primitiveMesh::isInternalFace(), VectorSpace< Vector< scalar >, scalar, 3 >::max, mesh, primitiveMesh::nCells(), primitiveMesh::nFaces(), primitiveMesh::nInternalFaces(), Foam::nl, regionSplit::nLocalRegions(), globalMeshData::nTotalCells(), UPstream::parRun(), patches, pFaces, primitiveMesh::pointFaces(), Foam::reduce(), Foam::returnReduce(), Foam::BitOps::set(), syncTools::swapBoundaryCellList(), and Foam::Zero.
Foam::labelList decompose | ( | const polyMesh & | mesh, |
const scalarField & | cWeights | ||
) | const |
Definition at line 1264 of file decompositionMethod.C.
References mesh.
|
protected |
Definition at line 85 of file decompositionMethod.H.
|
protected |
Definition at line 88 of file decompositionMethod.H.
|
protected |
Definition at line 91 of file decompositionMethod.H.
Referenced by decompositionMethod::nDomains().
|
protected |
Definition at line 94 of file decompositionMethod.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.