Go to the documentation of this file.
52 Foam::structuredDecomp::structuredDecomp(
const dictionary& decompDict)
55 methodDict_(findCoeffsDict(typeName +
"Coeffs",
selectionType::MANDATORY)),
56 patches_(methodDict_.get<
wordRes>(
"patches"))
67 return method_().parallelAware();
82 for (
const label patchi : patchIDs)
84 nFaces += pbm[patchi].size();
89 for (
const label patchi : patchIDs)
105 labelList subDecomp(method_().decompose(subMesh, subCc, subWeights));
112 finalDecomp[subsetter.
cellMap()[i]] = subDecomp[i];
123 for (
const label patchi : patchIDs)
129 patchFaces[nFaces] = pp.
start()+i;
147 bool haveWarned =
false;
148 forAll(finalDecomp, celli)
150 if (!cellData[celli].valid(deltaCalc.data()))
155 <<
"Did not visit some cells, e.g. cell " << celli
157 <<
"Assigning these cells to domain 0." <<
endl;
160 finalDecomp[celli] = 0;
164 finalDecomp[celli] = cellData[celli].
data();
addToRunTimeSelectionTable(decompositionMethod, kahipDecomp, dictionary)
For use with FaceCellWave. Determines topological distance to starting faces. Templated on passive tr...
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...
label nFaces() const
Number of mesh faces.
label nTotalCells() const
Return total number of cells in decomposed mesh.
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.
entry * set(entry *entryPtr)
Assign a new entry, overwriting any existing entry.
Mesh consisting of general polyhedral cells.
#define forAll(list, i)
Loop across all elements in list.
selectionType
Selection type when handling the coefficients dictionary.
label nCells() const
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,...
label nDomains() const
Number of domains.
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.
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.
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.
static autoPtr< decompositionMethod > New(const dictionary &decompDict)
Return a reference to the selected decomposition method.
virtual labelList decompose(const polyMesh &mesh, const pointField &points, const scalarField &pointWeights) const
Return for every coordinate the wanted processor number.