Metis domain decomposition. More...


Public Member Functions | |
| TypeName ("metis") | |
| Runtime type information. More... | |
| metisDecomp (const dictionary &decompDict, const word ®ionName="") | |
| Construct given decomposition dictionary and optional region name. More... | |
| virtual | ~metisDecomp ()=default |
| Destructor. More... | |
| virtual bool | parallelAware () const |
| Is method parallel aware? More... | |
Public Member Functions inherited from metisLikeDecomp | |
| virtual | ~metisLikeDecomp ()=default |
| Destructor. More... | |
| virtual labelList | decompose (const polyMesh &mesh, const pointField &points, const scalarField &pointWeights) const |
| Return for every coordinate the wanted processor number. More... | |
| virtual labelList | decompose (const polyMesh &mesh, const labelList &agglom, const pointField ®ionPoints, const scalarField ®ionWeights) const |
| Return for every coordinate the wanted processor number. More... | |
| virtual labelList | decompose (const labelListList &globalCellCells, const pointField &cellCentres, const scalarField &cellWeights) const |
| Return for every coordinate the wanted processor number. More... | |
| virtual labelList | decompose (const pointField &points, const scalarField &pointWeights) const |
| Inherit decompose from decompositionMethod. More... | |
| virtual labelList | decompose (const pointField &points) const |
| Inherit decompose from decompositionMethod. More... | |
| virtual labelList | decompose (const polyMesh &mesh, const pointField &points, const scalarField &pointWeights) const=0 |
| Inherit decompose from decompositionMethod. More... | |
| virtual labelList | decompose (const polyMesh &mesh, const pointField &points) const |
| Inherit decompose from decompositionMethod. More... | |
| virtual labelList | decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField ®ionPoints, const scalarField ®ionWeights) const |
| Inherit decompose from decompositionMethod. More... | |
| virtual labelList | decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField ®ionPoints) const |
| Inherit decompose from decompositionMethod. More... | |
| virtual labelList | decompose (const labelListList &globalCellCells, const pointField &cc, const scalarField &cWeights) const=0 |
| Inherit decompose from decompositionMethod. More... | |
| virtual labelList | decompose (const labelListList &globalCellCells, const pointField &cc) const |
| Inherit decompose from decompositionMethod. More... | |
| virtual labelList | decompose (const polyMesh &mesh, const scalarField &cellWeights, const boolList &blockedFace, const PtrList< labelList > &specifiedProcessorFaces, const labelList &specifiedProcessor, const List< labelPair > &explicitConnections) const |
| Inherit decompose from decompositionMethod. More... | |
| labelList | decompose (const polyMesh &mesh, const scalarField &cWeights) const |
| Inherit decompose from decompositionMethod. More... | |
Public Member Functions inherited from decompositionMethod | |
| TypeName ("decompositionMethod") | |
| Runtime type information. More... | |
| declareRunTimeSelectionTable (autoPtr, decompositionMethod, dictionary,(const dictionary &decompDict, const word ®ionName),(decompDict, regionName)) | |
| decompositionMethod (const dictionary &decompDict, const word ®ionName="") | |
| Construct given the decomposition dictionary, optionally region-specific. More... | |
| virtual | ~decompositionMethod ()=default |
| Destructor. More... | |
| label | nDomains () const noexcept |
| Number of domains. More... | |
| virtual labelList | decompose (const pointField &points, const scalarField &pointWeights) const |
| Return the wanted processor number for every coordinate. More... | |
| virtual labelList | decompose (const pointField &points) const |
| Decompose with uniform weights on the points. More... | |
| virtual labelList | decompose (const polyMesh &mesh, const pointField &points) const |
| Decompose with uniform weights on the points. More... | |
| virtual labelList | decompose (const polyMesh &mesh, const labelList &cellToRegion, const pointField ®ionPoints) const |
| Like decompose but with uniform weights on the regions. More... | |
| virtual labelList | decompose (const labelListList &globalCellCells, const pointField &cc) const |
| 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) const |
| 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) const |
| Helper: apply constraints to a decomposition. More... | |
| 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 |
| Decompose a mesh. More... | |
Protected Member Functions | |
| virtual label | decomposeSerial (const labelList &adjncy, const labelList &xadj, const List< scalar > &cellWeights, labelList &decomp) const |
| Decompose non-parallel. More... | |
| metisDecomp (const metisDecomp &)=delete | |
| No copy construct. More... | |
| void | operator= (const metisDecomp &)=delete |
| No copy assignment. More... | |
Protected Member Functions inherited from metisLikeDecomp | |
| virtual label | decomposeGeneral (const labelList &adjncy, const labelList &xadj, const List< scalar > &cellWeights, labelList &decomp) const |
| Serial and/or collect/distribute for parallel operation. More... | |
| metisLikeDecomp (const metisLikeDecomp &)=delete | |
| No copy construct. More... | |
| void | operator= (const metisLikeDecomp &)=delete |
| No copy assignment. More... | |
| metisLikeDecomp (const word &derivedType, const dictionary &decompDict, int select=selectionType::NULL_DICT) | |
| Construct for derived type name and decomposition dictionary. More... | |
| metisLikeDecomp (const word &derivedType, const dictionary &decompDict, const word ®ionName, int select=selectionType::NULL_DICT) | |
| Construct for derived type name, decomposition dictionary and (optional) region name. More... | |
Protected Member Functions inherited from decompositionMethod | |
| const dictionary & | findCoeffsDict (const word &coeffsName, int select=selectionType::DEFAULT) const |
| Locate coeffsName dictionary or the fallback "coeffs" dictionary. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from decompositionMethod | |
| static label | nDomains (const dictionary &decompDict, const word ®ionName="") |
Return region-specific or top-level numberOfSubdomains entry. More... | |
| static const dictionary & | optionalRegionDict (const dictionary &decompDict, const word ®ionName) |
| Return an optional region-specific dictionary from "regions" sub-dictionary, or dictionary::null on failure. More... | |
| static autoPtr< decompositionMethod > | New (const dictionary &decompDict, const word ®ionName="") |
| Return a reference to the selected decomposition method, optionally region-specific. 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 Types inherited from decompositionMethod | |
| enum | selectionType { DEFAULT = 0, EXACT = 1, MANDATORY = 2, NULL_DICT = 4 } |
| Selection type when handling the coefficients dictionary. More... | |
Static Protected Member Functions inherited from decompositionMethod | |
| static const dictionary & | findCoeffsDict (const dictionary &dict, const word &coeffsName, int select=selectionType::DEFAULT) |
| Locate coeffsName dictionary or the fallback "coeffs" dictionary within an enclosing dictionary. More... | |
Protected Attributes inherited from metisLikeDecomp | |
| const dictionary & | coeffsDict_ |
| Coefficients for all derived methods. More... | |
Protected Attributes inherited from decompositionMethod | |
| const dictionary & | decompDict_ |
| Top-level decomposition dictionary (eg, decomposeParDict) More... | |
| const dictionary & | decompRegionDict_ |
| Region-specific decomposition dictionary information. More... | |
| label | nDomains_ |
| Number of domains for the decomposition. More... | |
| PtrList< decompositionConstraint > | constraints_ |
| Optional constraints. More... | |
Metis domain decomposition.
When run in parallel will collect the entire graph on to the master, decompose and send back.
Coefficients dictionary: metisCoeffs, coeffs.
numberOfSubdomains N;
method metis;
metisCoeffs
{
method recursive; // k-way
options ( ...);
processorWeights ( ... );
}
Method coefficients:
| Property | Description | Required | Default |
|---|---|---|---|
method | recursive / k-way | no | recursive |
options | metis options | no | |
processorWeights | list of weighting per partition | no |
Definition at line 88 of file metisDecomp.H.
|
protecteddelete |
No copy construct.
|
explicit |
Construct given decomposition dictionary and optional region name.
Definition at line 68 of file dummyMetisDecomp.C.
|
virtualdefault |
Destructor.
|
protectedvirtual |
Decompose non-parallel.
Implements metisLikeDecomp.
Definition at line 51 of file dummyMetisDecomp.C.
References Foam::exit(), Foam::FatalError, FatalErrorInFunction, and notImplementedMessage.

|
protecteddelete |
No copy assignment.
| TypeName | ( | "metis" | ) |
Runtime type information.
|
inlinevirtual |
Is method parallel aware?
(i.e. does it synchronize domains across proc boundaries)
Implements decompositionMethod.
Definition at line 147 of file metisDecomp.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.