diff --git a/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C b/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C index 0cc795761c..743ec98a78 100644 --- a/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C +++ b/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C @@ -125,12 +125,6 @@ Foam::domainDecomposition::domainDecomposition } -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::domainDecomposition::~domainDecomposition() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // bool Foam::domainDecomposition::writeDecomposition(const bool decomposeSets) diff --git a/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.H b/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.H index 21b34f22ac..03776381a4 100644 --- a/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.H +++ b/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.H @@ -160,7 +160,7 @@ public: // Constructors //- Construct from IOobjects (for mesh and optional non-standard - // decomposeParDict location) + //- decomposeParDict location) domainDecomposition ( const IOobject& io, @@ -169,7 +169,7 @@ public: //- Destructor - ~domainDecomposition(); + ~domainDecomposition() = default; // Member Functions @@ -204,7 +204,6 @@ public: } // End namespace Foam - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository diff --git a/applications/utilities/parallelProcessing/decomposePar/faMeshDecomposition.C b/applications/utilities/parallelProcessing/decomposePar/faMeshDecomposition.C index 7e391f7d14..68affb4e4e 100644 --- a/applications/utilities/parallelProcessing/decomposePar/faMeshDecomposition.C +++ b/applications/utilities/parallelProcessing/decomposePar/faMeshDecomposition.C @@ -34,11 +34,11 @@ License #include "OSspecific.H" #include "Map.H" #include "globalMeshData.H" - +#include "decompositionModel.H" // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // -void faMeshDecomposition::distributeFaces() +void Foam::faMeshDecomposition::distributeFaces() { Info<< "\nCalculating distribution of faces" << endl; @@ -71,7 +71,7 @@ void faMeshDecomposition::distributeFaces() // located at the end of the faceProcAddressing, cutting it at // i = owner.size() will correctly decompose faMesh faces. // Vanja Skuric, 2016-04-21 - if (decompositionDict_.found("globalFaceZones")) + if (hasGlobalFaceZones_) { labelList faceProcAddressing ( @@ -153,25 +153,30 @@ void faMeshDecomposition::distributeFaces() << " s" << endl; } + // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -// from components -faMeshDecomposition::faMeshDecomposition(const fvMesh& mesh) +Foam::faMeshDecomposition::faMeshDecomposition +( + const fvMesh& mesh, + const fileName& decompDictFile +) : faMesh(mesh), - decompositionDict_ + decompDictFile_(decompDictFile), + nProcs_ ( - IOobject + decompositionMethod::nDomains ( - "decomposeParDict", - time().system(), - mesh, - IOobject::MUST_READ, - IOobject::NO_WRITE + decompositionModel::New + ( + mesh, + decompDictFile + ) ) ), - nProcs_(readInt(decompositionDict_.lookup("numberOfSubdomains"))), distributed_(false), + hasGlobalFaceZones_(false), faceToProc_(nFaces()), procFaceLabels_(nProcs_), procMeshEdgesMap_(nProcs_), @@ -190,22 +195,20 @@ faMeshDecomposition::faMeshDecomposition(const fvMesh& mesh) globallySharedPoints_(0), cyclicParallel_(false) { - if (decompositionDict_.found("distributed")) - { - distributed_ = Switch(decompositionDict_.lookup("distributed")); - } + const decompositionModel& model = decompositionModel::New + ( + mesh, + decompDictFile + ); + + model.readIfPresent("distributed", distributed_); + hasGlobalFaceZones_ = model.found("globalFaceZones"); } -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -faMeshDecomposition::~faMeshDecomposition() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -void faMeshDecomposition::decomposeMesh() +void Foam::faMeshDecomposition::decomposeMesh() { // Decide which cell goes to which processor distributeFaces(); @@ -273,7 +276,7 @@ void faMeshDecomposition::decomposeMesh() ) ); - HashTable > fvFaceProcAddressingHash; + Map