36 namespace decompositionMethods
65 methodDict_(decompositionDict_.optionalSubDict(typeName +
"Coeffs")),
66 patches_(methodDict_.lookup(
"patches"))
88 nFaces += pbm[iter.key()].
size();
95 const labelUList& fc = pbm[iter.key()].faceCells();
110 labelList subDecomp(method_().decompose(subMesh, subCc, subWeights));
117 finalDecomp[subsetter.
cellMap()[i]] = subDecomp[i];
134 patchFaces[nFaces] = pp.
start()+i;
152 bool haveWarned =
false;
153 forAll(finalDecomp, celli)
155 if (!cellData[celli].
valid(deltaCalc.
data()))
160 <<
"Did not visit some cells, e.g. cell " << celli
162 <<
"Assigning these cells to domain 0." <<
endl;
165 finalDecomp[celli] = 0;
169 finalDecomp[celli] = cellData[celli].
data();
#define forAll(list, i)
Loop across all elements in list.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
Macros for easy insertion into run-time selection tables.
Wave propagation of information through grid. Every iteration information goes through one layer of c...
const TrackingData & data() const
Additional data to be passed into container.
bool insert(const Key &key)
Insert a new entry.
void size(const label)
Override size to be inconsistent with allocated storage.
static const List< label > & null()
Return a null List.
T * data()
Return a pointer to the first data element,.
label size() const
Return the number of elements in the UPtrList.
Abstract base class for decomposition.
static autoPtr< decompositionMethod > NewDecomposer(const dictionary &decompositionDict)
Return a reference to the selected decomposition method.
Decomposition by walking out decomposition of patch cells mesh.
structured(const dictionary &decompositionDict)
Construct given the decomposition dictionary.
virtual labelList decompose(const polyMesh &mesh, const pointField &points, const scalarField &pointWeights)
Return for every coordinate the wanted processor number. Use the.
A list of keyword definitions, which are a keyword followed by any number of values (e....
void set(entry *)
Assign a new entry, overwrite any existing entry.
Post-processing mesh subset tool. Given the original mesh and the list of selected cells,...
const labelList & cellMap() const
Return cell map.
void setLargeCellSubset(const labelList ®ion, const label currentRegion, const label patchID=-1, const bool syncCouples=true)
Set the subset from all cells with region == currentRegion.
const fvMesh & subMesh() const
Return reference to subset mesh.
Mesh data needed to do the Finite Volume discretisation.
label nTotalCells() const
Return total number of cells in decomposed mesh.
labelHashSet patchSet(const UList< wordRe > &patchNames, const bool warnNotFound=true, const bool usePatchGroups=true) const
Return the set of patch indices corresponding to the given names.
Mesh consisting of general polyhedral cells.
const globalMeshData & globalData() const
Return parallel info.
const polyBoundaryMesh & boundaryMesh() const
Return boundary mesh.
A patch is a list of labels that address the faces in the global face list.
label start() const
Return start label of this patch in the polyMesh face list.
const labelUList & faceCells() const
Return face-cell addressing.
const vectorField & cellCentres() const
For use with FaceCellWave. Determines topological distance to starting faces.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
#define WarningInFunction
Report a warning using Foam::Warning.
bool valid(const PtrList< ModelType > &l)
defineTypeNameAndDebug(metis, 0)
addToRunTimeSelectionTable(decompositionMethod, metis, decomposer)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Ostream & endl(Ostream &os)
Add newline and flush stream.