Go to the documentation of this file.
38 #ifndef decompositionMethod_H
39 #define decompositionMethod_H
61 bool constraintCompat(
const word& modelType)
const;
64 void readConstraints();
117 const word& coeffsName,
118 int select = selectionType::DEFAULT
135 const word& coeffsName,
136 int select = selectionType::DEFAULT
341 const label nLocalCoarse,
353 const label nLocalCoarse,
label nDomains_
Number of domains for the decomposition.
List< label > labelList
A List of labels.
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.
const dictionary & decompDict_
Top-level decomposition dictionary (eg, decomposeParDict)
A class for handling words, derived from Foam::string.
No fallback to "coeffs" if main name not found.
static const dictionary & optionalRegionDict(const dictionary &decompDict, const word ®ionName)
Return an optional region dictionary from "regions" sub-dictionary.
const dictionary & decompRegionDict_
Region-specific decomposition dictionary information.
A packed storage unstructured matrix of objects of type <T> using an offset table for access.
declareRunTimeSelectionTable(autoPtr, decompositionMethod, dictionary,(const dictionary &decompDict),(decompDict))
void setConstraints(const polyMesh &mesh, boolList &blockedFace, PtrList< labelList > &specifiedProcessorFaces, labelList &specifiedProcessor, List< labelPair > &explicitConnections) const
Helper: extract constraints:
Mesh consisting of general polyhedral cells.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
selectionType
Selection type when handling the coefficients dictionary.
virtual bool parallelAware() const =0
Is method parallel aware?
Fatal if dictionary could not be found.
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
virtual labelList decompose(const pointField &points) const
Decompose with uniform weights on the points.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
label nDomains() const
Number of domains.
Abstract base class for domain decomposition.
virtual ~decompositionMethod()=default
Destructor.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
virtual labelList decompose(const pointField &points, const scalarField &pointWeights) const
Return for every coordinate the wanted processor number.
TypeName("decompositionMethod")
Runtime type information.
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.
static const dictionary & findCoeffsDict(const dictionary &dict, const word &coeffsName, int select=selectionType::DEFAULT)
PtrList< decompositionConstraint > constraints_
Optional constraints.
static autoPtr< decompositionMethod > New(const dictionary &decompDict)
Return a reference to the selected decomposition method.