Go to the documentation of this file.
51 Foam::structuredDecomp::structuredDecomp
58 methodDict_(findCoeffsDict(typeName +
"Coeffs", selectionType::MANDATORY)),
59 patches_(methodDict_.get<
wordRes>(
"patches"))
61 methodDict_.set(
"numberOfSubdomains", nDomains());
70 return method_().parallelAware();
85 for (
const label patchi : patchIDs)
87 nFaces += pbm[patchi].size();
92 for (
const label patchi : patchIDs)
108 labelList subDecomp(method_().decompose(subMesh, subCc, subWeights));
115 finalDecomp[subsetter.
cellMap()[i]] = subDecomp[i];
126 for (
const label patchi : patchIDs)
132 patchFaces[nFaces] = pp.
start()+i;
150 bool haveWarned =
false;
151 forAll(finalDecomp, celli)
153 if (!cellData[celli].valid(deltaCalc.data()))
158 <<
"Did not visit some cells, e.g. cell " << celli
160 <<
"Assigning these cells to domain 0." <<
endl;
163 finalDecomp[celli] = 0;
167 finalDecomp[celli] = cellData[celli].
data();
addToRunTimeSelectionTable(decompositionMethod, kahipDecomp, dictionary)
For use with FaceCellWave. Determines topological distance to starting faces. Templated on passive tr...
A class for handling words, derived from Foam::string.
const labelList & cellMap() const
Return cell map.
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO.
Given the original mesh and the list of selected cells, it creates the mesh consisting only of the de...
const TrackingData & data() const
Additional data to be passed into container.
const polyBoundaryMesh & boundaryMesh() const
Return boundary mesh.
Ostream & endl(Ostream &os)
Add newline and flush stream.
Mesh consisting of general polyhedral cells.
#define forAll(list, i)
Loop across all elements in list.
label nCells() const noexcept
Number of mesh cells.
const fvMesh & subMesh() const
Return reference to subset mesh.
A patch is a list of labels that address the faces in the global face list.
virtual bool parallelAware() const
Is method parallel aware.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Macros for easy insertion into run-time selection tables.
Abstract base class for domain decomposition.
Mesh data needed to do the Finite Volume discretisation.
const labelUList & faceCells() const
Return face-cell addressing.
label start() const
Return start label of this patch in the polyMesh face list.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
Wave propagation of information through grid. Every iteration information goes through one layer of c...
const vectorField & cellCentres() const
A List of wordRe with additional matching capabilities.
labelHashSet patchSet(const UList< wordRe > &patchNames, const bool warnNotFound=true, const bool useGroups=true) const
Return the set of patch IDs corresponding to the given names.
bool insert(const Key &key)
Insert a new entry, not overwriting existing entries.
label nTotalCells() const noexcept
Return total number of cells in decomposed mesh.
label nFaces() const noexcept
Number of mesh faces.
const globalMeshData & globalData() const
Return parallel info.
defineTypeNameAndDebug(combustionModel, 0)
#define WarningInFunction
Report a warning using Foam::Warning.
Smooth ATC in cells next to a set of patches supplied by type.
virtual labelList decompose(const polyMesh &mesh, const pointField &points, const scalarField &pointWeights) const
Return for every coordinate the wanted processor number.