diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/backgroundMeshDecomposition/backgroundMeshDecomposition.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/backgroundMeshDecomposition/backgroundMeshDecomposition.C index 5bd7d9f36f..be04c25286 100644 --- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/backgroundMeshDecomposition/backgroundMeshDecomposition.C +++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/backgroundMeshDecomposition/backgroundMeshDecomposition.C @@ -803,18 +803,13 @@ Foam::backgroundMeshDecomposition::backgroundMeshDecomposition bFTreePtr_(), allBackgroundMeshBounds_(Pstream::nProcs()), globalBackgroundBounds_(), - decomposeDict_ + decomposerPtr_ ( - IOobject + decompositionMethod::NewDecomposer ( - "decomposeParDict", - runTime_.system(), - runTime_, - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE + decompositionMethod::decomposeParDict(runTime) ) ), - decomposerPtr_(decompositionMethod::New(decomposeDict_)), spanScale_(coeffsDict.lookup("spanScale")), minCellSizeLimit_ ( @@ -831,15 +826,6 @@ Foam::backgroundMeshDecomposition::backgroundMeshDecomposition << exit(FatalError); } - if (!decomposerPtr_().parallelAware()) - { - FatalErrorInFunction - << "You have selected decomposition method " - << decomposerPtr_().typeName - << " which is not parallel aware." << endl - << exit(FatalError); - } - Info<< nl << "Building initial background mesh decomposition" << endl; initialRefinement(); diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/backgroundMeshDecomposition/backgroundMeshDecomposition.H b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/backgroundMeshDecomposition/backgroundMeshDecomposition.H index e3a5afca11..62697a9935 100644 --- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/backgroundMeshDecomposition/backgroundMeshDecomposition.H +++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/backgroundMeshDecomposition/backgroundMeshDecomposition.H @@ -124,9 +124,6 @@ class backgroundMeshDecomposition // a point that is not found on any processor is in the domain at all treeBoundBox globalBackgroundBounds_; - //- Decomposition dictionary - IOdictionary decomposeDict_; - //- Decomposition method autoPtr decomposerPtr_; diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/foamyHexMeshBackgroundMesh.C b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/foamyHexMeshBackgroundMesh.C index 2fbdd1a096..262c1ed647 100644 --- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/foamyHexMeshBackgroundMesh.C +++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMeshBackgroundMesh/foamyHexMeshBackgroundMesh.C @@ -522,27 +522,18 @@ int main(int argc, char *argv[]) printMeshData(mesh); // Allocate a decomposer - IOdictionary decompositionDict - ( - IOobject - ( - "decomposeParDict", - runTime.system(), - mesh, - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE - ) - ); - autoPtr decomposer ( - decompositionMethod::New + decompositionMethod::NewDecomposer ( - decompositionDict + decompositionMethod::decomposeParDict(runTime) ) ); - labelList decomp = decomposer().decompose(mesh, mesh.cellCentres()); + const labelList decomp + ( + decomposer().decompose(mesh, mesh.cellCentres()) + ); // Global matching tolerance const scalar tolDim = getMergeDistance diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C index 334ac2eab9..cf09bb1132 100644 --- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C +++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C @@ -753,23 +753,12 @@ int main(int argc, char *argv[]) const Switch keepPatches(meshDict.lookupOrDefault("keepPatches", false)); - // Read decomposePar dictionary dictionary decomposeDict; { if (Pstream::parRun()) { - decomposeDict = IOdictionary - ( - IOobject - ( - "decomposeParDict", - runTime.system(), - mesh, - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE - ) - ); + decomposeDict = decompositionMethod::decomposeParDict(runTime); } else { @@ -1220,30 +1209,14 @@ int main(int argc, char *argv[]) // Decomposition autoPtr decomposerPtr ( - decompositionMethod::New - ( - decomposeDict - ) + decompositionMethod::NewDistributor(decomposeDict) ); decompositionMethod& decomposer = decomposerPtr(); - if (Pstream::parRun() && !decomposer.parallelAware()) - { - FatalErrorInFunction - << "You have selected decomposition method " - << decomposer.typeName - << " which is not parallel aware." << endl - << "Please select one that is (hierarchical, ptscotch)" - << exit(FatalError); - } - // Mesh distribution engine (uses tolerance to reconstruct meshes) fvMeshDistribute distributor(mesh); - - - // Now do the real work -refinement -snapping -layers // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C b/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C index 98a1b23250..70a8cb6070 100644 --- a/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C +++ b/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C @@ -844,9 +844,9 @@ int main(int argc, char *argv[]) bool oldParRun = UPstream::parRun(); UPstream::parRun() = false; - autoPtr decomposePtr = decompositionMethod::New + autoPtr decomposePtr ( - decomposeDict + decompositionMethod::NewDecomposer(decomposeDict) ); labelList cellToRegion diff --git a/applications/utilities/parallelProcessing/decomposePar/Make/files b/applications/utilities/parallelProcessing/decomposePar/Make/files index cad5ac1ce3..125f6b81e7 100644 --- a/applications/utilities/parallelProcessing/decomposePar/Make/files +++ b/applications/utilities/parallelProcessing/decomposePar/Make/files @@ -3,6 +3,7 @@ domainDecomposition.C domainDecompositionMesh.C domainDecompositionDistribute.C dimFieldDecomposer.C +fvFieldDecomposer.C pointFieldDecomposer.C lagrangianFieldDecomposer.C diff --git a/applications/utilities/parallelProcessing/decomposePar/Make/options b/applications/utilities/parallelProcessing/decomposePar/Make/options index 3fa4185942..ca546847e5 100644 --- a/applications/utilities/parallelProcessing/decomposePar/Make/options +++ b/applications/utilities/parallelProcessing/decomposePar/Make/options @@ -1,5 +1,4 @@ EXE_INC = \ - -I$(LIB_SRC)/parallel/decompose/decompose/lnInclude \ -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/dynamicMesh/lnInclude \ @@ -9,7 +8,6 @@ EXE_INC = \ EXE_LIBS = \ -ldynamicMesh \ - -ldecompose \ -lgenericPatchFields \ -ldecompositionMethods -L$(FOAM_LIBBIN)/dummy -lmetisDecomp -lscotchDecomp \ -llagrangian \ diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C index d4eca035fa..b558b547f7 100644 --- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C +++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C @@ -79,10 +79,12 @@ Usage \*---------------------------------------------------------------------------*/ -#include "OSspecific.H" -#include "fvCFD.H" -#include "IOobjectList.H" #include "domainDecomposition.H" +#include "decompositionMethod.H" +#include "argList.H" +#include "timeSelector.H" +#include "regionProperties.H" + #include "labelIOField.H" #include "labelFieldIOField.H" #include "scalarIOField.H" @@ -95,16 +97,14 @@ Usage #include "symmTensorFieldIOField.H" #include "tensorIOField.H" #include "tensorFieldIOField.H" -#include "pointFields.H" -#include "regionProperties.H" -#include "systemDict.H" #include "readFields.H" #include "dimFieldDecomposer.H" #include "fvFieldDecomposer.H" #include "pointFieldDecomposer.H" #include "lagrangianFieldDecomposer.H" -#include "decompositionModel.H" + +using namespace Foam; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -277,9 +277,6 @@ int main(int argc, char *argv[]) bool forceOverwrite = args.optionFound("force"); bool ifRequiredDecomposition = args.optionFound("ifRequired"); - const word dictName("decomposeParDict"); - - if (decomposeGeomOnly) { Info<< "Skipping decomposing fields" @@ -381,16 +378,10 @@ int main(int argc, char *argv[]) // Determine the existing processor count directly label nProcs = fileHandler().nProcs(runTime.path(), regionDir); - // Get the dictionary IO - const typeIOobject dictIO - ( - systemDictIO(dictName, args, runTime, regionName) - ); - - // Get requested numberOfSubdomains. Note: have no mesh yet so - // cannot use decompositionModel::New + // Get requested numberOfSubdomains const label nDomains = - IOdictionary(dictIO).lookup