From a9ffcab5af8df06e5e4af1cac326a1cda7c02316 Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Thu, 9 Nov 2017 12:30:24 +0100 Subject: [PATCH] ENH: region-wise decomposition specification for decomposeParDict Within decomposeParDict, it is now possible to specify a different decomposition method, methods coefficients or number of subdomains for each region individually. The top-level numberOfSubdomains remains mandatory, since this specifies the number of domains for the entire simulation. The individual regions may use the same number or fewer domains. Any optional method coefficients can be specified in a general "coeffs" entry or a method-specific one, eg "metisCoeffs". For multiLevel, only the method-specific "multiLevelCoeffs" dictionary is used, and is also mandatory. ---- ENH: shortcut specification for multiLevel. In addition to the longer dictionary form, it is also possible to use a shorter notation for multiLevel decomposition when the same decomposition method applies to each level. --- .../decomposePar/decomposePar.C | 10 +- .../decomposePar/decomposeParDict | 245 +++++++----- .../decomposePar/domainDecomposition.C | 9 +- .../domainDecompositionDistribute.C | 6 +- .../preProcessing/mapFields/mapFields.C | 4 +- .../kahipDecomp/dummyKahipDecomp.C | 14 +- .../metisDecomp/dummyMetisDecomp.C | 14 +- .../ptscotchDecomp/dummyPtscotchDecomp.C | 16 +- .../scotchDecomp/dummyScotchDecomp.C | 14 +- .../decompose/decompose/decompositionModel.C | 1 + .../decompose/decompose/decompositionModel.H | 39 +- src/parallel/decompose/decomposition.dox | 282 +++++++++++++ .../decompositionMethod/decompositionMethod.C | 370 ++++++++++++++---- .../decompositionMethod/decompositionMethod.H | 135 ++++++- .../geomDecomp/geomDecomp.C | 70 +++- .../geomDecomp/geomDecomp.H | 41 +- .../hierarchGeomDecomp/hierarchGeomDecomp.C | 84 ++-- .../hierarchGeomDecomp/hierarchGeomDecomp.H | 32 +- .../manualDecomp/manualDecomp.C | 43 +- .../manualDecomp/manualDecomp.H | 26 +- .../metisLikeDecomp/metisLikeDecomp.C | 23 +- .../metisLikeDecomp/metisLikeDecomp.H | 31 +- .../multiLevelDecomp/multiLevelDecomp.C | 268 +++++++++++-- .../multiLevelDecomp/multiLevelDecomp.H | 22 +- .../decompositionMethods/noDecomp/noDecomp.C | 24 +- .../decompositionMethods/noDecomp/noDecomp.H | 32 +- .../simpleGeomDecomp/simpleGeomDecomp.C | 24 +- .../simpleGeomDecomp/simpleGeomDecomp.H | 25 +- .../structuredDecomp/structuredDecomp.C | 22 +- .../structuredDecomp/structuredDecomp.H | 10 +- .../decompose/kahipDecomp/kahipDecomp.C | 170 ++++---- .../decompose/kahipDecomp/kahipDecomp.H | 21 +- .../decompose/metisDecomp/metisDecomp.C | 37 +- .../decompose/metisDecomp/metisDecomp.H | 25 +- .../decompose/ptscotchDecomp/ptscotchDecomp.C | 159 ++++---- .../decompose/ptscotchDecomp/ptscotchDecomp.H | 16 +- .../decompose/scotchDecomp/scotchDecomp.C | 54 +-- .../decompose/scotchDecomp/scotchDecomp.H | 14 +- .../IO/fileHandler/system/decomposeParDict | 21 +- .../heatTransfer/system/decomposeParDict | 7 +- .../system/decomposeParDict | 25 +- .../system/decomposeParDict | 9 +- .../compartmentFire/system/decomposeParDict | 24 -- .../system/panelRegion/decomposeParDict | 23 +- .../system/decomposeParDict | 25 +- .../system/panelRegion/decomposeParDict | 21 +- .../smallPoolFire3D/system/decomposeParDict | 22 +- .../RAS/DLR_A_LTS/system/decomposeParDict | 26 +- .../system/decomposeParDict | 7 +- .../system/decomposeParDict | 9 +- .../system/decomposeParDict | 7 +- .../LadenburgJet60psi/system/decomposeParDict | 25 +- .../rutlandVortex2D/system/decomposeParDict | 9 +- .../RAS/squareBendLiq/system/decomposeParDict | 9 - .../system/decomposeParDict | 1 - .../injectorPipe/system/decomposeParDict | 9 +- .../squareBend/system/decomposeParDict | 11 - .../squareBendLiq/system/decomposeParDict | 11 - .../RAS/nacaAirfoil/system/decomposeParDict | 16 +- .../freeSpacePeriodic/system/decomposeParDict | 24 +- .../freeSpaceStream/system/decomposeParDict | 24 +- .../supersonicCorner/system/decomposeParDict | 25 +- .../wedge15Ma5/system/decomposeParDict | 25 +- .../periodicCubeArgon/system/decomposeParDict | 27 +- .../periodicCubeWater/system/decomposeParDict | 26 +- .../mdFoam/nanoNozzle/system/decomposeParDict | 27 +- .../iglooWithFridges/system/decomposeParDict | 25 +- .../system/bottomWater/decomposeParDict | 73 +--- .../system/decomposeParDict | 31 +- .../system/heater/decomposeParDict | 45 +-- .../system/leftSolid/decomposeParDict | 45 +-- .../system/rightSolid/decomposeParDict | 45 +-- .../system/topAir/decomposeParDict | 73 +--- .../system/air/decomposeParDict | 45 +-- .../externalSolarLoad/system/decomposeParDict | 22 +- .../system/floor/decomposeParDict | 45 +-- .../system/solid/decomposeParDict | 45 +-- .../multiRegionHeater/Allmesh | 26 ++ .../multiRegionHeater/Allrun | 23 +- .../multiRegionHeater/README.txt | 8 +- .../system/bottomWater/decomposeParDict | 73 +--- .../multiRegionHeater/system/decomposeParDict | 42 +- .../system/heater/decomposeParDict | 45 +-- .../system/leftSolid/decomposeParDict | 45 +-- .../system/rightSolid/decomposeParDict | 45 +-- .../system/topAir/decomposeParDict | 73 +--- .../system/bottomAir/decomposeParDict | 32 +- .../system/decomposeParDict | 32 +- .../system/heater/decomposeParDict | 31 +- .../system/leftSolid/decomposeParDict | 73 +--- .../system/rightSolid/decomposeParDict | 73 +--- .../system/topAir/decomposeParDict | 73 +--- .../system/cabin/decomposeParDict | 26 +- .../system/decomposeParDict | 4 - .../system/windshield/decomposeParDict | 26 +- .../system/cabin/decomposeParDict | 30 +- .../windshieldDefrost/system/decomposeParDict | 5 +- .../system/exterior/decomposeParDict | 30 +- .../system/ice/decomposeParDict | 30 +- .../heatExchanger/system/air/decomposeParDict | 25 +- .../heatExchanger/system/decomposeParDict | 25 +- .../system/porous/decomposeParDict | 25 +- .../jouleHeatingSolid/system/decomposeParDict | 2 - .../system/bottomAir/decomposeParDict | 45 +-- .../system/decomposeParDict | 36 +- .../system/heater/decomposeParDict | 47 +-- .../system/leftSolid/decomposeParDict | 47 +-- .../system/rightSolid/decomposeParDict | 47 +-- .../system/topAir/decomposeParDict | 45 +-- .../system/coarseMesh/decomposeParDict | 2 - .../cavityMappingTest/system/decomposeParDict | 2 - .../building/steady/system/decomposeParDict | 9 +- .../system/decomposeParDict | 8 +- .../simpleRotor/system/decomposeParDict | 7 +- .../twoSimpleRotors/system/decomposeParDict | 8 +- .../system/decomposeParDict | 19 +- .../system/decomposeParDict | 19 +- .../mixerVesselAMI2D/system/decomposeParDict | 1 - .../system/decomposeParDict | 10 +- .../propeller/system/decomposeParDict | 10 +- .../system/decomposeParDict | 16 +- .../system/decomposeParDict | 20 +- .../LES/channel395/system/decomposeParDict | 112 +----- .../channel395DFSEM/system/decomposeParDict | 7 +- .../LES/vortexShed/system/decomposeParDict | 7 +- .../motorBike/system/decomposeParDict | 21 +- .../system/decomposeParDict.hierarchical | 20 +- .../system/decomposeParDict.ptscotch | 21 +- .../pitzDailyMapped/system/decomposeParDict | 24 -- .../system/decomposeParDict | 20 +- .../motorBike/system/decomposeParDict.6 | 22 +- .../pipeCyclic/system/decomposeParDict | 1 - .../system/decomposeParDict | 21 +- .../system/decomposeParDict.hierarchical | 6 +- .../Goldschmidt/system/decomposeParDict | 7 +- .../Goldschmidt/system/decomposeParDict | 7 +- .../MPPICFoam/cyclone/system/decomposeParDict | 8 +- .../simplifiedSiwek/system/decomposeParDict | 20 +- .../hopperEmptying/system/decomposeParDict | 19 +- .../system/decomposeParDict | 20 +- .../cylinder/system/decomposeParDict | 21 +- .../filter/system/decomposeParDict | 22 +- .../hotBoxes/system/decomposeParDict | 1 - .../wallFilmRegion.orig/decomposeParDict | 1 - .../rivuletPanel/system/decomposeParDict | 21 +- .../splashPanel/system/decomposeParDict | 21 +- .../decomposeParDict | 21 +- .../foamyHexMesh/blob/system/decomposeParDict | 25 +- .../decomposeParDict | 21 +- .../flange/system/decomposeParDict | 21 +- .../constant/triSurface/surfaceProcess.sh | 5 +- .../mixerVessel/system/decomposeParDict | 25 +- .../OpenCFD/system/decomposeParDict | 20 +- .../SnakeRiverCanyon/system/decomposeParDict | 19 +- .../system/decomposeParDict | 9 +- .../box_snappyHexMesh/system/decomposeParDict | 9 +- .../parallel/filter/system/decomposeParDict | 19 - .../flange/system/decomposeParDict | 20 +- .../gap_detection/system/decomposeParDict | 23 +- .../twoPhasePachuka/system/decomposeParDict | 9 +- .../LES/throttle3D/system/decomposeParDict | 20 +- .../sloshingTank2D/system/decomposeParDict | 20 +- .../sphereDrop/system/decomposeParDict | 5 +- .../depthCharge3D/system/decomposeParDict | 20 +- .../damBreak4phase/system/decomposeParDict | 20 +- .../RAS/DTCHull/system/decomposeParDict | 38 +- .../floatingObject/system/decomposeParDict | 23 -- .../mixerVesselAMI/system/decomposeParDict | 1 - .../RAS/motorBike/system/decomposeParDict | 21 +- .../system/decomposeParDict | 24 -- .../sloshingTank2D/system/decomposeParDict | 20 +- .../system/decomposeParDict | 20 +- .../sloshingTank3D/system/decomposeParDict | 20 +- .../system/decomposeParDict | 21 +- .../system/decomposeParDict | 21 +- .../testTubeMixer/system/decomposeParDict | 21 +- .../RAS/DTCHull/system/decomposeParDict | 32 +- .../damBreak/damBreak/system/decomposeParDict | 20 +- .../damBreak/damBreak/system/decomposeParDict | 19 +- .../eulerianInjection/system/decomposeParDict | 6 +- .../system/decomposeParDict | 5 +- .../system/decomposeParDict | 7 +- .../system/decomposeParDict | 6 +- .../system/decomposeParDict | 6 +- .../system/decomposeParDict | 6 +- .../system/decomposeParDict | 6 +- .../system/decomposeParDict | 6 +- .../system/decomposeParDict | 6 +- .../system/decomposeParDict | 8 +- .../damBreak/system/decomposeParDict | 20 +- .../system/decomposeParDict | 10 +- .../system/decomposeParDict | 13 +- .../standingWave/system/decomposeParDict | 20 +- .../laminar/damBreak/system/decomposeParDict | 20 +- .../propeller/system/decomposeParDict | 8 +- .../cavitatingBullet/system/decomposeParDict | 21 +- .../damBreak4phase/system/decomposeParDict | 21 +- .../system/decomposeParDict | 21 +- .../mixerVesselAMI2D/system/decomposeParDict | 1 - .../damBreak4phase/system/decomposeParDict | 21 +- .../system/decomposeParDict | 21 +- .../background/system/decomposeParDict | 7 +- .../system/decomposeParDict | 7 +- .../system/decomposeParDict | 7 +- .../motorBike/system/decomposeParDict | 20 +- .../system/bottomAir/decomposeParDict | 32 +- .../system/decomposeParDict | 32 +- .../system/heater/decomposeParDict | 32 +- .../system/leftSolid/decomposeParDict | 32 +- .../system/rightSolid/decomposeParDict | 32 +- .../system/topAir/decomposeParDict | 32 +- 211 files changed, 2399 insertions(+), 3916 deletions(-) create mode 100644 src/parallel/decompose/decomposition.dox mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/air/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/floor/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/solid/decomposeParDict create mode 100755 tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allmesh mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomWater/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/leftSolid/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/rightSolid/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/topAir/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/cabin/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/windshield/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/cabin/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/exterior/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/ice/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/heater/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/decomposeParDict mode change 100644 => 120000 tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/decomposeParDict diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C index b06da4f4a72..d1b9b58a7de 100644 --- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C +++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C @@ -330,7 +330,6 @@ int main(int argc, char *argv[]) } - forAll(regionNames, regioni) { const word& regionName = regionNames[regioni]; @@ -338,13 +337,12 @@ int main(int argc, char *argv[]) Info<< "\n\nDecomposing mesh " << regionName << nl << endl; - // Determine the existing processor count directly label nProcs = fileHandler().nProcs(runTime.path(), regionDir); - // Get requested numberOfSubdomains. Note: have no mesh yet so - // cannot use decompositionModel::New - const label nDomains = readLabel + // Get requested numberOfSubdomains directly from the dictionary. + // Note: have no mesh yet so cannot use decompositionModel::New + const label nDomains = decompositionMethod::nDomains ( IOdictionary ( @@ -362,7 +360,7 @@ int main(int argc, char *argv[]) ), decompDictFile ) - ).lookup("numberOfSubdomains") + ) ); if (decomposeFieldsOnly) diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposeParDict b/applications/utilities/parallelProcessing/decomposePar/decomposeParDict index cb061078b7d..2ad99e2ea5f 100644 --- a/applications/utilities/parallelProcessing/decomposePar/decomposeParDict +++ b/applications/utilities/parallelProcessing/decomposePar/decomposeParDict @@ -15,129 +15,109 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -numberOfSubdomains 2; +//- The total number of domains (mandatory) +numberOfSubdomains 256; +//- The decomposition method (mandatory) +method scotch; +// method hierarchical; +// method simple; +// method metis; +// method manual; +// method multiLevel; +// method structured; // does 2D decomposition of structured mesh -// Optional decomposition constraints -//constraints -//{ -// preserveBaffles -// { -// //- Keep owner and neighbour of baffles on same processor (i.e. -// // keep it detectable as a baffle). Baffles are two boundary face -// // sharing the same points -// type preserveBaffles; -// } -// preserveFaceZones -// { -// //- Keep owner and neighbour on same processor for faces in zones -// type preserveFaceZones; -// zones (".*"); -// } -// preservePatches -// { -// //- Keep owner and neighbour on same processor for faces in patches -// // (only makes sense for cyclic patches. Not suitable for e.g. -// // cyclicAMI since these are not coupled on the patch level. Use -// // singleProcessorFaceSets for those) -// type preservePatches; -// patches (".*"); -// } -// singleProcessorFaceSets -// { -// //- Keep all of faceSet on a single processor. This puts all cells -// // connected with a point, edge or face on the same processor. -// // (just having face connected cells might not guarantee a balanced -// // decomposition) -// // The processor can be -1 (the decompositionMethod chooses the -// // processor for a good load balance) or explicitly provided (upsets -// // balance) -// type singleProcessorFaceSets; -// singleProcessorFaceSets ((f1 -1)); -// } -// refinementHistory -// { -// //- Decompose cells such that all cell originating from single cell -// // end up on same processor -// type refinementHistory; -// } -//} - - -// Deprecated form of specifying decomposition constraints: -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - -//- Keep owner and neighbour on same processor for faces in patches: -// (makes sense only for cyclic patches. Not suitable for e.g. cyclicAMI -// since these are not coupled on the patch level. Use -// singleProcessorFaceSets for those) -//preservePatches (cyclic_half0 cyclic_half1); -//- Keep all of faceSet on a single processor. This puts all cells -// connected with a point, edge or face on the same processor. -// (just having face connected cells might not guarantee a balanced -// decomposition) -// The processor can be -1 (the decompositionMethod chooses the processor -// for a good load balance) or explicitly provided (upsets balance). -//singleProcessorFaceSets ((f0 -1)); +//- Optional region-wise decomposition. +// Can specify a different method. +// The number of subdomains can be less than the top-level numberOfSubdomains. +regions +{ + water + { + numberOfSubdomains 128; + method metis; + } -//- Keep owner and neighbour of baffles on same processor (i.e. keep it -// detectable as a baffle). Baffles are two boundary face sharing the -// same points. -//preserveBaffles true; + ".*solid" + { + numberOfSubdomains 4; + method metis; + } + heater + { + numberOfSubdomains 1; + method none; + } +} -//- Use the volScalarField named here as a weight for each cell in the -// decomposition. For example, use a particle population field to decompose -// for a balanced number of particles in a lagrangian simulation. -// weightField dsmcRhoNMean; +// Coefficients for the decomposition method are either as a +// general "coeffs" dictionary or method-specific "<method>Coeffs". +// For multiLevel, using multiLevelCoeffs only. -method scotch; -//method hierarchical; -// method simple; -// method metis; -// method manual; -// method multiLevel; -// method structured; // does 2D decomposition of structured mesh multiLevelCoeffs { - // Decomposition methods to apply in turn. This is like hierarchical but - // fully general - every method can be used at every level. + // multiLevel decomposition methods to apply in turn. + // This is like hierarchical but fully general + // - every method can be used at every level. + + // Only sub-dictionaries containing the keyword "method" are used. + // level0 { - numberOfSubdomains 64; - //method simple; - //simpleCoeffs - //{ - // n (2 1 1); - // delta 0.001; - //} + numberOfSubdomains 16; method scotch; } level1 { - numberOfSubdomains 4; + numberOfSubdomains 2; method scotch; + coeffs + { + n (2 1 1); + delta 0.001; + } } + level2 + { + numberOfSubdomains 8; + // method simple; + method scotch; + } +} + + +multiLevelCoeffs +{ + // Compact multiLevel specification, activated by the presence of the + // keywords "method" and "domains" + + method scotch; + domains (16 2 8); + + //// Or with implicit '16' for the first level with numberOfSubdomains=256 + //domains (2 8); } -// Desired output + + +// Other example coefficents simpleCoeffs { n (2 1 1); - delta 0.001; + // delta 0.001; //< default value = 0.001 } hierarchicalCoeffs { n (1 2 1); - delta 0.001; - order xyz; + // delta 0.001; //< default value = 0.001 + // order xyz; //< default order = xyz } metisCoeffs @@ -181,9 +161,17 @@ structuredCoeffs method scotch; } + +//- Use the volScalarField named here as a weight for each cell in the +// decomposition. For example, use a particle population field to decompose +// for a balanced number of particles in a lagrangian simulation. +// weightField dsmcRhoNMean; + + //// Is the case distributed? Note: command-line argument -roots takes //// precedence //distributed yes; +// //// Per slave (so nProcs-1 entries) the directory above the case. //roots //( @@ -191,4 +179,77 @@ structuredCoeffs // "/tmp" //); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Decomposition constraints + +//constraints +//{ +// preserveBaffles +// { +// //- Keep owner and neighbour of baffles on same processor (i.e. +// // keep it detectable as a baffle). Baffles are two boundary face +// // sharing the same points +// type preserveBaffles; +// } +// preserveFaceZones +// { +// //- Keep owner and neighbour on same processor for faces in zones +// type preserveFaceZones; +// zones (".*"); +// } +// preservePatches +// { +// //- Keep owner and neighbour on same processor for faces in patches +// // (only makes sense for cyclic patches. Not suitable for e.g. +// // cyclicAMI since these are not coupled on the patch level. Use +// // singleProcessorFaceSets for those) +// type preservePatches; +// patches (".*"); +// } +// singleProcessorFaceSets +// { +// //- Keep all of faceSet on a single processor. This puts all cells +// // connected with a point, edge or face on the same processor. +// // (just having face connected cells might not guarantee a balanced +// // decomposition) +// // The processor can be -1 (the decompositionMethod chooses the +// // processor for a good load balance) or explicitly provided (upsets +// // balance) +// type singleProcessorFaceSets; +// singleProcessorFaceSets ((f1 -1)); +// } +// refinementHistory +// { +// //- Decompose cells such that all cell originating from single cell +// // end up on same processor +// type refinementHistory; +// } +//} + + +// Deprecated form of specifying decomposition constraints: +//- Keep owner and neighbour on same processor for faces in zones: +// preserveFaceZones (heater solid1 solid3); + +//- Keep owner and neighbour on same processor for faces in patches: +// (makes sense only for cyclic patches. Not suitable for e.g. cyclicAMI +// since these are not coupled on the patch level. Use +// singleProcessorFaceSets for those) +//preservePatches (cyclic_half0 cyclic_half1); + +//- Keep all of faceSet on a single processor. This puts all cells +// connected with a point, edge or face on the same processor. +// (just having face connected cells might not guarantee a balanced +// decomposition) +// The processor can be -1 (the decompositionMethod chooses the processor +// for a good load balance) or explicitly provided (upsets balance). +//singleProcessorFaceSets ((f0 -1)); + +//- Keep owner and neighbour of baffles on same processor (i.e. keep it +// detectable as a baffle). Baffles are two boundary face sharing the +// same points. +//preserveBaffles true; + + // ************************************************************************* // diff --git a/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C b/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C index bf722cfbae3..0cc795761c8 100644 --- a/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C +++ b/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C @@ -49,10 +49,8 @@ void Foam::domainDecomposition::mark labelList& elementToZone ) { - forAll(zoneElems, i) + for (const label pointi : zoneElems) { - label pointi = zoneElems[i]; - if (elementToZone[pointi] == -1) { // First occurrence @@ -69,7 +67,6 @@ void Foam::domainDecomposition::mark // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -// from components Foam::domainDecomposition::domainDecomposition ( const IOobject& io, @@ -98,13 +95,13 @@ Foam::domainDecomposition::domainDecomposition decompDictFile_(decompDictFile), nProcs_ ( - readInt + decompositionMethod::nDomains ( decompositionModel::New ( *this, decompDictFile - ).lookup("numberOfSubdomains") + ) ) ), distributed_(false), diff --git a/applications/utilities/parallelProcessing/decomposePar/domainDecompositionDistribute.C b/applications/utilities/parallelProcessing/decomposePar/domainDecompositionDistribute.C index 371f44f73ef..472077a709a 100644 --- a/applications/utilities/parallelProcessing/decomposePar/domainDecompositionDistribute.C +++ b/applications/utilities/parallelProcessing/decomposePar/domainDecompositionDistribute.C @@ -46,11 +46,11 @@ void Foam::domainDecomposition::distributeCells() decompDictFile_ ); + word weightName; scalarField cellWeights; - if (method.found("weightField")) - { - word weightName = method.lookup("weightField"); + if (method.readIfPresent("weightField", weightName)) + { volScalarField weights ( IOobject diff --git a/applications/utilities/preProcessing/mapFields/mapFields.C b/applications/utilities/preProcessing/mapFields/mapFields.C index 93ba3164126..be6261d3f0b 100644 --- a/applications/utilities/preProcessing/mapFields/mapFields.C +++ b/applications/utilities/preProcessing/mapFields/mapFields.C @@ -58,7 +58,7 @@ int readNumProcs dictFile = dictFile / dictName; } - return readInt + return decompositionMethod::nDomains ( IOdictionary ( @@ -75,7 +75,7 @@ int readNumProcs ), dictFile ) - ).lookup("numberOfSubdomains") + ) ); } diff --git a/src/dummyThirdParty/kahipDecomp/dummyKahipDecomp.C b/src/dummyThirdParty/kahipDecomp/dummyKahipDecomp.C index 96e0bdc16b9..6e147e26265 100644 --- a/src/dummyThirdParty/kahipDecomp/dummyKahipDecomp.C +++ b/src/dummyThirdParty/kahipDecomp/dummyKahipDecomp.C @@ -73,10 +73,20 @@ Foam::label Foam::kahipDecomp::decomposeSerial Foam::kahipDecomp::kahipDecomp ( - const dictionary& decompositionDict + const dictionary& decompDict ) : - metisLikeDecomp(decompositionDict) + metisLikeDecomp("kahip", decompDict) +{} + + +Foam::kahipDecomp::kahipDecomp +( + const dictionary& decompDict, + const word& regionName +) +: + metisLikeDecomp("kahip", decompDict, regionName) {} diff --git a/src/dummyThirdParty/metisDecomp/dummyMetisDecomp.C b/src/dummyThirdParty/metisDecomp/dummyMetisDecomp.C index 3743cc1bae6..c5f8e3ba9a5 100644 --- a/src/dummyThirdParty/metisDecomp/dummyMetisDecomp.C +++ b/src/dummyThirdParty/metisDecomp/dummyMetisDecomp.C @@ -73,10 +73,20 @@ Foam::label Foam::metisDecomp::decomposeSerial Foam::metisDecomp::metisDecomp ( - const dictionary& decompositionDict + const dictionary& decompDict ) : - metisLikeDecomp(decompositionDict) + metisLikeDecomp("metis", decompDict) +{} + + +Foam::metisDecomp::metisDecomp +( + const dictionary& decompDict, + const word& regionName +) +: + metisLikeDecomp("metis", decompDict, regionName) {} diff --git a/src/dummyThirdParty/ptscotchDecomp/dummyPtscotchDecomp.C b/src/dummyThirdParty/ptscotchDecomp/dummyPtscotchDecomp.C index decacb6c10c..5a756b477ff 100644 --- a/src/dummyThirdParty/ptscotchDecomp/dummyPtscotchDecomp.C +++ b/src/dummyThirdParty/ptscotchDecomp/dummyPtscotchDecomp.C @@ -98,10 +98,22 @@ Foam::label Foam::ptscotchDecomp::decompose Foam::ptscotchDecomp::ptscotchDecomp ( - const dictionary& decompositionDict + const dictionary& decompDict ) : - decompositionMethod(decompositionDict) + decompositionMethod(decompDict), + coeffsDict_(dictionary::null) +{} + + +Foam::ptscotchDecomp::ptscotchDecomp +( + const dictionary& decompDict, + const word& regionName +) +: + decompositionMethod(decompDict, regionName), + coeffsDict_(dictionary::null) {} diff --git a/src/dummyThirdParty/scotchDecomp/dummyScotchDecomp.C b/src/dummyThirdParty/scotchDecomp/dummyScotchDecomp.C index 582c7702537..9aa8e20ec0f 100644 --- a/src/dummyThirdParty/scotchDecomp/dummyScotchDecomp.C +++ b/src/dummyThirdParty/scotchDecomp/dummyScotchDecomp.C @@ -80,10 +80,20 @@ Foam::label Foam::scotchDecomp::decomposeSerial Foam::scotchDecomp::scotchDecomp ( - const dictionary& decompositionDict + const dictionary& decompDict ) : - metisLikeDecomp(decompositionDict) + metisLikeDecomp("scotch", decompDict) +{} + + +Foam::scotchDecomp::scotchDecomp +( + const dictionary& decompDict, + const word& regionName +) +: + metisLikeDecomp("scotch", decompDict, regionName) {} diff --git a/src/parallel/decompose/decompose/decompositionModel.C b/src/parallel/decompose/decompose/decompositionModel.C index dbcb023af19..8f156c64b55 100644 --- a/src/parallel/decompose/decompose/decompositionModel.C +++ b/src/parallel/decompose/decompose/decompositionModel.C @@ -34,6 +34,7 @@ namespace Foam defineTypeNameAndDebug(decompositionModel, 0); } + // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam::decompositionModel::decompositionModel diff --git a/src/parallel/decompose/decompose/decompositionModel.H b/src/parallel/decompose/decompose/decompositionModel.H index 7ed6bd3fa2b..2cbfa4d2496 100644 --- a/src/parallel/decompose/decompose/decompositionModel.H +++ b/src/parallel/decompose/decompose/decompositionModel.H @@ -75,14 +75,14 @@ public: // Selectors - //- Read (optionallly from absolute path) & register on mesh + //- Read (optionally from absolute path) & register on mesh static const decompositionModel& New ( const polyMesh& mesh, const fileName& decompDictFile = "" ); - //- Read (optionallly from supplied dictionary) & register on mesh + //- Read (optionally from supplied dictionary) & register on mesh static const decompositionModel& New ( const polyMesh& mesh, @@ -94,42 +94,51 @@ public: // Constructors //- Construct from typeName or optional path to controlDictionary - decompositionModel(const polyMesh&, const fileName& = ""); + decompositionModel + ( + const polyMesh& mesh, + const fileName& decompDictFile = "" + ); //- Construct from typeName or optional path to controlDictionary decompositionModel ( - const polyMesh&, + const polyMesh& mesh, const dictionary& dict, - const fileName& = "" + const fileName& decompDictFile = "" ); - // Member functions + // Member Functions decompositionMethod& decomposer() const { if (!decomposerPtr_.valid()) { - decomposerPtr_ = decompositionMethod::New(*this); + decomposerPtr_ = + decompositionMethod::New + ( + *this, + this->mesh().name() // Name of mesh region + ); } return decomposerPtr_(); } //- Helper: return IOobject with optionally absolute path provided - static IOobject selectIO(const IOobject&, const fileName&); + static IOobject selectIO(const IOobject& io, const fileName& f); - // UpdateableMeshObject + // UpdateableMeshObject - virtual bool movePoints() - { - return false; - } + virtual bool movePoints() + { + return false; + } - virtual void updateMesh(const mapPolyMesh&) - {} + virtual void updateMesh(const mapPolyMesh&) + {} }; diff --git a/src/parallel/decompose/decomposition.dox b/src/parallel/decompose/decomposition.dox new file mode 100644 index 00000000000..0256b48e4a4 --- /dev/null +++ b/src/parallel/decompose/decomposition.dox @@ -0,0 +1,282 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2017 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. + + You should have received a copy of the GNU General Public License along with + OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +\page domainDecomposition Domain decomposition + +\section secIntroduction Introduction + +When running a simulation in parallel, the geometry must first be decomposed +(segmented) into individual geometries for each MPI process. These separate +geometries are \a connected together with special processor boundary patches. +The processor-specific \c constant/polyMesh/boundary files will contain this +type of entry: + +\verbatim + procBoundary0to14 + { + type processor; + inGroups 1(processor); + nFaces 131; + startFace 34983; + matchTolerance 0.0001; + transform unknown; + myProcNo 0; + neighbProcNo 14; + } +\endverbatim + +The decomposePar utility is a commonly used method to decompose domains +and subsequently distribute the fields. +The reconstructPar and reconstructParMesh utilities +can be used to reconstruct a single domain from the processor sub-domains. + +\section secDecomposeParDict The decomposeParDict + +The \c decomposeParDict is required by decompose utilities and for any solvers +or utilities running in parallel. It is normally located in the simulation +\c system directory. The <tt>-decomposeParDict name</tt> command-line option +can be used to specify an alternate file. + +The \a numberOfSubdomains entry is mandatory: +\verbatim + numberOfSubdomains <int>; +\endverbatim + +The \a method entry is required for the decomposePar utility and specifies +the decomposition method type: +\verbatim + method <word>; +\endverbatim +The \a method entry is generally not required when running a simulation. + +OpenFOAM offers a variety of decomposition methods and interfaces to external, +third-party decomposition routines. The types of decomposition methods +available will thus depend on your particular installation. + +\table + Name | Class + none | #Foam::noDecomp + manual | #Foam::manualDecomp + simple | #Foam::simpleGeomDecomp + hierarchical | #Foam::hierarchGeomDecomp + kahip | #Foam::kahipDecomp + metis | #Foam::metisDecomp + scotch | #Foam::scotchDecomp + structured | #Foam::structuredDecomp + multiLevel | #Foam::multiLevelDecomp +\endtable + +If a decomposition method requires any additional configuration controls, +these are specified either within in a generic \c coeffs dictionary that +or a method-specific version. For example, + +\verbatim + method hierarchical; + + coeffs + { + n (4 2 3); + } + + // ----- + + method metis; + + metisCoeffs + { + method k-way; + } +\endverbatim + +For simplicity, the generic \c coeffs dictionary is generally preferrable. +However, for some specific decomposition methods +(eg, \ref subsecMultiLevel "multiLevel") only the +method-specific coefficients dictionary is permitted. + + +\subsection subsecRegions Multi-region + +When running multi-region simulations, it may be desirable to use different +decomposition methods for one or more regions, or even to have fewer +processors allocated to a particular region. +If, for example, the multi-region simulation contains a large fluid region +and a very small solid region, it can be advantageous to decompose the solid +onto fewer processors. + +The region-wise specification is contained in a \a regions subdictionary with +decomposeParDict. For example, + +\verbatim + numberOfSubdomains 2048; + method metis; + + regions + { + heater + { + numberOfSubdomains 2; + method hierarchical; + coeffs + { + n (2 1 1); + } + } + + "*.solid" + { + numberOfSubdomains 16; + method scotch; + } + } +\endverbatim + +\note +The top-level numberOfSubdomains remains mandatory, since this specifies the +number of domains for the entire simulation. The individual regions may use +the same number or fewer domains. The \a numberOfSubdomains entry within +a region specification is only needed if the value differs. + + +\subsection subsecMultiLevel Multi-level decomposition + +The #Foam::multiLevelDecomp decomposition provides a general means of +successively decomposing with different methods. Each appplication of the +decomposition is termed a level. For example, + +\verbatim + numberOfSubdomains 2048; + method multiLevel; + + multiLevelCoeffs + { + nodes + { + numberOfSubdomains 128; + method hierarchical; + coeffs + { + n (16 4 2); + } + } + cpus + { + numberOfSubdomains 2; + method scotch; + } + cores + { + numberOfSubdomains 8; + method metis; + } + } +\endverbatim + +For cases where the same method is applied at each level, this can also be +conveniently written in a much shorter form: +\verbatim + numberOfSubdomains 2048; + method multiLevel; + + multiLevelCoeffs + { + method scotch + domains (128 2 8); + } +\endverbatim + +When the specified \a domains is smaller than \a numberOfSubdomains +but can be resolved as an integral multiple, this integral multiple +is used as the first level. This can make it easier to manage when +changing the number of domains for the simulation. +For example, +\verbatim + numberOfSubdomains 1024; + method multiLevel; + + multiLevelCoeffs + { + method scotch + domains (2 8); //< inferred as domains (64 2 8); + } +\endverbatim + + +\subsection subsecConstraints Constraints + +\verbatim + constraints + { + preserveBaffles + { + // Keep owner and neighbour of baffles on same processor + // (ie, keep it detectable as a baffle). + // Baffles are two boundary face sharing the same points + + type preserveBaffles; + } + + preserveFaceZones + { + // Keep owner and neighbour on same processor for faces in zones + + type preserveFaceZones; + zones (".*"); + } + + preservePatches + { + // Keep owner and neighbour on same processor for faces in patches + // (only makes sense for cyclic patches. Not suitable for e.g. + // cyclicAMI since these are not coupled on the patch level. + // Use singleProcessorFaceSets for those. + + type preservePatches; + patches (".*"); + } + + singleProcessorFaceSets + { + // Keep all of faceSet on a single processor. This puts all cells + // connected with a point, edge or face on the same processor. + // (just having face connected cells might not guarantee a balanced + // decomposition) + // The processor can be -1 (the decompositionMethod chooses the + // processor for a good load balance) or explicitly provided (upsets + // balance) + + type singleProcessorFaceSets; + singleProcessorFaceSets ((f1 -1)); + } + + refinementHistory + { + // Decompose cells such that all cell originating from single cell + // end up on same processor + type refinementHistory; + } + } +\endverbatim + +\*---------------------------------------------------------------------------*/ diff --git a/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.C b/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.C index c17958367a3..69bc26b4d3d 100644 --- a/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.C +++ b/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.C @@ -44,49 +44,97 @@ namespace Foam { defineTypeNameAndDebug(decompositionMethod, 0); defineRunTimeSelectionTable(decompositionMethod, dictionary); + defineRunTimeSelectionTable(decompositionMethod, dictionaryRegion); + + // Fallback name when searching for optional coefficients directories + static const word defaultName("coeffs"); } -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // +// * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * // -Foam::decompositionMethod::decompositionMethod +Foam::label Foam::decompositionMethod::nDomains(const dictionary& decompDict) +{ + return readLabel(decompDict.lookup("numberOfSubdomains")); +} + + +Foam::label Foam::decompositionMethod::nDomains ( - const dictionary& decompositionDict + const dictionary& decompDict, + const word& regionName ) -: - decompositionDict_(decompositionDict), - nProcessors_ - ( - readLabel(decompositionDict.lookup("numberOfSubdomains")) - ) { + const label nDomainsGlobal = nDomains(decompDict); + + const dictionary& regionDict(optionalRegionDict(decompDict, regionName)); + + label nDomainsRegion; + if (regionDict.readIfPresent("numberOfSubdomains", nDomainsRegion)) + { + if (nDomainsRegion >= 1 && nDomainsRegion <= nDomainsGlobal) + { + return nDomainsRegion; + } + + WarningInFunction + << "ignoring out of range numberOfSubdomains " + << nDomainsRegion << " for region " << regionName + << nl << nl + << endl; + } + + return nDomainsGlobal; +} + + +const Foam::dictionary& Foam::decompositionMethod::optionalRegionDict +( + const dictionary& decompDict, + const word& regionName +) +{ + auto finder = decompDict.csearch("regions"); + + if (!regionName.empty() && finder.isDict()) + { + finder = finder.dict().csearch(regionName); + + if (finder.isDict()) + { + return finder.dict(); + } + } + + return dictionary::null; +} + + +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +void Foam::decompositionMethod::readConstraints() +{ + constraints_.clear(); + // Read any constraints - wordList constraintTypes_; - if (decompositionDict_.found("constraints")) + wordList constraintTypes; + + const dictionary* dictptr = decompositionDict_.subDictPtr("constraints"); + + if (dictptr) { - //PtrList<dictionary> constraintsList - //( - // decompositionDict_.lookup("constraints") - //); - //forAll(constraintsList, i) - //{ - // const dictionary& dict = constraintsList[i]; - const dictionary& constraintsList = decompositionDict_.subDict - ( - "constraints" - ); - forAllConstIter(dictionary, constraintsList, iter) + forAllConstIters(*dictptr, iter) { const dictionary& dict = iter().dict(); - constraintTypes_.append(dict.lookup("type")); + constraintTypes.append(dict.lookup("type")); constraints_.append ( decompositionConstraint::New ( dict, - constraintTypes_.last() + constraintTypes.last() ) ); } @@ -96,7 +144,7 @@ Foam::decompositionMethod::decompositionMethod if ( decompositionDict_.found("preserveBaffles") - && !constraintTypes_.found + && !constraintTypes.found ( decompositionConstraints::preserveBafflesConstraint::typeName ) @@ -111,7 +159,7 @@ Foam::decompositionMethod::decompositionMethod if ( decompositionDict_.found("preservePatches") - && !constraintTypes_.found + && !constraintTypes.found ( decompositionConstraints::preservePatchesConstraint::typeName ) @@ -128,7 +176,7 @@ Foam::decompositionMethod::decompositionMethod if ( decompositionDict_.found("preserveFaceZones") - && !constraintTypes_.found + && !constraintTypes.found ( decompositionConstraints::preserveFaceZonesConstraint::typeName ) @@ -145,7 +193,7 @@ Foam::decompositionMethod::decompositionMethod if ( decompositionDict_.found("singleProcessorFaceSets") - && !constraintTypes_.found + && !constraintTypes.found ( decompositionConstraints::preserveFaceZonesConstraint::typeName ) @@ -166,17 +214,144 @@ Foam::decompositionMethod::decompositionMethod } } +// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // + +const Foam::dictionary& Foam::decompositionMethod::findCoeffsDict +( + const dictionary& dict, + const word& coeffsName, + int select +) +{ + dictionary::const_searcher fnd; + + if + ( + (fnd = dict.csearch(coeffsName)).isDict() + || + ( + !(select & selectionType::EXACT) + && (fnd = dict.csearch(defaultName)).isDict() + ) + ) + { + return fnd.dict(); + } + + // Not found + if (select & selectionType::MANDATORY) + { + FatalIOError + << "'" << coeffsName << "' dictionary not found in dictionary " + << dict.name() << endl + << abort(FatalIOError); + } + + if (select & selectionType::NULL_DICT) + { + return dictionary::null; + } + + return dict; +} + + +const Foam::dictionary& Foam::decompositionMethod::findCoeffsDict +( + const word& coeffsName, + int select +) const +{ + dictionary::const_searcher fnd; + + if + ( + !decompositionRegionDict_.empty() + && + ( + (fnd = decompositionRegionDict_.csearch(coeffsName)).isDict() + || + ( + !(select & selectionType::EXACT) + && (fnd = decompositionRegionDict_.csearch(defaultName)).isDict() + ) + ) + ) + { + return fnd.dict(); + } + + if + ( + (fnd = decompositionDict_.csearch(coeffsName)).isDict() + || + ( + !(select & selectionType::EXACT) + && (fnd = decompositionDict_.csearch(defaultName)).isDict() + ) + ) + { + return fnd.dict(); + } + + // Not found + if (select & selectionType::MANDATORY) + { + FatalIOError + << "'" << coeffsName << "' dictionary not found in dictionary " + << decompositionDict_.name() << endl + << abort(FatalIOError); + } + + if (select & selectionType::NULL_DICT) + { + return dictionary::null; + } + + return decompositionDict_; +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::decompositionMethod::decompositionMethod +( + const dictionary& decompDict +) +: + decompositionDict_(decompDict), + decompositionRegionDict_(dictionary::null), + nDomains_(nDomains(decompDict)) +{ + readConstraints(); +} + + +Foam::decompositionMethod::decompositionMethod +( + const dictionary& decompDict, + const word& regionName +) +: + decompositionDict_(decompDict), + decompositionRegionDict_ + ( + optionalRegionDict(decompositionDict_, regionName) + ), + nDomains_(nDomains(decompDict, regionName)) +{ + readConstraints(); +} + // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // Foam::autoPtr<Foam::decompositionMethod> Foam::decompositionMethod::New ( - const dictionary& decompositionDict + const dictionary& decompDict ) { - const word methodType(decompositionDict.lookup("method")); - - Info<< "Selecting decompositionMethod " << methodType << endl; + const word methodType(decompDict.lookup("method")); auto cstrIter = dictionaryConstructorTablePtr_->cfind(methodType); @@ -190,7 +365,58 @@ Foam::autoPtr<Foam::decompositionMethod> Foam::decompositionMethod::New << exit(FatalError); } - return autoPtr<decompositionMethod>(cstrIter()(decompositionDict)); + // verbose + { + Info<< "Selecting decompositionMethod " << methodType + << " [" << (nDomains(decompDict)) << "]" << endl; + } + + return autoPtr<decompositionMethod>(cstrIter()(decompDict)); +} + + +Foam::autoPtr<Foam::decompositionMethod> Foam::decompositionMethod::New +( + const dictionary& decompDict, + const word& regionName + +) +{ + const dictionary& regionDict(optionalRegionDict(decompDict, regionName)); + + if (regionDict.empty()) + { + // No region-specific information - just forward to normal routine + return decompositionMethod::New(decompDict); + } + + word methodType(decompDict.lookup("method")); + regionDict.readIfPresent("method", methodType); + + auto cstrIter = dictionaryRegionConstructorTablePtr_->cfind(methodType); + + if (!cstrIter.found()) + { + WarningInFunction + << nl + << "Unknown region decompositionMethod " + << methodType << nl << nl + << "Valid decompositionMethods : " << endl + << dictionaryRegionConstructorTablePtr_->sortedToc() << nl + << "Reverting to non-region version" << nl + << endl; + + return decompositionMethod::New(decompDict); + } + + // verbose + { + Info<< "Selecting decompositionMethod " << methodType + << " [" << (nDomains(decompDict, regionName)) << "] (region " + << regionName << ")" << endl; + } + + return autoPtr<decompositionMethod>(cstrIter()(decompDict, regionName)); } @@ -341,7 +567,7 @@ void Foam::decompositionMethod::calcCellCells // Number of faces per coarse cell labelList nFacesPerCell(nLocalCoarse, 0); - for (label facei = 0; facei < mesh.nInternalFaces(); facei++) + for (label facei = 0; facei < mesh.nInternalFaces(); ++facei) { const label own = agglom[faceOwner[facei]]; const label nei = agglom[faceNeighbour[facei]]; @@ -391,7 +617,7 @@ void Foam::decompositionMethod::calcCellCells const labelList& offsets = cellCells.offsets(); // For internal faces is just offsetted owner and neighbour - for (label facei = 0; facei < mesh.nInternalFaces(); facei++) + for (label facei = 0; facei < mesh.nInternalFaces(); ++facei) { const label own = agglom[faceOwner[facei]]; const label nei = agglom[faceNeighbour[facei]]; @@ -453,7 +679,7 @@ void Foam::decompositionMethod::calcCellCells const label endIndex = cellCells.offsets()[celli+1]; - for (label i = startIndex; i < endIndex; i++) + for (label i = startIndex; i < endIndex; ++i) { if (nbrCells.insert(cellCells.m()[i])) { @@ -547,10 +773,10 @@ void Foam::decompositionMethod::calcCellCells // Number of faces per coarse cell labelList nFacesPerCell(nLocalCoarse, 0); - for (label faceI = 0; faceI < mesh.nInternalFaces(); faceI++) + for (label facei = 0; facei < mesh.nInternalFaces(); ++facei) { - const label own = agglom[faceOwner[faceI]]; - const label nei = agglom[faceNeighbour[faceI]]; + const label own = agglom[faceOwner[facei]]; + const label nei = agglom[faceNeighbour[facei]]; nFacesPerCell[own]++; nFacesPerCell[nei]++; @@ -599,18 +825,18 @@ void Foam::decompositionMethod::calcCellCells const labelList& offsets = cellCells.offsets(); // For internal faces is just offsetted owner and neighbour - for (label faceI = 0; faceI < mesh.nInternalFaces(); faceI++) + for (label facei = 0; facei < mesh.nInternalFaces(); ++facei) { - const label own = agglom[faceOwner[faceI]]; - const label nei = agglom[faceNeighbour[faceI]]; + const label own = agglom[faceOwner[facei]]; + const label nei = agglom[faceNeighbour[facei]]; const label ownIndex = offsets[own] + nFacesPerCell[own]++; const label neiIndex = offsets[nei] + nFacesPerCell[nei]++; m[ownIndex] = globalAgglom.toGlobal(nei); - w[ownIndex] = mag(mesh.faceAreas()[faceI]); + w[ownIndex] = mag(mesh.faceAreas()[facei]); m[neiIndex] = globalAgglom.toGlobal(own); - w[ownIndex] = mag(mesh.faceAreas()[faceI]); + w[ownIndex] = mag(mesh.faceAreas()[facei]); } // For boundary faces is offsetted coupled neighbour @@ -661,14 +887,14 @@ void Foam::decompositionMethod::calcCellCells label startIndex = cellCells.offsets()[0]; - forAll(cellCells, cellI) + forAll(cellCells, celli) { nbrCells.clear(); - nbrCells.insert(globalAgglom.toGlobal(cellI)); + nbrCells.insert(globalAgglom.toGlobal(celli)); - const label endIndex = cellCells.offsets()[cellI+1]; + const label endIndex = cellCells.offsets()[celli+1]; - for (label i = startIndex; i < endIndex; i++) + for (label i = startIndex; i < endIndex; ++i) { if (nbrCells.insert(cellCells.m()[i])) { @@ -678,8 +904,8 @@ void Foam::decompositionMethod::calcCellCells } } startIndex = endIndex; - cellCells.offsets()[cellI+1] = newIndex; - cellCellWeights.offsets()[cellI+1] = newIndex; + cellCells.offsets()[celli+1] = newIndex; + cellCellWeights.offsets()[celli+1] = newIndex; } cellCells.m().setSize(newIndex); @@ -753,7 +979,7 @@ void Foam::decompositionMethod::calcCellCells // labelList nFacesPerCell(nLocalCoarse, 0); // // // 1. Internal faces -// for (label facei = 0; facei < mesh.nInternalFaces(); facei++) +// for (label facei = 0; facei < mesh.nInternalFaces(); ++facei) // { // if (!blockedFace[facei]) // { @@ -880,7 +1106,7 @@ void Foam::decompositionMethod::calcCellCells // const labelList& offsets = cellCells.offsets(); // // // 1. For internal faces is just offsetted owner and neighbour -// for (label facei = 0; facei < mesh.nInternalFaces(); facei++) +// for (label facei = 0; facei < mesh.nInternalFaces(); ++facei) // { // if (!blockedFace[facei]) // { @@ -1032,7 +1258,7 @@ void Foam::decompositionMethod::calcCellCells // // label endIndex = cellCells.offsets()[celli+1]; // -// for (label i = startIndex; i < endIndex; i++) +// for (label i = startIndex; i < endIndex; ++i) // { // if (nbrCells.insert(cellCells.m()[i])) // { @@ -1180,11 +1406,11 @@ Foam::labelList Foam::decompositionMethod::decompose forAll(localRegion, celli) { - label regionI = localRegion[celli]; + const label regioni = localRegion[celli]; - if (regionCentres[regionI] == point::max) + if (regionCentres[regioni] == point::max) { - regionCentres[regionI] = mesh.cellCentres()[celli]; + regionCentres[regioni] = mesh.cellCentres()[celli]; } } @@ -1197,18 +1423,18 @@ Foam::labelList Foam::decompositionMethod::decompose { forAll(localRegion, celli) { - label regionI = localRegion[celli]; + const label regioni = localRegion[celli]; - regionWeights[regionI] += cellWeights[celli]; + regionWeights[regioni] += cellWeights[celli]; } } else { forAll(localRegion, celli) { - label regionI = localRegion[celli]; + const label regioni = localRegion[celli]; - regionWeights[regionI] += 1.0; + regionWeights[regioni] += 1.0; } } @@ -1224,11 +1450,11 @@ Foam::labelList Foam::decompositionMethod::decompose // Implement the explicitConnections since above decompose // does not know about them - forAll(explicitConnections, i) + forAll(explicitConnections, connectioni) { - const labelPair& baffle = explicitConnections[i]; - label f0 = baffle.first(); - label f1 = baffle.second(); + const labelPair& baffle = explicitConnections[connectioni]; + const label f0 = baffle.first(); + const label f1 = baffle.second(); if (!blockedFace[f0] && !blockedFace[f1]) { @@ -1292,7 +1518,7 @@ Foam::labelList Foam::decompositionMethod::decompose { if (!blockedFace[facei]) { - label own = mesh.faceOwner()[facei]; + const label own = mesh.faceOwner()[facei]; seedFaces[nUnblocked] = facei; seedData[nUnblocked] = minData(finalDecomp[own]); nUnblocked++; @@ -1361,10 +1587,8 @@ Foam::labelList Foam::decompositionMethod::decompose forAll(f, fp) { const labelList& pFaces = mesh.pointFaces()[f[fp]]; - forAll(pFaces, i) + for (const label facei : pFaces) { - label facei = pFaces[i]; - finalDecomp[mesh.faceOwner()[facei]] = proci; if (mesh.isInternalFace(facei)) { @@ -1433,9 +1657,9 @@ void Foam::decompositionMethod::setConstraints specifiedProcessorFaces.clear(); explicitConnections.clear(); - forAll(constraints_, constraintI) + forAll(constraints_, constrainti) { - constraints_[constraintI].add + constraints_[constrainti].add ( mesh, blockedFace, @@ -1457,9 +1681,9 @@ void Foam::decompositionMethod::applyConstraints labelList& decomposition ) { - forAll(constraints_, constraintI) + forAll(constraints_, constrainti) { - constraints_[constraintI].apply + constraints_[constrainti].apply ( mesh, blockedFace, diff --git a/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.H b/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.H index 75a797e1aee..96ad3afc982 100644 --- a/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.H +++ b/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.H @@ -25,7 +25,7 @@ Class Foam::decompositionMethod Description - Abstract base class for decomposition + Abstract base class for domain decomposition SourceFiles decompositionMethod.C @@ -43,29 +43,86 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class decompositionMethod Declaration + Class decompositionMethod Declaration \*---------------------------------------------------------------------------*/ class decompositionMethod { + // Private Member Functions + + //- Set PtrList of constraints by reading decompositionDict_. + void readConstraints(); + + //- Disallow default bitwise copy construct and assignment + decompositionMethod(const decompositionMethod&) = delete; + void operator=(const decompositionMethod&) = delete; + protected: + //- Selection type when handling the coefficients dictionary. + // To be used as a bit-mask for findCoeffsDict + enum selectionType + { + DEFAULT = 0, //!< Default request + EXACT = 1, //!< No fallback to "coeffs" if main name not found + MANDATORY = 2, //!< Fatal if dictionary could not be found + NULL_DICT = 4, //!< On failure, return dictionary::null instead + //!< of the top-level enclosing dictionary. + }; + + // Protected data + //- Top-level decomposition dictionary (eg, decomposeParDict) const dictionary& decompositionDict_; - label nProcessors_; + + //- Region-specific decomposition dictionary information + const dictionary& decompositionRegionDict_; + + //- Number of domains for the decomposition + label nDomains_; //- Optional constraints PtrList<decompositionConstraint> constraints_; -private: - // Private Member Functions + // Protected Member Functions - //- Disallow default bitwise copy construct and assignment - decompositionMethod(const decompositionMethod&); - void operator=(const decompositionMethod&); + //- Locate coeffsName dictionary or the fallback "coeffs" dictionary + //- within an enclosing dictionary. + // + // \param select choose to include "coeffs" in the search, make + // failure a FatalError, return dictionary::null instead on + // failure. + // + // \return the coefficients dictionary found. If nothing was found, + // return the enclosing dictionary or + // dictionary::null (depending on the select parameter). + static const dictionary& findCoeffsDict + ( + const dictionary& dict, + const word& coeffsName, + int select = selectionType::DEFAULT + ); + + + //- Locate coeffsName dictionary or the fallback "coeffs" dictionary. + // Searches both the region-specific decomposition dictionary + // and the top-level decomposition dictionary. + // + // \param select choose to include "coeffs" in the search, make + // failure a FatalError, return dictionary::null instead on + // failure. + // + // \return the coefficients dictionary found. If nothing was found, + // return the top-level (non-region) dictionary or + // dictionary::null (depending on the select parameter). + const dictionary& findCoeffsDict + ( + const word& coeffsName, + int select = selectionType::DEFAULT + ) const; public: @@ -82,9 +139,43 @@ public: decompositionMethod, dictionary, ( - const dictionary& decompositionDict + const dictionary& decompDict ), - (decompositionDict) + (decompDict) + ); + + declareRunTimeSelectionTable + ( + autoPtr, + decompositionMethod, + dictionaryRegion, + ( + const dictionary& decompDict, + const word& regionName + ), + (decompDict, regionName) + ); + + + // Static Methods + + //- Return the \c numberOfSubdomains entry from the dictionary + static label nDomains(const dictionary& decompDict); + + //- Return the \c numberOfSubdomains from a region within the + // "regions" sub-dictionary + static label nDomains + ( + const dictionary& decompDict, + const word& regionName + ); + + //- Return an optional region dictionary from "regions" sub-dictionary + // or dictionary::null on failure. + static const dictionary& optionalRegionDict + ( + const dictionary& decompDict, + const word& regionName ); @@ -93,14 +184,29 @@ public: //- Return a reference to the selected decomposition method static autoPtr<decompositionMethod> New ( - const dictionary& decompositionDict + const dictionary& decompDict + ); + + //- Return a reference to the selected decomposition method, + //- with region specification + static autoPtr<decompositionMethod> New + ( + const dictionary& decompDict, + const word& regionName ); // Constructors //- Construct given the decomposition dictionary - decompositionMethod(const dictionary& decompositionDict); + decompositionMethod(const dictionary& decompDict); + + //- Construct given the decomposition dictionary for specific region + decompositionMethod + ( + const dictionary& decompDict, + const word& regionName + ); //- Destructor @@ -110,9 +216,10 @@ public: // Member Functions - label nDomains() const + //- Number of domains + inline label nDomains() const { - return nProcessors_; + return nDomains_; } //- Is method parallel aware (i.e. does it synchronize domains across diff --git a/src/parallel/decompose/decompositionMethods/geomDecomp/geomDecomp.C b/src/parallel/decompose/decompositionMethods/geomDecomp/geomDecomp.C index 6f741b09598..1c2df26498a 100644 --- a/src/parallel/decompose/decompositionMethods/geomDecomp/geomDecomp.C +++ b/src/parallel/decompose/decompositionMethods/geomDecomp/geomDecomp.C @@ -25,36 +25,29 @@ License #include "geomDecomp.H" -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // -Foam::geomDecomp::geomDecomp -( - const dictionary& decompositionDict, - const word& derivedType -) -: - decompositionMethod(decompositionDict), - geomDecomDict_(decompositionDict.optionalSubDict(derivedType + "Coeffs")), - n_(geomDecomDict_.lookup("n")), - delta_(readScalar(geomDecomDict_.lookup("delta"))), - rotDelta_(I) +void Foam::geomDecomp::readCoeffs() { - // check that the case makes sense : + coeffsDict_.readIfPresent("delta", delta_); + + coeffsDict_.lookup("n") >> n_; - if (nProcessors_ != n_.x()*n_.y()*n_.z()) + // Verify that the input makes sense + if (nDomains_ != n_.x()*n_.y()*n_.z()) { FatalErrorInFunction - << "Wrong number of processor divisions in geomDecomp:" << nl - << "Number of domains : " << nProcessors_ << nl + << "Wrong number of domain divisions in geomDecomp:" << nl + << "Number of domains : " << nDomains_ << nl << "Wanted decomposition : " << n_ << exit(FatalError); } - scalar d = 1 - 0.5*delta_*delta_; - scalar d2 = sqr(d); + const scalar d = 1 - 0.5*delta_*delta_; + const scalar d2 = sqr(d); - scalar a = delta_; - scalar a2 = sqr(a); + const scalar a = delta_; + const scalar a2 = sqr(a); rotDelta_ = tensor ( @@ -65,4 +58,41 @@ Foam::geomDecomp::geomDecomp } +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::geomDecomp::geomDecomp +( + const word& derivedType, + const dictionary& decompDict, + int select +) +: + decompositionMethod(decompDict), + coeffsDict_(findCoeffsDict(derivedType + "Coeffs", select)), + n_(1,1,1), + delta_(0.001), + rotDelta_(I) +{ + readCoeffs(); +} + + +Foam::geomDecomp::geomDecomp +( + const word& derivedType, + const dictionary& decompDict, + const word& regionName, + int select +) +: + decompositionMethod(decompDict, regionName), + coeffsDict_(findCoeffsDict(derivedType + "Coeffs", select)), + n_(1,1,1), + delta_(0.001), + rotDelta_(I) +{ + readCoeffs(); +} + + // ************************************************************************* // diff --git a/src/parallel/decompose/decompositionMethods/geomDecomp/geomDecomp.H b/src/parallel/decompose/decompositionMethods/geomDecomp/geomDecomp.H index e1538356ee7..7684a2ef4ee 100644 --- a/src/parallel/decompose/decompositionMethods/geomDecomp/geomDecomp.H +++ b/src/parallel/decompose/decompositionMethods/geomDecomp/geomDecomp.H @@ -25,7 +25,14 @@ Class Foam::geomDecomp Description - Geometrical domain decomposition + Base for geometrical domain decomposition methods + + Base coefficients: + \table + Property | Description | Required | Default + n | (nx ny nz) | yes + delta | delta for rotation matrix | no | 0.001 + \endtable SourceFiles geomDecomp.C @@ -42,36 +49,56 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class geomDecomp Declaration + Class geomDecomp Declaration \*---------------------------------------------------------------------------*/ class geomDecomp : public decompositionMethod { + // Private Member Functions + + //- Read input values and initialize the rotDelta_ + void readCoeffs(); + protected: // Protected data - const dictionary& geomDecomDict_; + //- Coefficients for all derived methods + const dictionary& coeffsDict_; Vector<label> n_; + + //- Default = 0.001 scalar delta_; + tensor rotDelta_; public: // Constructors - //- Construct given the decomposition dictionary - // and the derived type name + //- Construct for derived type name and decomposition dictionary geomDecomp ( - const dictionary& decompositionDict, - const word& derivedType + const word& derivedType, + const dictionary& decompDict, + int select = selectionType::DEFAULT ); + //- Construct for derived type name, decomposition dictionary + //- and region name + geomDecomp + ( + const word& derivedType, + const dictionary& decompDict, + const word& regionName, + int select = selectionType::DEFAULT + ); + + //- Return for every coordinate the wanted processor number. virtual labelList decompose ( diff --git a/src/parallel/decompose/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.C b/src/parallel/decompose/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.C index 658ae83058a..486a29ea04e 100644 --- a/src/parallel/decompose/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.C +++ b/src/parallel/decompose/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation - \\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. + \\/ M anipulation | Copyright (C) 2015-2017 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -40,44 +40,51 @@ namespace Foam hierarchGeomDecomp, dictionary ); + + addToRunTimeSelectionTable + ( + decompositionMethod, + hierarchGeomDecomp, + dictionaryRegion + ); } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // void Foam::hierarchGeomDecomp::setDecompOrder() { - const word order(geomDecomDict_.lookup("order")); - - if (order.size() != 3) - { - FatalIOErrorInFunction - ( - decompositionDict_ - ) << "number of characters in order (" << order << ") != 3" - << exit(FatalIOError); - } + word order; - for (label i = 0; i < 3; ++i) + if (coeffsDict_.readIfPresent("order", order)) { - if (order[i] == 'x') - { - decompOrder_[i] = 0; - } - else if (order[i] == 'y') - { - decompOrder_[i] = 1; - } - else if (order[i] == 'z') - { - decompOrder_[i] = 2; - } - else + if (order.size() != 3) { FatalIOErrorInFunction ( decompositionDict_ - ) << "Illegal decomposition order " << order << endl - << "It should only contain x, y or z" << exit(FatalError); + ) << "number of characters in order (" << order << ") != 3" + << exit(FatalIOError); + } + + for (int i = 0; i < 3; ++i) + { + // Change [x-z] -> [0-2] + + switch (order[i]) + { + case 'x': decompOrder_[i] = 0; break; + case 'y': decompOrder_[i] = 1; break; + case 'z': decompOrder_[i] = 2; break; + + default: + FatalIOErrorInFunction + ( + decompositionDict_ + ) << "Illegal decomposition order " << order << nl + << "It should only contain x, y or z" + << exit(FatalError); + break; + } } } } @@ -704,7 +711,7 @@ Foam::labelList Foam::hierarchGeomDecomp::decompose label allSize = points.size(); reduce(allSize, sumOp<label>()); - const label sizeTol = max(1, label(1e-3*allSize/nProcessors_)); + const label sizeTol = max(1, label(1e-3*allSize/nDomains_)); // Sort recursive sortComponent @@ -745,7 +752,7 @@ Foam::labelList Foam::hierarchGeomDecomp::decompose label allSize = points.size(); reduce(allSize, sumOp<label>()); - const label sizeTol = max(1, label(1e-3*allSize/nProcessors_)); + const label sizeTol = max(1, label(1e-3*allSize/nDomains_)); // Sort recursive sortComponent @@ -767,11 +774,24 @@ Foam::labelList Foam::hierarchGeomDecomp::decompose Foam::hierarchGeomDecomp::hierarchGeomDecomp ( - const dictionary& decompositionDict + const dictionary& decompDict +) +: + geomDecomp(typeName, decompDict), + decompOrder_({0,1,2}) +{ + setDecompOrder(); +} + + +Foam::hierarchGeomDecomp::hierarchGeomDecomp +( + const dictionary& decompDict, + const word& regionName ) : - geomDecomp(decompositionDict, typeName), - decompOrder_() + geomDecomp(typeName, decompDict, regionName), + decompOrder_({0,1,2}) { setDecompOrder(); } diff --git a/src/parallel/decompose/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.H b/src/parallel/decompose/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.H index 2df6080f5b5..91fbf6d8770 100644 --- a/src/parallel/decompose/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.H +++ b/src/parallel/decompose/decompositionMethods/hierarchGeomDecomp/hierarchGeomDecomp.H @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -25,9 +25,10 @@ Class Foam::hierarchGeomDecomp Description - Does hierarchical decomposition of points. Works by first sorting the - points in x direction into equal sized bins, then in y direction and - finally in z direction. + Does hierarchical decomposition of points, selectable as \c hierarchical. + + Works by first sorting the points in x direction into equal sized bins, + then in y direction and finally in z direction. Uses single array to hold decomposition which is indexed as if it is a 3 dimensional array: @@ -44,6 +45,13 @@ Description Since the domains are of equal size the maximum difference in size is n[0]*n[1] (or n[1]*n[2]?) (small anyway) + Method coefficients: + \table + Property | Description | Required | Default + n | (nx ny nz) | yes + delta | delta for rotation matrix | no | 0.001 + order | order of operation | no | xyz + \endtable SourceFiles hierarchGeomDecomp.C @@ -61,7 +69,7 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class hierarchGeomDecomp Declaration + Class hierarchGeomDecomp Declaration \*---------------------------------------------------------------------------*/ class hierarchGeomDecomp @@ -77,6 +85,7 @@ class hierarchGeomDecomp // Private Member Functions //- Convert ordering string ("xyz") into list of components. + // Checks for bad entries, but no check for duplicate entries. void setDecompOrder(); //- Evaluates the weighted sizes for each sorted point. @@ -155,8 +164,8 @@ class hierarchGeomDecomp ); //- Disallow default bitwise copy construct and assignment - void operator=(const hierarchGeomDecomp&); - hierarchGeomDecomp(const hierarchGeomDecomp&); + void operator=(const hierarchGeomDecomp&) = delete; + hierarchGeomDecomp(const hierarchGeomDecomp&) = delete; public: @@ -168,7 +177,14 @@ public: // Constructors //- Construct given the decomposition dictionary - hierarchGeomDecomp(const dictionary& decompositionDict); + hierarchGeomDecomp(const dictionary& decompDict); + + //- Construct for decomposition dictionary and region name + hierarchGeomDecomp + ( + const dictionary& decompDict, + const word& regionName + ); //- Destructor diff --git a/src/parallel/decompose/decompositionMethods/manualDecomp/manualDecomp.C b/src/parallel/decompose/decompositionMethods/manualDecomp/manualDecomp.C index 0c42d691f6c..23cbd33e311 100644 --- a/src/parallel/decompose/decompositionMethods/manualDecomp/manualDecomp.C +++ b/src/parallel/decompose/decompositionMethods/manualDecomp/manualDecomp.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -21,9 +21,6 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. -Description - Decomposition given a cell-to-processor association in a file - \*---------------------------------------------------------------------------*/ #include "manualDecomp.H" @@ -43,21 +40,33 @@ namespace Foam manualDecomp, dictionary ); + + addToRunTimeSelectionTable + ( + decompositionMethod, + manualDecomp, + dictionaryRegion + ); } // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::manualDecomp::manualDecomp(const dictionary& decompositionDict) +Foam::manualDecomp::manualDecomp(const dictionary& decompDict) : - decompositionMethod(decompositionDict), - decompDataFile_ - ( - decompositionDict.optionalSubDict - ( - word(decompositionDict.lookup("method")) + "Coeffs" - ).lookup("dataFile") - ) + decompositionMethod(decompDict), + dataFile_(findCoeffsDict(typeName + "Coeffs").lookup("dataFile")) +{} + + +Foam::manualDecomp::manualDecomp +( + const dictionary& decompDict, + const word& regionName +) +: + decompositionMethod(decompDict, regionName), + dataFile_(findCoeffsDict(typeName + "Coeffs").lookup("dataFile")) {} @@ -74,7 +83,7 @@ Foam::labelList Foam::manualDecomp::decompose ( IOobject ( - decompDataFile_, + dataFile_, mesh.facesInstance(), mesh, IOobject::MUST_READ, @@ -93,18 +102,18 @@ Foam::labelList Foam::manualDecomp::decompose << finalDecomp.size() << " Number of points: " << points.size() << ".\n" << "Manual decomposition data read from file " - << decompDataFile_ << "." << endl + << dataFile_ << "." << endl << exit(FatalError); } - if (min(finalDecomp) < 0 || max(finalDecomp) > nProcessors_ - 1) + if (min(finalDecomp) < 0 || max(finalDecomp) > nDomains_ - 1) { FatalErrorInFunction << "According to the decomposition, cells assigned to " << "impossible processor numbers. Min processor = " << min(finalDecomp) << " Max processor = " << max(finalDecomp) << ".\n" << "Manual decomposition data read from file " - << decompDataFile_ << "." << endl + << dataFile_ << "." << endl << exit(FatalError); } diff --git a/src/parallel/decompose/decompositionMethods/manualDecomp/manualDecomp.H b/src/parallel/decompose/decompositionMethods/manualDecomp/manualDecomp.H index c453bcf73d6..ac97c4dbb32 100644 --- a/src/parallel/decompose/decompositionMethods/manualDecomp/manualDecomp.H +++ b/src/parallel/decompose/decompositionMethods/manualDecomp/manualDecomp.H @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -25,7 +25,13 @@ Class Foam::manualDecomp Description - Decomposition given a cell-to-processor association in a file + Decompose based on cell-to-processor association in a file + + Method coefficients: + \table + Property | Description | Required | Default + dataFile | filename of cell decomposition data | yes | + \endtable SourceFiles manualDecomp.C @@ -50,14 +56,14 @@ class manualDecomp { // Private data - fileName decompDataFile_; + fileName dataFile_; // Private Member Functions //- Disallow default bitwise copy construct and assignment - void operator=(const manualDecomp&); - manualDecomp(const manualDecomp&); + void operator=(const manualDecomp&) = delete; + manualDecomp(const manualDecomp&) = delete; public: @@ -69,7 +75,15 @@ public: // Constructors //- Construct given the decomposition dictionary - manualDecomp(const dictionary& decompositionDict); + manualDecomp(const dictionary& decompDict); + + //- Construct given the decomposition dictionary and region name + manualDecomp + ( + const dictionary& decompDict, + const word& regionName + ); + //- Destructor virtual ~manualDecomp() diff --git a/src/parallel/decompose/decompositionMethods/metisLikeDecomp/metisLikeDecomp.C b/src/parallel/decompose/decompositionMethods/metisLikeDecomp/metisLikeDecomp.C index 02d283c5482..7c3b6bb7fee 100644 --- a/src/parallel/decompose/decompositionMethods/metisLikeDecomp/metisLikeDecomp.C +++ b/src/parallel/decompose/decompositionMethods/metisLikeDecomp/metisLikeDecomp.C @@ -150,9 +150,28 @@ Foam::label Foam::metisLikeDecomp::decomposeGeneral // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::metisLikeDecomp::metisLikeDecomp(const dictionary& decompositionDict) +Foam::metisLikeDecomp::metisLikeDecomp +( + const word& derivedType, + const dictionary& decompDict, + int select +) +: + decompositionMethod(decompDict), + coeffsDict_(findCoeffsDict(derivedType + "Coeffs", select)) +{} + + +Foam::metisLikeDecomp::metisLikeDecomp +( + const word& derivedType, + const dictionary& decompDict, + const word& regionName, + int select +) : - decompositionMethod(decompositionDict) + decompositionMethod(decompDict, regionName), + coeffsDict_(findCoeffsDict(derivedType + "Coeffs", select)) {} diff --git a/src/parallel/decompose/decompositionMethods/metisLikeDecomp/metisLikeDecomp.H b/src/parallel/decompose/decompositionMethods/metisLikeDecomp/metisLikeDecomp.H index 27b81bf3e68..69af7acd3ca 100644 --- a/src/parallel/decompose/decompositionMethods/metisLikeDecomp/metisLikeDecomp.H +++ b/src/parallel/decompose/decompositionMethods/metisLikeDecomp/metisLikeDecomp.H @@ -60,6 +60,12 @@ class metisLikeDecomp protected: + // Protected data + + //- Coefficients for all derived methods + const dictionary& coeffsDict_; + + // Protected Member Functions //- Serial and/or collect/distribute for parallel operation @@ -84,8 +90,29 @@ public: // Constructors - //- Construct given the decomposition dictionary - metisLikeDecomp(const dictionary& decompositionDict); + //- Construct for derived type name and decomposition dictionary. + // The default search for the coefficients will return dictionary::null + // on failure. This avoids a name clash of a metis "method" with the + // top level. + metisLikeDecomp + ( + const word& derivedType, + const dictionary& decompDict, + int select = selectionType::NULL_DICT + ); + + //- Construct for derived type name, decomposition dictionary + //- and region name + // The default search for the coefficients will return dictionary::null + // on failure. This avoids a name clash of a metis "method" with the + // top level. + metisLikeDecomp + ( + const word& derivedType, + const dictionary& decompDict, + const word& regionName, + int select = selectionType::NULL_DICT + ); //- Destructor diff --git a/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.C b/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.C index 1bdc02aea9d..3b72aa6d888 100644 --- a/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.C +++ b/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.C @@ -41,11 +41,209 @@ namespace Foam multiLevelDecomp, dictionary ); + + addToRunTimeSelectionTable + ( + decompositionMethod, + multiLevelDecomp, + dictionaryRegion + ); } // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // +void Foam::multiLevelDecomp::createMethodsDict() +{ + methodsDict_.clear(); + + word defaultMethod; + labelList domains; + + label nTotal = 0; + label nLevels = 0; + + // Found (non-recursive, no patterns) "method" and "domains" ? + // Allow as quick short-cut entry + if + ( + // non-recursive, no patterns + coeffsDict_.readIfPresent("method", defaultMethod, false, false) + // non-recursive, no patterns + && coeffsDict_.readIfPresent("domains", domains, false, false) + ) + { + // Short-cut version specified by method, domains only + + nTotal = (domains.empty() ? 0 : 1); + + for (const label n : domains) + { + nTotal *= n; + ++nLevels; + } + + if (nTotal == 1) + { + // Emit Warning + nTotal = nDomains(); + nLevels = 1; + + domains.setSize(1); + domains[0] = nTotal; + } + else if (nTotal > 0 && nTotal < nDomains() && !(nDomains() % nTotal)) + { + // nTotal < nDomains, but with an integral factor, + // which we insert as level 0 + ++nLevels; + + labelList old(std::move(domains)); + + domains.setSize(old.size()+1); + + domains[0] = nDomains() / nTotal; + forAll(old, i) + { + domains[i+1] = old[i]; + } + nTotal *= domains[0]; + + Info<<" inferred level0 with " << domains[0] + << " domains" << nl << nl; + } + + if (!nLevels || nTotal != nDomains()) + { + FatalErrorInFunction + << "Top level decomposition specifies " << nDomains() + << " domains which is not equal to the product of" + << " all sub domains " << nTotal + << exit(FatalError); + } + + // Create editable methods dictionaries + nLevels = 0; + + // Common coeffs dictionary + const dictionary& subMethodCoeffsDict + ( + findCoeffsDict + ( + coeffsDict_, + defaultMethod + "Coeffs", + selectionType::NULL_DICT + ) + ); + + for (const label n : domains) + { + const word levelName("level" + Foam::name(nLevels++)); + + entry* dictptr = methodsDict_.set(levelName, dictionary()); + + dictionary& dict = dictptr->dict(); + dict.add("method", defaultMethod); + dict.add("numberOfSubdomains", n); + + // Inject coeffs dictionary too + if (subMethodCoeffsDict.size()) + { + dict.add(subMethodCoeffsDict.dictName(), subMethodCoeffsDict); + } + } + } + else + { + // Specified by full dictionaries + + // Create editable methods dictionaries + // - Only consider sub-dictionaries with a "numberOfSubdomains" entry + // This automatically filters out any coeffs dictionaries + + forAllConstIters(coeffsDict_, iter) + { + word methodName; + + if + ( + iter().isDict() + // non-recursive, no patterns + && iter().dict().found("numberOfSubdomains", false, false) + ) + { + // No method specified? can use a default method? + + const bool addDefaultMethod + ( + !(iter().dict().found("method", false, false)) + && !defaultMethod.empty() + ); + + entry* e = methodsDict_.add(iter()); + + if (addDefaultMethod && e && e->isDict()) + { + e->dict().add("method", defaultMethod); + } + } + } + } +} + + +void Foam::multiLevelDecomp::setMethods() +{ + // Assuming methodsDict_ has be properly created, convert the method + // dictionaries to actual methods + + label nLevels = 0; + + methods_.clear(); + methods_.setSize(methodsDict_.size()); + forAllConstIters(methodsDict_, iter) + { + // Dictionary entries only + // - these method dictioaries are non-regional + if (iter().isDict()) + { + methods_.set + ( + nLevels++, + // non-verbose would be nicer + decompositionMethod::New(iter().dict()) + ); + } + } + + methods_.setSize(nLevels); + + // Verify that nTotal is correct based on what each method delivers + + Info<< nl + << "Decompose " << type() << " [" << nDomains() << "] in " + << nLevels << " levels:" << endl; + + label nTotal = 1; + forAll(methods_, i) + { + Info<< " level " << i << " : " << methods_[i].type() + << " [" << methods_[i].nDomains() << "]" << endl; + + nTotal *= methods_[i].nDomains(); + } + + if (nTotal != nDomains()) + { + FatalErrorInFunction + << "Top level decomposition specifies " << nDomains() + << " domains which is not equal to the product of" + << " all sub domains " << nTotal + << exit(FatalError); + } +} + + // Given a subset of cells determine the new global indices. The problem // is in the cells from neighbouring processors which need to be renumbered. void Foam::multiLevelDecomp::subsetGlobalCellCells @@ -277,7 +475,7 @@ void Foam::multiLevelDecomp::decompose // Get original level0 dictionary and modify numberOfSubdomains dictionary level0Dict; - forAllConstIter(dictionary, methodsDict_, iter) + forAllConstIters(methodsDict_, iter) { if (iter().isDict()) { @@ -367,42 +565,45 @@ void Foam::multiLevelDecomp::decompose // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::multiLevelDecomp::multiLevelDecomp(const dictionary& decompositionDict) +Foam::multiLevelDecomp::multiLevelDecomp(const dictionary& decompDict) : - decompositionMethod(decompositionDict), - methodsDict_(decompositionDict_.subDict(typeName + "Coeffs")) + decompositionMethod(decompDict), + coeffsDict_ + ( + findCoeffsDict + ( + typeName + "Coeffs", + (selectionType::EXACT | selectionType::MANDATORY) + ) + ), + methodsDict_(), + methods_() { - methods_.setSize(methodsDict_.size()); - label nLevels = 0; - forAllConstIter(dictionary, methodsDict_, iter) - { - // Ignore primitive entries which may be there for additional control - if (iter().isDict()) - { - methods_.set(nLevels++, decompositionMethod::New(iter().dict())); - } - } - - methods_.setSize(nLevels); + createMethodsDict(); + setMethods(); +} - label nTot = 1; - Info<< "decompositionMethod " << type() << " :" << endl; - forAll(methods_, i) - { - Info<< " level " << i << " decomposing with " << methods_[i].type() - << " into " << methods_[i].nDomains() << " subdomains." << endl; - nTot *= methods_[i].nDomains(); - } - - if (nTot != nDomains()) - { - FatalErrorInFunction - << "Top level decomposition specifies " << nDomains() - << " domains which is not equal to the product of" - << " all sub domains " << nTot - << exit(FatalError); - } +Foam::multiLevelDecomp::multiLevelDecomp +( + const dictionary& decompDict, + const word& regionName +) +: + decompositionMethod(decompDict, regionName), + coeffsDict_ + ( + findCoeffsDict + ( + typeName + "Coeffs", + (selectionType::EXACT | selectionType::MANDATORY) + ) + ), + methodsDict_(), + methods_() +{ + createMethodsDict(); + setMethods(); } @@ -417,6 +618,7 @@ bool Foam::multiLevelDecomp::parallelAware() const return false; } } + return true; } diff --git a/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.H b/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.H index d11f14280b0..dcc40cd8dad 100644 --- a/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.H +++ b/src/parallel/decompose/decompositionMethods/multiLevelDecomp/multiLevelDecomp.H @@ -25,7 +25,7 @@ Class Foam::multiLevelDecomp Description - Decomposition given using consecutive application of decomposers. + Decompose given using consecutive application of decomposers. SourceFiles multiLevelDecomp.C @@ -50,6 +50,10 @@ class multiLevelDecomp { // Private data + //- Original coefficients for this method + const dictionary& coeffsDict_; + + //- Rewritten dictionary of individual methods dictionary methodsDict_; PtrList<decompositionMethod> methods_; @@ -57,6 +61,13 @@ class multiLevelDecomp // Private Member Functions + //- Fill the methodsDict_ + void createMethodsDict(); + + //- Set methods based on the contents of the methodsDict_ + void setMethods(); + + //- Given connectivity across processors work out connectivity // for a (consistent) subset void subsetGlobalCellCells @@ -98,7 +109,14 @@ public: // Constructors //- Construct given the decomposition dictionary - multiLevelDecomp(const dictionary& decompositionDict); + multiLevelDecomp(const dictionary& decompDict); + + //- Construct given decomposition dictionary and region name + multiLevelDecomp + ( + const dictionary& decompDict, + const word& regionName + ); //- Destructor diff --git a/src/parallel/decompose/decompositionMethods/noDecomp/noDecomp.C b/src/parallel/decompose/decompositionMethods/noDecomp/noDecomp.C index e62e588b9ec..9c4606fce56 100644 --- a/src/parallel/decompose/decompositionMethods/noDecomp/noDecomp.C +++ b/src/parallel/decompose/decompositionMethods/noDecomp/noDecomp.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -39,14 +39,32 @@ namespace Foam dictionary, none ); + + addNamedToRunTimeSelectionTable + ( + decompositionMethod, + noDecomp, + dictionaryRegion, + none + ); } // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::noDecomp::noDecomp(const dictionary& decompositionDict) +Foam::noDecomp::noDecomp(const dictionary& decompDict) +: + decompositionMethod(decompDict) +{} + + +Foam::noDecomp::noDecomp +( + const dictionary& decompDict, + const word& regionName +) : - decompositionMethod(decompositionDict) + decompositionMethod(decompDict, regionName) {} diff --git a/src/parallel/decompose/decompositionMethods/noDecomp/noDecomp.H b/src/parallel/decompose/decompositionMethods/noDecomp/noDecomp.H index 5c3459f16fa..74169998d27 100644 --- a/src/parallel/decompose/decompositionMethods/noDecomp/noDecomp.H +++ b/src/parallel/decompose/decompositionMethods/noDecomp/noDecomp.H @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -25,7 +25,9 @@ Class Foam::noDecomp Description - Dummy decomposition method + A dummy decomposition method, selected as \c none. + + Method coefficients: \a none SourceFiles noDecomp.C @@ -52,8 +54,8 @@ class noDecomp // Private Member Functions //- Disallow default bitwise copy construct and assignment - void operator=(const noDecomp&); - noDecomp(const noDecomp&); + void operator=(const noDecomp&) = delete; + noDecomp(const noDecomp&) = delete; public: @@ -65,7 +67,15 @@ public: // Constructors //- Construct given the decomposition dictionary - noDecomp(const dictionary& decompositionDict); + noDecomp(const dictionary& decompDict); + + //- Construct given the decomposition dictionary and region name + noDecomp + ( + const dictionary& decompDict, + const word& regionName + ); + //- Destructor virtual ~noDecomp() @@ -74,15 +84,15 @@ public: // Member Functions - //- Manual decompose does not care about proc boundaries - is all - // up to the user. + //- Manual decompose does not care about proc boundaries - it is all + //- up to the user. virtual bool parallelAware() const { return true; } - //- Return for every coordinate the wanted processor number. Use the - // mesh connectivity (if needed) + //- Return for every coordinate the wanted processor number. + // Use the mesh connectivity (if needed) virtual labelList decompose ( const polyMesh& mesh, @@ -93,8 +103,8 @@ public: return labelList(cc.size(), Pstream::myProcNo()); } - //- Return for every coordinate the wanted processor number. Explicitly - // provided connectivity - does not use mesh_. + //- Return for every coordinate the wanted processor number. + // Explicitly provided connectivity - does not use mesh_. // The connectivity is equal to mesh.cellCells() except for // - in parallel the cell numbers are global cell numbers (starting // from 0 at processor0 and then incrementing all through the diff --git a/src/parallel/decompose/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.C b/src/parallel/decompose/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.C index a91b743a18e..ece25f250f8 100644 --- a/src/parallel/decompose/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.C +++ b/src/parallel/decompose/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -41,8 +41,16 @@ namespace Foam simpleGeomDecomp, dictionary ); + + addToRunTimeSelectionTable + ( + decompositionMethod, + simpleGeomDecomp, + dictionaryRegion + ); } + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // assignToProcessorGroup : given nCells cells and nProcGroup processor @@ -297,9 +305,19 @@ Foam::labelList Foam::simpleGeomDecomp::decomposeOneProc // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::simpleGeomDecomp::simpleGeomDecomp(const dictionary& decompositionDict) +Foam::simpleGeomDecomp::simpleGeomDecomp(const dictionary& decompDict) +: + geomDecomp(typeName, decompDict) +{} + + +Foam::simpleGeomDecomp::simpleGeomDecomp +( + const dictionary& decompDict, + const word& regionName +) : - geomDecomp(decompositionDict, typeName) + geomDecomp(typeName, decompDict, regionName) {} diff --git a/src/parallel/decompose/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.H b/src/parallel/decompose/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.H index 9b32d1c5084..c5abc336d9c 100644 --- a/src/parallel/decompose/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.H +++ b/src/parallel/decompose/decompositionMethods/simpleGeomDecomp/simpleGeomDecomp.H @@ -25,6 +25,14 @@ Class Foam::simpleGeomDecomp Description + Simple geometric decomposition, selectable as \c simple + + Method coefficients: + \table + Property | Description | Required | Default + n | (nx ny nz) | yes + delta | delta for rotation matrix | no | 0.001 + \endtable SourceFiles simpleGeomDecomp.C @@ -40,7 +48,7 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class simpleGeomDecomp Declaration + Class simpleGeomDecomp Declaration \*---------------------------------------------------------------------------*/ class simpleGeomDecomp @@ -69,8 +77,8 @@ class simpleGeomDecomp ) const; //- Disallow default bitwise copy construct and assignment - void operator=(const simpleGeomDecomp&); - simpleGeomDecomp(const simpleGeomDecomp&); + void operator=(const simpleGeomDecomp&) = delete; + simpleGeomDecomp(const simpleGeomDecomp&) = delete; public: @@ -81,8 +89,15 @@ public: // Constructors - //- Construct given the decomposition dictionary - simpleGeomDecomp(const dictionary& decompositionDict); + //- Construct given decomposition dictionary + simpleGeomDecomp(const dictionary& decompDict); + + //- Construct given decomposition dictionary and region name + simpleGeomDecomp + ( + const dictionary& decompDict, + const word& regionName + ); //- Destructor diff --git a/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.C b/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.C index 2d9dbeff3fa..a2a68a871ec 100644 --- a/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.C +++ b/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.C @@ -46,10 +46,10 @@ namespace Foam // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::structuredDecomp::structuredDecomp(const dictionary& decompositionDict) +Foam::structuredDecomp::structuredDecomp(const dictionary& decompDict) : - decompositionMethod(decompositionDict), - methodDict_(decompositionDict_.optionalSubDict(typeName + "Coeffs")), + decompositionMethod(decompDict), + methodDict_(findCoeffsDict(typeName + "Coeffs", selectionType::MANDATORY)), patches_(methodDict_.lookup("patches")) { methodDict_.set("numberOfSubdomains", nDomains()); @@ -76,20 +76,16 @@ Foam::labelList Foam::structuredDecomp::decompose const labelHashSet patchIDs(pbm.patchSet(patches_)); label nFaces = 0; - forAllConstIter(labelHashSet, patchIDs, iter) + for (const label patchi : patchIDs) { - nFaces += pbm[iter.key()].size(); + nFaces += pbm[patchi].size(); } // Extract a submesh. labelHashSet patchCells(2*nFaces); - forAllConstIter(labelHashSet, patchIDs, iter) + for (const label patchi : patchIDs) { - const labelUList& fc = pbm[iter.key()].faceCells(); - forAll(fc, i) - { - patchCells.insert(fc[i]); - } + patchCells.insert(pbm[patchi].faceCells()); } // Subset the layer of cells next to the patch @@ -118,9 +114,9 @@ Foam::labelList Foam::structuredDecomp::decompose labelList patchFaces(nFaces); List<topoDistanceData> patchData(nFaces); nFaces = 0; - forAllConstIter(labelHashSet, patchIDs, iter) + for (const label patchi : patchIDs) { - const polyPatch& pp = pbm[iter.key()]; + const polyPatch& pp = pbm[patchi]; const labelUList& fc = pp.faceCells(); forAll(fc, i) { diff --git a/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.H b/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.H index a2374f40a05..171a51be01c 100644 --- a/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.H +++ b/src/parallel/decompose/decompositionMethods/structuredDecomp/structuredDecomp.H @@ -25,7 +25,7 @@ Class Foam::structuredDecomp Description - Decomposition by walking out decomposition of patch cells mesh. + Walk out decomposition of patch cells mesh - selectable as \c structured. SourceFiles structuredDecomp.C @@ -41,7 +41,7 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class structuredDecomp Declaration + Class structuredDecomp Declaration \*---------------------------------------------------------------------------*/ class structuredDecomp @@ -60,8 +60,8 @@ class structuredDecomp // Private Member Functions //- Disallow default bitwise copy construct and assignment - void operator=(const structuredDecomp&); - structuredDecomp(const structuredDecomp&); + void operator=(const structuredDecomp&) = delete; + structuredDecomp(const structuredDecomp&) = delete; public: @@ -73,7 +73,7 @@ public: // Constructors //- Construct given the decomposition dictionary - structuredDecomp(const dictionary& decompositionDict); + structuredDecomp(const dictionary& decompDict); //- Destructor diff --git a/src/parallel/decompose/kahipDecomp/kahipDecomp.C b/src/parallel/decompose/kahipDecomp/kahipDecomp.C index 2bf6d884057..7774934163e 100644 --- a/src/parallel/decompose/kahipDecomp/kahipDecomp.C +++ b/src/parallel/decompose/kahipDecomp/kahipDecomp.C @@ -38,7 +38,20 @@ License namespace Foam { defineTypeNameAndDebug(kahipDecomp, 0); - addToRunTimeSelectionTable(decompositionMethod, kahipDecomp, dictionary); + + addToRunTimeSelectionTable + ( + decompositionMethod, + kahipDecomp, + dictionary + ); + + addToRunTimeSelectionTable + ( + decompositionMethod, + kahipDecomp, + dictionaryRegion + ); } @@ -73,9 +86,6 @@ Foam::label Foam::kahipDecomp::decomposeSerial int seed = 0; bool verbose = false; - const dictionary* coeffsDictPtr = - decompositionDict_.subDictPtr("kahipCoeffs"); - #if WM_LABEL_SIZE == 64 if (xadj.size()-1 > INT_MAX) { @@ -120,109 +130,91 @@ Foam::label Foam::kahipDecomp::decomposeSerial } } - // Additional sizing parameters (testing only) - std::map<std::string, std::vector<int>> sizingParams; + kahipConfig = + configNames.lookupOrDefault("config", coeffsDict_, kahipConfig); - // Check for user supplied weights and decomp options - if (coeffsDictPtr) - { - const dictionary& coeffDict = *coeffsDictPtr; + coeffsDict_.readIfPresent("imbalance", imbalance); + coeffsDict_.readIfPresent("verbose", verbose); - //- Find the key in the dictionary and return the corresponding - // enumeration element based on its name. - // Return the default value if the key was not found in the dictionary. - // Fatal if the enumerated name was incorrect. + Info<< "kahipDecomp :" + << " config=" << configNames[kahipConfig] + << " imbalance=" << imbalance; - kahipConfig = - configNames.lookupOrDefault("config", coeffDict, kahipConfig); + if (coeffsDict_.readIfPresent("seed", seed)) + { + Info<< " seed=" << seed; + } - coeffDict.readIfPresent("imbalance", imbalance); - coeffDict.readIfPresent("verbose", verbose); + // Additional sizing parameters (testing only) + std::map<std::string, std::vector<int>> sizingParams; + + List<int> labels; + if + ( + coeffsDict_.readIfPresent("hierarchy", labels) + && !labels.empty() + ) + { + std::vector<int> vec; + vec.reserve(labels.size()+1); - Info<< "kahipDecomp :" - << " config=" << configNames[kahipConfig] - << " imbalance=" << imbalance; + // Verify sizing - List<int> labels; - if - ( - coeffDict.readIfPresent("hierarchy", labels) - && !labels.empty() - ) + int n = 1; + for (auto val : labels) { - std::vector<int> vec; - vec.reserve(labels.size()+1); + n *= val; + vec.push_back(val); + } - // Verify sizing + if (n != nDomains_) + { + // Size mismatch. Try to correct. - int n = 1; - for (auto val : labels) + if (nDomains_ % n) { - n *= val; - vec.push_back(val); - } + WarningInFunction + << "Mismatch in number of processors and " + << "hierarchy specified" << flatOutput(labels) << endl; - if (n != nProcessors_) - { - // Size mismatch. Try to correct. - - if (nProcessors_ % n) - { - WarningInFunction - << "Mismatch in number of processors and " - << "hierarchy specified" << flatOutput(labels) << endl; - - vec.clear(); - } - else - { - // Evenly divisible, add extra hierarchy level - vec.push_back(nProcessors_ / n); - } + vec.clear(); } - - if (!vec.empty()) + else { - sizingParams["hierarchy"] = std::move(vec); - - Info<< " hierarchy=" << flatOutput(labels); + // Evenly divisible, add extra hierarchy level + vec.push_back(nDomains_ / n); } } - if - ( - coeffDict.readIfPresent("distance", labels) - && !labels.empty() - ) + if (!vec.empty()) { - std::vector<int> vec(labels.size()); - - forAll(labels, i) - { - vec[i] = labels[i]; - } - - sizingParams["distance"] = std::move(vec); - - Info<< " distance=" << flatOutput(labels); + sizingParams["hierarchy"] = std::move(vec); + Info<< " hierarchy=" << flatOutput(labels); } + } + + if + ( + coeffsDict_.readIfPresent("distance", labels) + && !labels.empty() + ) + { + std::vector<int> vec(labels.size()); - if (coeffDict.readIfPresent("seed", seed)) + forAll(labels, i) { - Info<< " seed=" << seed; + vec[i] = labels[i]; } - Info<< endl; - } - else - { - Info<< "kahipDecomp :" - << " config=" << configNames[kahipConfig] - << " imbalance=" << imbalance << endl; + sizingParams["distance"] = std::move(vec); + Info<< " distance=" << flatOutput(labels); } + Info<< endl; + + // Number of partitions - int nParts = nProcessors_; + int nParts = nDomains_; // Output: number of cut edges int edgeCut = 0; @@ -322,9 +314,19 @@ Foam::label Foam::kahipDecomp::decomposeSerial // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::kahipDecomp::kahipDecomp(const dictionary& decompositionDict) +Foam::kahipDecomp::kahipDecomp(const dictionary& decompDict) +: + metisLikeDecomp(typeName, decompDict, selectionType::NULL_DICT) +{} + + +Foam::kahipDecomp::kahipDecomp +( + const dictionary& decompDict, + const word& regionName +) : - metisLikeDecomp(decompositionDict) + metisLikeDecomp(typeName, decompDict, regionName, selectionType::NULL_DICT) {} diff --git a/src/parallel/decompose/kahipDecomp/kahipDecomp.H b/src/parallel/decompose/kahipDecomp/kahipDecomp.H index c399a68e010..7084836a166 100644 --- a/src/parallel/decompose/kahipDecomp/kahipDecomp.H +++ b/src/parallel/decompose/kahipDecomp/kahipDecomp.H @@ -31,6 +31,8 @@ Description When run in parallel will collect the entire graph on to the master, decompose and send back. + Coefficients dictionary: \a kahipCoeffs, \a coeffs. + \verbatim numberOfSubdomains N; method kahip; @@ -42,12 +44,12 @@ Description } \endverbatim - Where the coefficients dictionary is optional, as are all its entries: + Method coefficients: \table - Property | Description | Default value - config | fast / eco / strong | fast - imbalance | imbalance on cells between domains | 0.01 - seed | initial value for random number generator | 0 + Property | Description | Required | Default + config | fast / eco / strong | no | fast + imbalance | imbalance on cells between domains | no | 0.01 + seed | initial value for random number generator | no | 0 \endtable SourceFiles @@ -114,7 +116,14 @@ public: // Constructors //- Construct given the decomposition dictionary - kahipDecomp(const dictionary& decompositionDict); + kahipDecomp(const dictionary& decompDict); + + //- Construct given the decomposition dictionary and region name + kahipDecomp + ( + const dictionary& decompDict, + const word& regionName + ); //- Destructor diff --git a/src/parallel/decompose/metisDecomp/metisDecomp.C b/src/parallel/decompose/metisDecomp/metisDecomp.C index efd0d64b1fa..d6a4f5ea983 100644 --- a/src/parallel/decompose/metisDecomp/metisDecomp.C +++ b/src/parallel/decompose/metisDecomp/metisDecomp.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation - \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd. + \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -39,7 +39,20 @@ extern "C" namespace Foam { defineTypeNameAndDebug(metisDecomp, 0); - addToRunTimeSelectionTable(decompositionMethod, metisDecomp, dictionary); + + addToRunTimeSelectionTable + ( + decompositionMethod, + metisDecomp, + dictionary + ); + + addToRunTimeSelectionTable + ( + decompositionMethod, + metisDecomp, + dictionaryRegion + ); } @@ -148,19 +161,19 @@ Foam::label Foam::metisDecomp::decomposeSerial { processorWeights /= sum(processorWeights); - if (processorWeights.size() != nProcessors_) + if (processorWeights.size() != nDomains_) { FatalErrorInFunction << "Number of processor weights " << processorWeights.size() - << " does not equal number of domains " << nProcessors_ + << " does not equal number of domains " << nDomains_ << exit(FatalError); } } } label ncon = 1; - label nProcs = nProcessors_; + label nProcs = nDomains_; // Output: cell -> processor addressing decomp.setSize(numCells); @@ -213,9 +226,19 @@ Foam::label Foam::metisDecomp::decomposeSerial // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::metisDecomp::metisDecomp(const dictionary& decompositionDict) +Foam::metisDecomp::metisDecomp(const dictionary& decompDict) +: + metisLikeDecomp(typeName, decompDict, selectionType::NULL_DICT) +{} + + +Foam::metisDecomp::metisDecomp +( + const dictionary& decompDict, + const word& regionName +) : - metisLikeDecomp(decompositionDict) + metisLikeDecomp(typeName, decompDict, regionName, selectionType::NULL_DICT) {} diff --git a/src/parallel/decompose/metisDecomp/metisDecomp.H b/src/parallel/decompose/metisDecomp/metisDecomp.H index d037fab95fe..65e8f75182f 100644 --- a/src/parallel/decompose/metisDecomp/metisDecomp.H +++ b/src/parallel/decompose/metisDecomp/metisDecomp.H @@ -30,24 +30,26 @@ Description When run in parallel will collect the entire graph on to the master, decompose and send back. + Coefficients dictionary: \a metisCoeffs, \a coeffs. + \verbatim numberOfSubdomains N; method metis; metisCoeffs { - method recursive; // k-way + method recursive; // k-way options ( ...); - processorWeights ( ... ); + processorWeights ( ... ); } \endverbatim - Where the coefficients dictionary is optional, as are all its entries: + Method coefficients: \table - Property | Description | Default value - method | recursive / k-way | recursive - options | metis options | - processorWeights | list of weighting per partition | + Property | Description | Required | Default + method | recursive / k-way | no | recursive + options | metis options | no + processorWeights | list of weighting per partition | no \endtable SourceFiles @@ -97,7 +99,14 @@ public: // Constructors //- Construct given the decomposition dictionary - metisDecomp(const dictionary& decompositionDict); + metisDecomp(const dictionary& decompDict); + + //- Construct given the decomposition dictionary and region name + metisDecomp + ( + const dictionary& decompDict, + const word& regionName + ); //- Destructor diff --git a/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C b/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C index 610de99d68a..08a146053e2 100644 --- a/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C +++ b/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C @@ -228,7 +228,20 @@ License namespace Foam { defineTypeNameAndDebug(ptscotchDecomp, 0); - addToRunTimeSelectionTable(decompositionMethod, ptscotchDecomp, dictionary); + + addToRunTimeSelectionTable + ( + decompositionMethod, + ptscotchDecomp, + dictionary + ); + + addToRunTimeSelectionTable + ( + decompositionMethod, + ptscotchDecomp, + dictionaryRegion + ); } // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // @@ -478,56 +491,50 @@ Foam::label Foam::ptscotchDecomp::decompose } // Dump graph - if (decompositionDict_.found("scotchCoeffs")) + if (coeffsDict_.lookupOrDefault("writeGraph", false)) { - const dictionary& scotchCoeffs = - decompositionDict_.subDict("scotchCoeffs"); + OFstream str + ( + graphPath_ + "_" + Foam::name(Pstream::myProcNo()) + ".dgr" + ); - if (scotchCoeffs.lookupOrDefault("writeGraph", false)) + Pout<< "Dumping Scotch graph file to " << str.name() << endl + << "Use this in combination with dgpart." << endl; + + globalIndex globalCells(xadjSize-1); + + // Distributed graph file (.grf) + const label version = 2; + str << version << nl; + // Number of files (procglbnbr) + str << Pstream::nProcs(); + // My file number (procloc) + str << ' ' << Pstream::myProcNo() << nl; + + // Total number of vertices (vertglbnbr) + str << globalCells.size(); + // Total number of connections (edgeglbnbr) + str << ' ' << returnReduce(xadj[xadjSize-1], sumOp<label>()) << nl; + // Local number of vertices (vertlocnbr) + str << xadjSize-1; + // Local number of connections (edgelocnbr) + str << ' ' << xadj[xadjSize-1] << nl; + // Numbering starts from 0 + label baseval = 0; + // 100*hasVertlabels+10*hasEdgeWeights+1*hasVertWeighs + str << baseval << ' ' << "000" << nl; + for (label celli = 0; celli < xadjSize-1; celli++) { - OFstream str - ( - graphPath_ + "_" + Foam::name(Pstream::myProcNo()) + ".dgr" - ); - - Pout<< "Dumping Scotch graph file to " << str.name() << endl - << "Use this in combination with dgpart." << endl; - - globalIndex globalCells(xadjSize-1); - - // Distributed graph file (.grf) - label version = 2; - str << version << nl; - // Number of files (procglbnbr) - str << Pstream::nProcs(); - // My file number (procloc) - str << ' ' << Pstream::myProcNo() << nl; - - // Total number of vertices (vertglbnbr) - str << globalCells.size(); - // Total number of connections (edgeglbnbr) - str << ' ' << returnReduce(xadj[xadjSize-1], sumOp<label>()) - << nl; - // Local number of vertices (vertlocnbr) - str << xadjSize-1; - // Local number of connections (edgelocnbr) - str << ' ' << xadj[xadjSize-1] << nl; - // Numbering starts from 0 - label baseval = 0; - // 100*hasVertlabels+10*hasEdgeWeights+1*hasVertWeighs - str << baseval << ' ' << "000" << nl; - for (label celli = 0; celli < xadjSize-1; celli++) - { - label start = xadj[celli]; - label end = xadj[celli+1]; - str << end-start; + const label start = xadj[celli]; + const label end = xadj[celli+1]; - for (label i = start; i < end; i++) - { - str << ' ' << adjncy[i]; - } - str << nl; + str << end-start; // size + + for (label i = start; i < end; i++) + { + str << ' ' << adjncy[i]; } + str << nl; } } @@ -538,27 +545,19 @@ Foam::label Foam::ptscotchDecomp::decompose SCOTCH_Strat stradat; check(SCOTCH_stratInit(&stradat), "SCOTCH_stratInit"); - if (decompositionDict_.found("scotchCoeffs")) + string strategy; + if (coeffsDict_.readIfPresent("strategy", strategy)) { - const dictionary& scotchCoeffs = - decompositionDict_.subDict("scotchCoeffs"); - - - string strategy; - if (scotchCoeffs.readIfPresent("strategy", strategy)) + if (debug) { - if (debug) - { - Info<< "ptscotchDecomp : Using strategy " << strategy << endl; - } - SCOTCH_stratDgraphMap(&stradat, strategy.c_str()); - //fprintf(stdout, "S\tStrat="); - //SCOTCH_stratSave(&stradat, stdout); - //fprintf(stdout, "\n"); + Info<< "ptscotchDecomp : Using strategy " << strategy << endl; } + SCOTCH_stratDgraphMap(&stradat, strategy.c_str()); + //fprintf(stdout, "S\tStrat="); + //SCOTCH_stratSave(&stradat, stdout); + //fprintf(stdout, "\n"); } - // Graph // ~~~~~ @@ -632,7 +631,6 @@ Foam::label Foam::ptscotchDecomp::decompose } - if (debug) { Pout<< "SCOTCH_dgraphInit" << endl; @@ -697,14 +695,11 @@ Foam::label Foam::ptscotchDecomp::decompose check(SCOTCH_archInit(&archdat), "SCOTCH_archInit"); List<label> processorWeights; - if (decompositionDict_.found("scotchCoeffs")) - { - const dictionary& scotchCoeffs = - decompositionDict_.subDict("scotchCoeffs"); - - scotchCoeffs.readIfPresent("processorWeights", processorWeights); - } - if (processorWeights.size()) + if + ( + coeffsDict_.readIfPresent("processorWeights", processorWeights) + && processorWeights.size() + ) { if (debug) { @@ -716,7 +711,7 @@ Foam::label Foam::ptscotchDecomp::decompose ( SCOTCH_archCmpltw ( - &archdat, nProcessors_, processorWeights.begin() + &archdat, nDomains_, processorWeights.begin() ), "SCOTCH_archCmpltw" ); @@ -729,7 +724,7 @@ Foam::label Foam::ptscotchDecomp::decompose } check ( - SCOTCH_archCmplt(&archdat, nProcessors_), + SCOTCH_archCmplt(&archdat, nDomains_), "SCOTCH_archCmplt" ); } @@ -778,7 +773,7 @@ Foam::label Foam::ptscotchDecomp::decompose // SCOTCH_dgraphPart // ( // &grafdat, - // nProcessors_, // partnbr + // nDomains_, // partnbr // &stradat, // const SCOTCH_Strat * // finalDecomp.begin() // parttab // ), @@ -802,9 +797,21 @@ Foam::label Foam::ptscotchDecomp::decompose // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::ptscotchDecomp::ptscotchDecomp(const dictionary& decompositionDict) +Foam::ptscotchDecomp::ptscotchDecomp(const dictionary& decompDict) +: + decompositionMethod(decompDict), + coeffsDict_(findCoeffsDict("scotchCoeffs", selectionType::NULL_DICT)) +{} + + +Foam::ptscotchDecomp::ptscotchDecomp +( + const dictionary& decompDict, + const word& regionName +) : - decompositionMethod(decompositionDict) + decompositionMethod(decompDict, regionName), + coeffsDict_(findCoeffsDict("scotchCoeffs", selectionType::NULL_DICT)) {} diff --git a/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.H b/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.H index a9146ae9e6f..9d613cd9280 100644 --- a/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.H +++ b/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.H @@ -26,8 +26,11 @@ Class Description PTScotch domain decomposition. + For the main details about how to define the strategies, see scotchDecomp. + Coefficients dictionary: \a scotchCoeffs, \a coeffs. + Nonetheless, when decomposing in parallel, using <tt>writeGraph=true</tt> will write out \c .dgr files for debugging. For example, use these files with \c dgpart as follows: @@ -57,7 +60,7 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class ptscotchDecomp Declaration + Class ptscotchDecomp Declaration \*---------------------------------------------------------------------------*/ class ptscotchDecomp @@ -66,6 +69,9 @@ class ptscotchDecomp { // Private data + //- Original coefficients for this method + dictionary coeffsDict_; + //- Output path and name for optional grf file. fileName graphPath_; @@ -111,8 +117,12 @@ public: // Constructors - //- Construct given the decomposition dictionary and mesh - ptscotchDecomp(const dictionary& decompositionDict); + //- Construct given the decomposition dictionary + ptscotchDecomp(const dictionary& decompDict); + + + //- Construct given the decomposition dictionary and region name + ptscotchDecomp(const dictionary& decompDict, const word& regionName); //- Destructor diff --git a/src/parallel/decompose/scotchDecomp/scotchDecomp.C b/src/parallel/decompose/scotchDecomp/scotchDecomp.C index 88f14fac7ca..a29ecc63f76 100644 --- a/src/parallel/decompose/scotchDecomp/scotchDecomp.C +++ b/src/parallel/decompose/scotchDecomp/scotchDecomp.C @@ -155,6 +155,13 @@ namespace Foam scotchDecomp, dictionary ); + + addToRunTimeSelectionTable + ( + decompositionMethod, + scotchDecomp, + dictionaryRegion + ); } // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // @@ -184,11 +191,8 @@ Foam::label Foam::scotchDecomp::decomposeSerial List<label>& decomp ) { - const dictionary* coeffsDictPtr = - decompositionDict_.subDictPtr("scotchCoeffs"); - // Dump graph - if (coeffsDictPtr && coeffsDictPtr->lookupOrDefault("writeGraph", false)) + if (coeffsDict_.lookupOrDefault("writeGraph", false)) { OFstream str(graphPath_); @@ -230,20 +234,17 @@ Foam::label Foam::scotchDecomp::decomposeSerial SCOTCH_Strat stradat; check(SCOTCH_stratInit(&stradat), "SCOTCH_stratInit"); - if (coeffsDictPtr) + string strategy; + if (coeffsDict_.readIfPresent("strategy", strategy)) { - string strategy; - if (coeffsDictPtr->readIfPresent("strategy", strategy)) + if (debug) { - if (debug) - { - Info<< "scotchDecomp : Using strategy " << strategy << endl; - } - SCOTCH_stratGraphMap(&stradat, strategy.c_str()); - //fprintf(stdout, "S\tStrat="); - //SCOTCH_stratSave(&stradat, stdout); - //fprintf(stdout, "\n"); + Info<< "scotchDecomp : Using strategy " << strategy << endl; } + SCOTCH_stratGraphMap(&stradat, strategy.c_str()); + //fprintf(stdout, "S\tStrat="); + //SCOTCH_stratSave(&stradat, stdout); + //fprintf(stdout, "\n"); } @@ -330,8 +331,7 @@ Foam::label Foam::scotchDecomp::decomposeSerial List<label> processorWeights; if ( - coeffsDictPtr - && coeffsDictPtr->readIfPresent("processorWeights", processorWeights) + coeffsDict_.readIfPresent("processorWeights", processorWeights) && processorWeights.size() ) { @@ -344,7 +344,7 @@ Foam::label Foam::scotchDecomp::decomposeSerial ( SCOTCH_archCmpltw ( - &archdat, nProcessors_, processorWeights.begin() + &archdat, nDomains_, processorWeights.begin() ), "SCOTCH_archCmpltw" ); @@ -353,7 +353,7 @@ Foam::label Foam::scotchDecomp::decomposeSerial { check ( - SCOTCH_archCmplt(&archdat, nProcessors_), + SCOTCH_archCmplt(&archdat, nDomains_), "SCOTCH_archCmplt" ); @@ -433,7 +433,7 @@ Foam::label Foam::scotchDecomp::decomposeSerial // SCOTCH_graphPart // ( // &grafdat, - // nProcessors_, // partnbr + // nDomains_, // partnbr // &stradat, // const SCOTCH_Strat * // decomp.begin() // parttab // ), @@ -453,9 +453,19 @@ Foam::label Foam::scotchDecomp::decomposeSerial // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::scotchDecomp::scotchDecomp(const dictionary& decompositionDict) +Foam::scotchDecomp::scotchDecomp(const dictionary& decompDict) +: + metisLikeDecomp(typeName, decompDict, selectionType::NULL_DICT) +{} + + +Foam::scotchDecomp::scotchDecomp +( + const dictionary& decompDict, + const word& regionName +) : - metisLikeDecomp(decompositionDict) + metisLikeDecomp(typeName, decompDict, regionName, selectionType::NULL_DICT) {} diff --git a/src/parallel/decompose/scotchDecomp/scotchDecomp.H b/src/parallel/decompose/scotchDecomp/scotchDecomp.H index ca182253d7c..a32a682f30d 100644 --- a/src/parallel/decompose/scotchDecomp/scotchDecomp.H +++ b/src/parallel/decompose/scotchDecomp/scotchDecomp.H @@ -26,10 +26,13 @@ Class Description Scotch domain decomposition. + When run in parallel will collect the whole graph on to the master, decompose and send back. Use ptscotchDecomp for proper distributed decomposition. + Coefficients dictionary: \a scotchCoeffs, \a coeffs. + Quoting from the Scotch forum, on the 2008-08-22 10:09, Francois PELLEGRINI posted the following details: \verbatim @@ -262,8 +265,15 @@ public: // Constructors - //- Construct given the decomposition dictionary and mesh - scotchDecomp(const dictionary& decompositionDict); + //- Construct given the decomposition dictionary + scotchDecomp(const dictionary& decompDict); + + //- Construct given the decomposition dictionary and region name + scotchDecomp + ( + const dictionary& decompDict, + const word& regionName + ); //- Destructor diff --git a/tutorials/IO/fileHandler/system/decomposeParDict b/tutorials/IO/fileHandler/system/decomposeParDict index 341581df062..df7138cff9f 100644 --- a/tutorials/IO/fileHandler/system/decomposeParDict +++ b/tutorials/IO/fileHandler/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,12 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (4 1 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (4 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (4 1 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile ""; } distributed no; diff --git a/tutorials/basic/overLaplacianDyMFoam/heatTransfer/system/decomposeParDict b/tutorials/basic/overLaplacianDyMFoam/heatTransfer/system/decomposeParDict index 138625c7da8..47cf5911d3c 100644 --- a/tutorials/basic/overLaplacianDyMFoam/heatTransfer/system/decomposeParDict +++ b/tutorials/basic/overLaplacianDyMFoam/heatTransfer/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,11 +18,11 @@ numberOfSubdomains 2; method hierarchical; -hierarchicalCoeffs +coeffs { n (2 1 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/system/decomposeParDict b/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/system/decomposeParDict index f6b97abcd50..e62ff29c034 100644 --- a/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/system/decomposeParDict +++ b/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/system/decomposeParDict @@ -10,31 +10,20 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -numberOfSubdomains 4; +numberOfSubdomains 4; -method simple; +method simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile "decompositionData"; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "decompositionData"; } // ************************************************************************* // diff --git a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/decomposeParDict b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/decomposeParDict index 3f544b27384..a5b0041fbf3 100644 --- a/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/decomposeParDict +++ b/tutorials/combustion/XiDyMFoam/annularCombustorTurbine/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,11 +18,11 @@ numberOfSubdomains 6; method hierarchical; -hierarchicalCoeffs +coeffs { - n ( 6 1 1 ); - delta 0.001; - order xyz; + n (6 1 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } preservePatches (cyclic0 cyclic1 ami0 ami1); diff --git a/tutorials/combustion/fireFoam/LES/compartmentFire/system/decomposeParDict b/tutorials/combustion/fireFoam/LES/compartmentFire/system/decomposeParDict index 9a3167e3401..1aa2fb3b07a 100644 --- a/tutorials/combustion/fireFoam/LES/compartmentFire/system/decomposeParDict +++ b/tutorials/combustion/fireFoam/LES/compartmentFire/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,27 +18,4 @@ numberOfSubdomains 8; method scotch; -simpleCoeffs -{ - n ( 4 1 4 ); - delta 0.001; -} - -hierarchicalCoeffs -{ - n ( 1 2 2 ); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile "cellDecomposition"; -} - -metisCoeffs -{ -} - - // ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/LES/compartmentFire/system/panelRegion/decomposeParDict b/tutorials/combustion/fireFoam/LES/compartmentFire/system/panelRegion/decomposeParDict index 183eff948af..2f9021fa9e3 100644 --- a/tutorials/combustion/fireFoam/LES/compartmentFire/system/panelRegion/decomposeParDict +++ b/tutorials/combustion/fireFoam/LES/compartmentFire/system/panelRegion/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -26,27 +25,9 @@ structuredCoeffs simpleCoeffs { - n ( 5 1 4 ); - delta 0.001; + n (5 1 4); + delta 0.001; } } - -hierarchicalCoeffs -{ - n ( 1 2 2 ); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile "cellDecomposition"; -} - -metisCoeffs -{ -} - - // ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/decomposeParDict b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/decomposeParDict index b1c15391bc7..7182f3d1a1e 100644 --- a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/decomposeParDict +++ b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,26 +18,12 @@ numberOfSubdomains 6; method simple; -simpleCoeffs -{ - n (1 3 2); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 2 2); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile "cellDecomposition"; -} - -scotchCoeffs +coeffs { + n (1 3 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "cellDecomposition"; } // ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/panelRegion/decomposeParDict b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/panelRegion/decomposeParDict index c08a60ec1da..8428f9470d5 100644 --- a/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/panelRegion/decomposeParDict +++ b/tutorials/combustion/fireFoam/LES/oppositeBurningPanels/system/panelRegion/decomposeParDict @@ -10,14 +10,12 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 6; - method structured; structuredCoeffs @@ -33,21 +31,12 @@ structuredCoeffs } } - -hierarchicalCoeffs -{ - n (1 2 2); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile "cellDecomposition"; -} - -metisCoeffs +coeffs { + n (1 2 3); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "cellDecomposition"; } // ************************************************************************* // diff --git a/tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/decomposeParDict b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/decomposeParDict index a2496cc2234..58435778b83 100644 --- a/tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/decomposeParDict +++ b/tutorials/combustion/fireFoam/LES/smallPoolFire3D/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,11 @@ numberOfSubdomains 4; method hierarchical; -simpleCoeffs -{ - n (1 2 2); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 2 2); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile "cellDecomposition"; +coeffs + n (1 2 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "cellDecomposition"; } diff --git a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/decomposeParDict b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/decomposeParDict index 5126da72cdc..84dc5aecf54 100644 --- a/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/decomposeParDict +++ b/tutorials/combustion/reactingFoam/RAS/DLR_A_LTS/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,27 +18,12 @@ numberOfSubdomains 6; method simple; -simpleCoeffs +coeffs { - n (1 1 6); - delta 0.001; + n (1 1 6); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile ""; } -hierarchicalCoeffs -{ - n ( 1 1 1 ); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots ( ); - - // ************************************************************************* // diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/decomposeParDict b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/decomposeParDict index ede2181dfee..415cda309aa 100644 --- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/decomposeParDict +++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2DLTS_GRI_TDAC/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,11 +18,11 @@ numberOfSubdomains 4; method hierarchical; -hierarchicalCoeffs +coeffs { n (2 2 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/decomposeParDict b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/decomposeParDict index 02feb195c5e..415cda309aa 100644 --- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/decomposeParDict +++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI/system/decomposeParDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | +| \\ / O peration | Version: plus | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,11 +18,11 @@ numberOfSubdomains 4; method hierarchical; -hierarchicalCoeffs +coeffs { n (2 2 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/decomposeParDict b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/decomposeParDict index ede2181dfee..415cda309aa 100644 --- a/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/decomposeParDict +++ b/tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,11 +18,11 @@ numberOfSubdomains 4; method hierarchical; -hierarchicalCoeffs +coeffs { n (2 2 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/system/decomposeParDict b/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/system/decomposeParDict index 86fb26d3803..56c4070c754 100644 --- a/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/system/decomposeParDict +++ b/tutorials/compressible/rhoCentralFoam/LadenburgJet60psi/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,27 +18,13 @@ numberOfSubdomains 8; method simple; -simpleCoeffs +coeffs { - n (8 1 1); - delta 0.001; + n (8 1 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile ""; } -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots ( ); - // ************************************************************************* // diff --git a/tutorials/compressible/rhoPimpleAdiabaticFoam/rutlandVortex2D/system/decomposeParDict b/tutorials/compressible/rhoPimpleAdiabaticFoam/rutlandVortex2D/system/decomposeParDict index 20edb36158f..87f1a305f0d 100644 --- a/tutorials/compressible/rhoPimpleAdiabaticFoam/rutlandVortex2D/system/decomposeParDict +++ b/tutorials/compressible/rhoPimpleAdiabaticFoam/rutlandVortex2D/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,11 +18,11 @@ numberOfSubdomains 3; method hierarchical; -hierarchicalCoeffs +coeffs { - n (3 1 1); - delta 0.001; - order xyz; + n (3 1 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/compressible/rhoPimpleFoam/RAS/squareBendLiq/system/decomposeParDict b/tutorials/compressible/rhoPimpleFoam/RAS/squareBendLiq/system/decomposeParDict index d34bb5a0262..b27efc23b92 100644 --- a/tutorials/compressible/rhoPimpleFoam/RAS/squareBendLiq/system/decomposeParDict +++ b/tutorials/compressible/rhoPimpleFoam/RAS/squareBendLiq/system/decomposeParDict @@ -31,13 +31,4 @@ hierarchicalCoeffs order xyz; } -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots ( ); - // ************************************************************************* // diff --git a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/decomposeParDict b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/decomposeParDict index 0903cf53158..2ccf121cd38 100644 --- a/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/decomposeParDict +++ b/tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/compressible/rhoSimpleFoam/gasMixing/injectorPipe/system/decomposeParDict b/tutorials/compressible/rhoSimpleFoam/gasMixing/injectorPipe/system/decomposeParDict index 8427b2c142c..7e1f9ae4302 100644 --- a/tutorials/compressible/rhoSimpleFoam/gasMixing/injectorPipe/system/decomposeParDict +++ b/tutorials/compressible/rhoSimpleFoam/gasMixing/injectorPipe/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,11 +18,11 @@ numberOfSubdomains 8; method hierarchical; -hierarchicalCoeffs +coeffs { - n ( 2 2 2 ); - delta 0.001; - order xyz; + n (2 2 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } preservePatches (); diff --git a/tutorials/compressible/rhoSimpleFoam/squareBend/system/decomposeParDict b/tutorials/compressible/rhoSimpleFoam/squareBend/system/decomposeParDict index 0ab23bff191..b27efc23b92 100644 --- a/tutorials/compressible/rhoSimpleFoam/squareBend/system/decomposeParDict +++ b/tutorials/compressible/rhoSimpleFoam/squareBend/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -32,14 +31,4 @@ hierarchicalCoeffs order xyz; } -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots ( ); - - // ************************************************************************* // diff --git a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/decomposeParDict b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/decomposeParDict index 0ab23bff191..b27efc23b92 100644 --- a/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/decomposeParDict +++ b/tutorials/compressible/rhoSimpleFoam/squareBendLiq/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -32,14 +31,4 @@ hierarchicalCoeffs order xyz; } -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots ( ); - - // ************************************************************************* // diff --git a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/system/decomposeParDict b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/system/decomposeParDict index a456e9fc859..86086b49129 100644 --- a/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/system/decomposeParDict +++ b/tutorials/compressible/sonicFoam/RAS/nacaAirfoil/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,18 +18,11 @@ numberOfSubdomains 6; method simple; -simpleCoeffs +coeffs { - n (3 2 1); - delta 0.001; + n (3 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -hierarchicalCoeffs -{ - n (3 2 1); - delta 0.001; - order xyz; -} - - // ************************************************************************* // diff --git a/tutorials/discreteMethods/dsmcFoam/freeSpacePeriodic/system/decomposeParDict b/tutorials/discreteMethods/dsmcFoam/freeSpacePeriodic/system/decomposeParDict index 0c9252b9ad3..6cf530be19d 100644 --- a/tutorials/discreteMethods/dsmcFoam/freeSpacePeriodic/system/decomposeParDict +++ b/tutorials/discreteMethods/dsmcFoam/freeSpacePeriodic/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,27 +18,12 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (1 2 2); - delta 0.001; + n (1 2 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots ( ); - // ************************************************************************* // diff --git a/tutorials/discreteMethods/dsmcFoam/freeSpaceStream/system/decomposeParDict b/tutorials/discreteMethods/dsmcFoam/freeSpaceStream/system/decomposeParDict index 0c9252b9ad3..6cf530be19d 100644 --- a/tutorials/discreteMethods/dsmcFoam/freeSpaceStream/system/decomposeParDict +++ b/tutorials/discreteMethods/dsmcFoam/freeSpaceStream/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,27 +18,12 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (1 2 2); - delta 0.001; + n (1 2 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots ( ); - // ************************************************************************* // diff --git a/tutorials/discreteMethods/dsmcFoam/supersonicCorner/system/decomposeParDict b/tutorials/discreteMethods/dsmcFoam/supersonicCorner/system/decomposeParDict index 61f7f8c0dd8..50920452090 100644 --- a/tutorials/discreteMethods/dsmcFoam/supersonicCorner/system/decomposeParDict +++ b/tutorials/discreteMethods/dsmcFoam/supersonicCorner/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,27 +18,11 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots ( ); - - // ************************************************************************* // diff --git a/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/system/decomposeParDict b/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/system/decomposeParDict index 61f7f8c0dd8..50920452090 100644 --- a/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/system/decomposeParDict +++ b/tutorials/discreteMethods/dsmcFoam/wedge15Ma5/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,27 +18,11 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots ( ); - - // ************************************************************************* // diff --git a/tutorials/discreteMethods/molecularDynamics/mdEquilibrationFoam/periodicCubeArgon/system/decomposeParDict b/tutorials/discreteMethods/molecularDynamics/mdEquilibrationFoam/periodicCubeArgon/system/decomposeParDict index fb9d7877dc2..3bac4854f0b 100644 --- a/tutorials/discreteMethods/molecularDynamics/mdEquilibrationFoam/periodicCubeArgon/system/decomposeParDict +++ b/tutorials/discreteMethods/molecularDynamics/mdEquilibrationFoam/periodicCubeArgon/system/decomposeParDict @@ -15,34 +15,15 @@ FoamFile // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - numberOfSubdomains 2; method simple; -simpleCoeffs -{ - n (2 1 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs +coeffs { - dataFile ""; + n (2 1 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -distributed no; - -roots -( -); - - // ************************************************************************* // diff --git a/tutorials/discreteMethods/molecularDynamics/mdEquilibrationFoam/periodicCubeWater/system/decomposeParDict b/tutorials/discreteMethods/molecularDynamics/mdEquilibrationFoam/periodicCubeWater/system/decomposeParDict index c4d7c417233..55b2a30194c 100644 --- a/tutorials/discreteMethods/molecularDynamics/mdEquilibrationFoam/periodicCubeWater/system/decomposeParDict +++ b/tutorials/discreteMethods/molecularDynamics/mdEquilibrationFoam/periodicCubeWater/system/decomposeParDict @@ -15,34 +15,16 @@ FoamFile // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots -( -); - // ************************************************************************* // diff --git a/tutorials/discreteMethods/molecularDynamics/mdFoam/nanoNozzle/system/decomposeParDict b/tutorials/discreteMethods/molecularDynamics/mdFoam/nanoNozzle/system/decomposeParDict index e1dbbc6af0f..ce2d6502b1d 100644 --- a/tutorials/discreteMethods/molecularDynamics/mdFoam/nanoNozzle/system/decomposeParDict +++ b/tutorials/discreteMethods/molecularDynamics/mdFoam/nanoNozzle/system/decomposeParDict @@ -15,34 +15,15 @@ FoamFile // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - numberOfSubdomains 4; method scotch; -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs +coeffs { - dataFile ""; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -distributed no; - -roots -( -); - - // ************************************************************************* // diff --git a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/system/decomposeParDict b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/system/decomposeParDict index 5c21df91e4f..079c1974676 100644 --- a/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/system/decomposeParDict +++ b/tutorials/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,23 +18,13 @@ numberOfSubdomains 2; method scotch; -simpleCoeffs -{ - n (4 1 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (3 2 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile "cellDecomposition"; -} +//coeffs +//{ +// n (3 2 1); +// delta 0.001; +// order xyz; +// dataFile "cellDecomposition"; +//} // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/decomposeParDict deleted file mode 100644 index 1a49f7a69be..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/decomposeParDict +++ /dev/null @@ -1,72 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - note "mesh decomposition control dictionary"; - location "system"; - object decomposeParDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - -method scotch; -// method hierarchical; -// method simple; -// method manual; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -scotchCoeffs -{ - //processorWeights - //( - // 1 - // 1 - // 1 - // 1 - //); - //writeGraph true; - //strategy "b"; -} - -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/bottomWater/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/decomposeParDict index 916ce1f4e20..bc03b02cb93 100644 --- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/decomposeParDict @@ -10,11 +10,8 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; - location "system"; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; @@ -27,34 +24,12 @@ method scotch; // method simple; // method manual; -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs +coeffs { n (2 2 1); - delta 0.001; - order xyz; -} - - -manualCoeffs -{ + //delta 0.001; // default=0.001 + //order xyz; // default=xzy dataFile "decompositionData"; } - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - - // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/decomposeParDict deleted file mode 100644 index 91ef8baa9e4..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/decomposeParDict +++ /dev/null @@ -1,44 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - location "system"; - object decomposeParDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -method scotch; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -scotchCoeffs -{ -} - -manualCoeffs -{ - dataFile "decompositionData"; -} - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/heater/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/decomposeParDict deleted file mode 100644 index 91ef8baa9e4..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/decomposeParDict +++ /dev/null @@ -1,44 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - location "system"; - object decomposeParDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -method scotch; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -scotchCoeffs -{ -} - -manualCoeffs -{ - dataFile "decompositionData"; -} - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/leftSolid/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/decomposeParDict deleted file mode 100644 index 91ef8baa9e4..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/decomposeParDict +++ /dev/null @@ -1,44 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - location "system"; - object decomposeParDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -method scotch; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -scotchCoeffs -{ -} - -manualCoeffs -{ - dataFile "decompositionData"; -} - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/rightSolid/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/decomposeParDict deleted file mode 100644 index 1a49f7a69be..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/decomposeParDict +++ /dev/null @@ -1,72 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - note "mesh decomposition control dictionary"; - location "system"; - object decomposeParDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - -method scotch; -// method hierarchical; -// method simple; -// method manual; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -scotchCoeffs -{ - //processorWeights - //( - // 1 - // 1 - // 1 - // 1 - //); - //writeGraph true; - //strategy "b"; -} - -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledMultiRegionHeater/system/topAir/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/air/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/air/decomposeParDict deleted file mode 100644 index ffe8be78e47..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/air/decomposeParDict +++ /dev/null @@ -1,44 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - note "mesh decomposition control dictionary"; - location "system"; - object decomposeParDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -method scotch; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - - -manualCoeffs -{ - dataFile "decompositionData"; -} - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/air/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/air/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/air/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/decomposeParDict index 1bdeb6b7ad9..c1498e9029e 100644 --- a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/decomposeParDict @@ -10,38 +10,24 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; - location "system"; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; method scotch; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs +coeffs { n (2 2 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "decompositionData"; } scotchCoeffs { } -manualCoeffs -{ - dataFile "decompositionData"; -} - // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/floor/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/floor/decomposeParDict deleted file mode 100644 index ffe8be78e47..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/floor/decomposeParDict +++ /dev/null @@ -1,44 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - note "mesh decomposition control dictionary"; - location "system"; - object decomposeParDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -method scotch; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - - -manualCoeffs -{ - dataFile "decompositionData"; -} - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/floor/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/floor/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/floor/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/solid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/solid/decomposeParDict deleted file mode 100644 index ffe8be78e47..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/solid/decomposeParDict +++ /dev/null @@ -1,44 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - note "mesh decomposition control dictionary"; - location "system"; - object decomposeParDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -method scotch; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - - -manualCoeffs -{ - dataFile "decompositionData"; -} - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/solid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/solid/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalSolarLoad/system/solid/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allmesh b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allmesh new file mode 100755 index 00000000000..7f27e81ea3b --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allmesh @@ -0,0 +1,26 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory +. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions + +runApplication blockMesh +runApplication topoSet +runApplication splitMeshRegions -cellZones -overwrite + +# Remove fluid fields from solid regions (important for post-processing) +for i in heater leftSolid rightSolid +do + rm -f 0*/$i/{nut,alphat,epsilon,k,U,p_rgh} +done + +for i in bottomWater topAir heater leftSolid rightSolid +do + runApplication -s $i changeDictionary -region $i +done + + +echo +echo "Creating files for paraview post-processing" +echo +paraFoam -touchAll + +#------------------------------------------------------------------------------ diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allrun b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allrun index 5cf86d4458f..efb377ca892 100755 --- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allrun +++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/Allrun @@ -2,22 +2,7 @@ cd ${0%/*} || exit 1 # Run from this directory . $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions -runApplication blockMesh -runApplication topoSet -runApplication splitMeshRegions -cellZones -overwrite - -# remove fluid fields from solid regions (important for post-processing) -for i in heater leftSolid rightSolid -do - rm -f 0*/$i/{nut,alphat,epsilon,k,U,p_rgh} -done - - -for i in bottomWater topAir heater leftSolid rightSolid -do - runApplication -s $i changeDictionary -region $i -done - +runApplication ./Allmesh #-- Run on single processor #runApplication $(getApplication) @@ -31,10 +16,4 @@ runParallel $(getApplication) # Reconstruct runApplication reconstructPar -allRegions - -echo -echo "creating files for paraview post-processing" -echo -paraFoam -touchAll - #------------------------------------------------------------------------------ diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/README.txt b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/README.txt index 647f11981d3..a50b770783c 100644 --- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/README.txt +++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/README.txt @@ -1,2 +1,6 @@ -The 0/ field files contain nonsense patchFields. All interesting -work is done using the changeDictionaryDicts. +- The 0/ field files contain nonsense patchFields. + All interesting work is done using the changeDictionaryDicts. + +- The uses region-specific decomposition for the heater. + This can be useful when the solid region is relatively small and a + normal decomposition would result in very few cells per process. diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomWater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomWater/decomposeParDict deleted file mode 100644 index 1a49f7a69be..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomWater/decomposeParDict +++ /dev/null @@ -1,72 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - note "mesh decomposition control dictionary"; - location "system"; - object decomposeParDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - -method scotch; -// method hierarchical; -// method simple; -// method manual; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -scotchCoeffs -{ - //processorWeights - //( - // 1 - // 1 - // 1 - // 1 - //); - //writeGraph true; - //strategy "b"; -} - -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomWater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomWater/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/bottomWater/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/decomposeParDict index 916ce1f4e20..e630d521198 100644 --- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/decomposeParDict @@ -10,11 +10,8 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; - location "system"; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; @@ -23,38 +20,29 @@ numberOfSubdomains 4; // preserveFaceZones (heater solid1 solid3); method scotch; + // method hierarchical; // method simple; // method manual; -simpleCoeffs +regions { - n (2 2 1); - delta 0.001; + heater + { + numberOfSubdomains 1; + method none; + + coeffs + { + n (1 1 1); + delta 0.001; + } + } } -hierarchicalCoeffs +coeffs { - n (2 2 1); - delta 0.001; - order xyz; + n (2 2 1); } - -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - - // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/decomposeParDict deleted file mode 100644 index 91ef8baa9e4..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/decomposeParDict +++ /dev/null @@ -1,44 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - location "system"; - object decomposeParDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -method scotch; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -scotchCoeffs -{ -} - -manualCoeffs -{ - dataFile "decompositionData"; -} - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/heater/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/decomposeParDict deleted file mode 100644 index 91ef8baa9e4..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/decomposeParDict +++ /dev/null @@ -1,44 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - location "system"; - object decomposeParDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -method scotch; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -scotchCoeffs -{ -} - -manualCoeffs -{ - dataFile "decompositionData"; -} - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/leftSolid/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/decomposeParDict deleted file mode 100644 index 91ef8baa9e4..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/decomposeParDict +++ /dev/null @@ -1,44 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - location "system"; - object decomposeParDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -method scotch; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -scotchCoeffs -{ -} - -manualCoeffs -{ - dataFile "decompositionData"; -} - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/rightSolid/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/decomposeParDict deleted file mode 100644 index 1a49f7a69be..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/decomposeParDict +++ /dev/null @@ -1,72 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - note "mesh decomposition control dictionary"; - location "system"; - object decomposeParDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - -method scotch; -// method hierarchical; -// method simple; -// method manual; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -scotchCoeffs -{ - //processorWeights - //( - // 1 - // 1 - // 1 - // 1 - //); - //writeGraph true; - //strategy "b"; -} - -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/topAir/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/bottomAir/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/bottomAir/decomposeParDict index 1a49f7a69be..7263dc66d4a 100644 --- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/bottomAir/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/bottomAir/decomposeParDict @@ -10,11 +10,8 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; - location "system"; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; @@ -27,17 +24,12 @@ method scotch; // method simple; // method manual; -simpleCoeffs +coeffs { n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "decompositionData"; } scotchCoeffs @@ -53,20 +45,4 @@ scotchCoeffs //strategy "b"; } -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - - // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/decomposeParDict index 742a2495dfc..747b5114b73 100644 --- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/decomposeParDict @@ -10,11 +10,8 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; - location "system"; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; @@ -27,17 +24,12 @@ method hierarchical; // method simple; // method manual; -simpleCoeffs +coeffs { n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "decompositionData"; } scotchCoeffs @@ -53,20 +45,4 @@ scotchCoeffs //strategy "b"; } -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - - // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/heater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/heater/decomposeParDict index 1a49f7a69be..6f60341487a 100644 --- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/heater/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/heater/decomposeParDict @@ -10,11 +10,8 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; - location "system"; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; @@ -27,17 +24,12 @@ method scotch; // method simple; // method manual; -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs +coeffs { n (2 2 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "decompositionData"; } scotchCoeffs @@ -53,20 +45,5 @@ scotchCoeffs //strategy "b"; } -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/leftSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/leftSolid/decomposeParDict deleted file mode 100644 index 1a49f7a69be..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/leftSolid/decomposeParDict +++ /dev/null @@ -1,72 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - note "mesh decomposition control dictionary"; - location "system"; - object decomposeParDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - -method scotch; -// method hierarchical; -// method simple; -// method manual; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -scotchCoeffs -{ - //processorWeights - //( - // 1 - // 1 - // 1 - // 1 - //); - //writeGraph true; - //strategy "b"; -} - -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/leftSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/leftSolid/decomposeParDict new file mode 120000 index 00000000000..d6dd0b5c063 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/leftSolid/decomposeParDict @@ -0,0 +1 @@ +../heater/decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/rightSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/rightSolid/decomposeParDict deleted file mode 100644 index 1a49f7a69be..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/rightSolid/decomposeParDict +++ /dev/null @@ -1,72 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - note "mesh decomposition control dictionary"; - location "system"; - object decomposeParDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - -method scotch; -// method hierarchical; -// method simple; -// method manual; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -scotchCoeffs -{ - //processorWeights - //( - // 1 - // 1 - // 1 - // 1 - //); - //writeGraph true; - //strategy "b"; -} - -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/rightSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/rightSolid/decomposeParDict new file mode 120000 index 00000000000..d6dd0b5c063 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/rightSolid/decomposeParDict @@ -0,0 +1 @@ +../heater/decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/topAir/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/topAir/decomposeParDict deleted file mode 100644 index 1a49f7a69be..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/topAir/decomposeParDict +++ /dev/null @@ -1,72 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - note "mesh decomposition control dictionary"; - location "system"; - object decomposeParDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - -method scotch; -// method hierarchical; -// method simple; -// method manual; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -scotchCoeffs -{ - //processorWeights - //( - // 1 - // 1 - // 1 - // 1 - //); - //writeGraph true; - //strategy "b"; -} - -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/topAir/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/topAir/decomposeParDict new file mode 120000 index 00000000000..3523816fd8c --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/topAir/decomposeParDict @@ -0,0 +1 @@ +../bottomAir/decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/cabin/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/cabin/decomposeParDict deleted file mode 100644 index 0d50f520e43..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/cabin/decomposeParDict +++ /dev/null @@ -1,25 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - note "mesh decomposition control dictionary"; - location "system"; - object decomposeParDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -method scotch; - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/cabin/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/cabin/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/cabin/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/decomposeParDict index 0d50f520e43..2ccf121cd38 100644 --- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/decomposeParDict @@ -10,16 +10,12 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; - location "system"; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; method scotch; - // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/windshield/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/windshield/decomposeParDict deleted file mode 100644 index 0d50f520e43..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/windshield/decomposeParDict +++ /dev/null @@ -1,25 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - note "mesh decomposition control dictionary"; - location "system"; - object decomposeParDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -method scotch; - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/windshield/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/windshield/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/windshield/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/cabin/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/cabin/decomposeParDict deleted file mode 100644 index e0a1bb5397a..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/cabin/decomposeParDict +++ /dev/null @@ -1,29 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - location "system"; - object decomposeParDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -method simple; - -simpleCoeffs -{ - n (1 2 2); - delta 0.001; -} - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/cabin/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/cabin/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/cabin/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/decomposeParDict index e0a1bb5397a..93b519fc7d1 100644 --- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,11 +18,9 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { n (1 2 2); - delta 0.001; } - // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/exterior/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/exterior/decomposeParDict deleted file mode 100644 index e0a1bb5397a..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/exterior/decomposeParDict +++ /dev/null @@ -1,29 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - location "system"; - object decomposeParDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -method simple; - -simpleCoeffs -{ - n (1 2 2); - delta 0.001; -} - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/exterior/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/exterior/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/exterior/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/ice/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/ice/decomposeParDict deleted file mode 100644 index e0a1bb5397a..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/ice/decomposeParDict +++ /dev/null @@ -1,29 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - location "system"; - object decomposeParDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -method simple; - -simpleCoeffs -{ - n (1 2 2); - delta 0.001; -} - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/ice/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/ice/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldDefrost/system/ice/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/system/air/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/system/air/decomposeParDict index d7b4b378864..fbeb943163d 100644 --- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/system/air/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/system/air/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,27 +18,11 @@ numberOfSubdomains 4; method scotch; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots ( ); - - // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/system/decomposeParDict index d7b4b378864..fbeb943163d 100644 --- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/system/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,27 +18,11 @@ numberOfSubdomains 4; method scotch; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots ( ); - - // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/system/porous/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/system/porous/decomposeParDict index 61f7f8c0dd8..50920452090 100644 --- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/system/porous/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/heatExchanger/system/porous/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,27 +18,11 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots ( ); - - // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/jouleHeatingSolid/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/jouleHeatingSolid/system/decomposeParDict index 5448946b393..22490ad0e50 100644 --- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/jouleHeatingSolid/system/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/jouleHeatingSolid/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,5 +18,4 @@ numberOfSubdomains 4; method scotch; - // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/decomposeParDict deleted file mode 100644 index ffe8be78e47..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/decomposeParDict +++ /dev/null @@ -1,44 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - note "mesh decomposition control dictionary"; - location "system"; - object decomposeParDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -method scotch; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - - -manualCoeffs -{ - dataFile "decompositionData"; -} - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/bottomAir/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/decomposeParDict index 1a49f7a69be..b3f8705217e 100644 --- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/decomposeParDict @@ -10,11 +10,8 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; - location "system"; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; @@ -27,46 +24,17 @@ method scotch; // method simple; // method manual; -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs +coeffs { n (2 2 1); - delta 0.001; - order xyz; } scotchCoeffs { - //processorWeights - //( - // 1 - // 1 - // 1 - // 1 - //); + //processorWeights ( 1 1 1 1 ); //writeGraph true; //strategy "b"; } -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/heater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/heater/decomposeParDict deleted file mode 100644 index 222243ec950..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/heater/decomposeParDict +++ /dev/null @@ -1,46 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - note "mesh decomposition control dictionary"; - location "system"; - object decomposeParDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - - -method scotch; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - - -manualCoeffs -{ - dataFile "decompositionData"; -} - - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/heater/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/heater/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/heater/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/decomposeParDict deleted file mode 100644 index 222243ec950..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/decomposeParDict +++ /dev/null @@ -1,46 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - note "mesh decomposition control dictionary"; - location "system"; - object decomposeParDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - - -method scotch; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - - -manualCoeffs -{ - dataFile "decompositionData"; -} - - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/leftSolid/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/decomposeParDict deleted file mode 100644 index 222243ec950..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/decomposeParDict +++ /dev/null @@ -1,46 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - note "mesh decomposition control dictionary"; - location "system"; - object decomposeParDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - - -method scotch; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - - -manualCoeffs -{ - dataFile "decompositionData"; -} - - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/rightSolid/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/decomposeParDict deleted file mode 100644 index ffe8be78e47..00000000000 --- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/decomposeParDict +++ /dev/null @@ -1,44 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - note "mesh decomposition control dictionary"; - location "system"; - object decomposeParDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 4; - -method scotch; - -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - - -manualCoeffs -{ - dataFile "decompositionData"; -} - - -// ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/decomposeParDict new file mode 120000 index 00000000000..46638e60f61 --- /dev/null +++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/topAir/decomposeParDict @@ -0,0 +1 @@ +../decomposeParDict \ No newline at end of file diff --git a/tutorials/incompressible/icoFoam/cavityMappingTest/system/coarseMesh/decomposeParDict b/tutorials/incompressible/icoFoam/cavityMappingTest/system/coarseMesh/decomposeParDict index cf5823a268b..2ccf121cd38 100644 --- a/tutorials/incompressible/icoFoam/cavityMappingTest/system/coarseMesh/decomposeParDict +++ b/tutorials/incompressible/icoFoam/cavityMappingTest/system/coarseMesh/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,5 +18,4 @@ numberOfSubdomains 4; method scotch; - // ************************************************************************* // diff --git a/tutorials/incompressible/icoFoam/cavityMappingTest/system/decomposeParDict b/tutorials/incompressible/icoFoam/cavityMappingTest/system/decomposeParDict index cf5823a268b..2ccf121cd38 100644 --- a/tutorials/incompressible/icoFoam/cavityMappingTest/system/decomposeParDict +++ b/tutorials/incompressible/icoFoam/cavityMappingTest/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,5 +18,4 @@ numberOfSubdomains 4; method scotch; - // ************************************************************************* // diff --git a/tutorials/incompressible/lumpedPointMotion/building/steady/system/decomposeParDict b/tutorials/incompressible/lumpedPointMotion/building/steady/system/decomposeParDict index e155f990eb4..9cd763c3f7e 100644 --- a/tutorials/incompressible/lumpedPointMotion/building/steady/system/decomposeParDict +++ b/tutorials/incompressible/lumpedPointMotion/building/steady/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -20,11 +19,11 @@ method scotch; // method hierarchical; -hierarchicalCoeffs +coeffs { - n (3 2 1); - delta 0.001; - order xyz; + n (3 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/incompressible/overPimpleDyMFoam/cylinder/cylinderAndBackground/system/decomposeParDict b/tutorials/incompressible/overPimpleDyMFoam/cylinder/cylinderAndBackground/system/decomposeParDict index 29610a20d88..415cda309aa 100644 --- a/tutorials/incompressible/overPimpleDyMFoam/cylinder/cylinderAndBackground/system/decomposeParDict +++ b/tutorials/incompressible/overPimpleDyMFoam/cylinder/cylinderAndBackground/system/decomposeParDict @@ -10,21 +10,19 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; - method hierarchical; -hierarchicalCoeffs +coeffs { n (2 2 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/incompressible/overPimpleDyMFoam/simpleRotor/system/decomposeParDict b/tutorials/incompressible/overPimpleDyMFoam/simpleRotor/system/decomposeParDict index 805c936e877..8fa48d97e2b 100644 --- a/tutorials/incompressible/overPimpleDyMFoam/simpleRotor/system/decomposeParDict +++ b/tutorials/incompressible/overPimpleDyMFoam/simpleRotor/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,11 +18,11 @@ numberOfSubdomains 3; method hierarchical; -hierarchicalCoeffs +coeffs { n (3 1 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/decomposeParDict b/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/decomposeParDict index 2e73b80199c..8fa48d97e2b 100644 --- a/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/decomposeParDict +++ b/tutorials/incompressible/overPimpleDyMFoam/twoSimpleRotors/system/decomposeParDict @@ -10,21 +10,19 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 3; - method hierarchical; -hierarchicalCoeffs +coeffs { n (3 1 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/incompressible/overSimpleFoam/aeroFoil/aeroFoil_snappyHexMesh/system/decomposeParDict b/tutorials/incompressible/overSimpleFoam/aeroFoil/aeroFoil_snappyHexMesh/system/decomposeParDict index f70b376fabb..91e32fc1521 100644 --- a/tutorials/incompressible/overSimpleFoam/aeroFoil/aeroFoil_snappyHexMesh/system/decomposeParDict +++ b/tutorials/incompressible/overSimpleFoam/aeroFoil/aeroFoil_snappyHexMesh/system/decomposeParDict @@ -18,22 +18,11 @@ numberOfSubdomains 3; method simple; -simpleCoeffs +coeffs { - n (1 3 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (3 2 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile "cellDecomposition"; + n (1 3 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/incompressible/overSimpleFoam/aeroFoil/background_overset/system/decomposeParDict b/tutorials/incompressible/overSimpleFoam/aeroFoil/background_overset/system/decomposeParDict index 5a457a75200..f1b18226f65 100644 --- a/tutorials/incompressible/overSimpleFoam/aeroFoil/background_overset/system/decomposeParDict +++ b/tutorials/incompressible/overSimpleFoam/aeroFoil/background_overset/system/decomposeParDict @@ -18,22 +18,11 @@ numberOfSubdomains 8; method hierarchical; -simpleCoeffs +coeffs { - n (1 3 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (8 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile "cellDecomposition"; + n (8 1 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/system/decomposeParDict b/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/system/decomposeParDict index 441b8bdbbb4..a57967483dc 100644 --- a/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/system/decomposeParDict +++ b/tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/system/decomposeParDict b/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/system/decomposeParDict index 82389e7cf3a..1cda0c79246 100644 --- a/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/system/decomposeParDict +++ b/tutorials/incompressible/pimpleDyMFoam/oscillatingInletACMI2D/system/decomposeParDict @@ -12,19 +12,17 @@ FoamFile class dictionary; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; method scotch; -hierarchicalCoeffs +coeffs { - n (1 4 1); - delta 0.001; - order xyz; + n (1 4 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } - // ************************************************************************* // diff --git a/tutorials/incompressible/pimpleDyMFoam/propeller/system/decomposeParDict b/tutorials/incompressible/pimpleDyMFoam/propeller/system/decomposeParDict index 85ea74b3b79..a967dc8e37a 100644 --- a/tutorials/incompressible/pimpleDyMFoam/propeller/system/decomposeParDict +++ b/tutorials/incompressible/pimpleDyMFoam/propeller/system/decomposeParDict @@ -12,19 +12,17 @@ FoamFile class dictionary; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; method hierarchical; -hierarchicalCoeffs +coeffs { - n (1 4 1); - delta 0.001; - order xyz; + n (1 4 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } - // ************************************************************************* // diff --git a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/system/decomposeParDict b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/system/decomposeParDict index f6b939ebccf..50920452090 100644 --- a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/system/decomposeParDict +++ b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,18 +18,11 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - - // ************************************************************************* // diff --git a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion_snappyHexMesh/system/decomposeParDict b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion_snappyHexMesh/system/decomposeParDict index 6202e242f50..91e32fc1521 100644 --- a/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion_snappyHexMesh/system/decomposeParDict +++ b/tutorials/incompressible/pimpleDyMFoam/wingMotion/wingMotion_snappyHexMesh/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,11 @@ numberOfSubdomains 3; method simple; -simpleCoeffs +coeffs { - n (1 3 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (3 2 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile "cellDecomposition"; + n (1 3 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/LES/channel395/system/decomposeParDict b/tutorials/incompressible/pimpleFoam/LES/channel395/system/decomposeParDict index 064765b0d0a..4ec2ca98ac4 100644 --- a/tutorials/incompressible/pimpleFoam/LES/channel395/system/decomposeParDict +++ b/tutorials/incompressible/pimpleFoam/LES/channel395/system/decomposeParDict @@ -10,126 +10,20 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - -//- Keep owner and neighbour on same processor for faces in patches: -// (makes sense only for cyclic patches) -//preservePatches (cyclic_half0 cyclic_half1); - -//- Keep all of faceSet on a single processor. This puts all cells -// connected with a point, edge or face on the same processor. -// (just having face connected cells might not guarantee a balanced -// decomposition) -// The processor can be -1 (the decompositionMethod chooses the processor -// for a good load balance) or explicitly provided (upsets balance). -//singleProcessorFaceSets ((f0 -1)); - - -//- Use the volScalarField named here as a weight for each cell in the -// decomposition. For example, use a particle population field to decompose -// for a balanced number of particles in a lagrangian simulation. -// weightField dsmcRhoNMean; - -// method scotch; -// method hierarchical; method simple; -// method metis; -// method manual; -// method multiLevel; -// method structured; // does 2D decomposition of structured mesh -multiLevelCoeffs -{ - // Decomposition methods to apply in turn. This is like hierarchical but - // fully general - every method can be used at every level. - - level0 - { - numberOfSubdomains 64; - //method simple; - //simpleCoeffs - //{ - // n (2 1 1); - // delta 0.001; - //} - method scotch; - } - level1 - { - numberOfSubdomains 4; - method scotch; - } -} - -// Desired output - -simpleCoeffs +coeffs { n (1 2 2); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 2 1); - delta 0.001; - order xyz; -} - -metisCoeffs -{ - /* - processorWeights - ( - 1 - 1 - 1 - 1 - ); - */ -} - -scotchCoeffs -{ - //processorWeights - //( - // 1 - // 1 - // 1 - // 1 - //); - //writeGraph true; - //strategy "b"; -} - -manualCoeffs -{ - dataFile "decompositionData"; -} - -structuredCoeffs -{ - // Patches to do 2D decomposition on. Structured mesh only; cells have - // to be in 'columns' on top of patches. - patches (bottomPatch); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -//// Is the case distributed? Note: command-line argument -roots takes -//// precedence -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); // ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/system/decomposeParDict b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/system/decomposeParDict index 0a7cc129c12..a027d1dbe9d 100644 --- a/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/system/decomposeParDict +++ b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,11 +18,11 @@ numberOfSubdomains 8; method hierarchical; -hierarchicalCoeffs +coeffs { n (4 2 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } diff --git a/tutorials/incompressible/pimpleFoam/LES/vortexShed/system/decomposeParDict b/tutorials/incompressible/pimpleFoam/LES/vortexShed/system/decomposeParDict index d429acabdf6..db26a8c487f 100644 --- a/tutorials/incompressible/pimpleFoam/LES/vortexShed/system/decomposeParDict +++ b/tutorials/incompressible/pimpleFoam/LES/vortexShed/system/decomposeParDict @@ -12,17 +12,16 @@ FoamFile class dictionary; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; + n (2 2 1); + //delta 0.001; // default=0.001 } diff --git a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict index 0be1973c5f5..c8d493ee987 100644 --- a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict +++ b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,23 +18,11 @@ numberOfSubdomains 8; method hierarchical; -simpleCoeffs +coeffs { - n (4 1 1); - delta 0.001; + n (4 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -hierarchicalCoeffs -{ - n (4 2 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile "cellDecomposition"; -} - - // ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict.hierarchical b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict.hierarchical index 0be1973c5f5..349b598d3ee 100644 --- a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict.hierarchical +++ b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict.hierarchical @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,11 @@ numberOfSubdomains 8; method hierarchical; -simpleCoeffs +coeffs { - n (4 1 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (4 2 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile "cellDecomposition"; + n (4 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } diff --git a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict.ptscotch b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict.ptscotch index 59fee527f04..f3d9d8baf90 100644 --- a/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict.ptscotch +++ b/tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/system/decomposeParDict.ptscotch @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,23 +18,11 @@ numberOfSubdomains 8; method ptscotch; -simpleCoeffs +coeffs { - n (4 1 1); - delta 0.001; + n (4 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -hierarchicalCoeffs -{ - n (4 2 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile "cellDecomposition"; -} - - // ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/decomposeParDict b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/decomposeParDict index 880edbdd8d7..efb47b5d70a 100644 --- a/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/decomposeParDict +++ b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,27 +18,4 @@ numberOfSubdomains 8; method scotch; -simpleCoeffs -{ - n (2 1 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots ( ); - - // ************************************************************************* // diff --git a/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/system/decomposeParDict b/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/system/decomposeParDict index 2fd87ad2ac5..fdf2b548b49 100644 --- a/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/system/decomposeParDict +++ b/tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/system/decomposeParDict @@ -19,27 +19,15 @@ numberOfSubdomains 4; //method simple; method hierarchical; -simpleCoeffs +coeffs { - n (2 2 2); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; roots ( ); - // ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/motorBike/system/decomposeParDict.6 b/tutorials/incompressible/simpleFoam/motorBike/system/decomposeParDict.6 index db5f0cd2c28..72ccf6fe1e1 100644 --- a/tutorials/incompressible/simpleFoam/motorBike/system/decomposeParDict.6 +++ b/tutorials/incompressible/simpleFoam/motorBike/system/decomposeParDict.6 @@ -12,7 +12,6 @@ FoamFile class dictionary; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 6; @@ -20,23 +19,12 @@ numberOfSubdomains 6; method hierarchical; // method ptscotch; -simpleCoeffs -{ - n (6 1 1); - delta 0.001; -} - -hierarchicalCoeffs +coeffs { - n (3 2 1); - delta 0.001; - order xyz; + n (3 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "cellDecomposition"; } -manualCoeffs -{ - dataFile "cellDecomposition"; -} - - // ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/pipeCyclic/system/decomposeParDict b/tutorials/incompressible/simpleFoam/pipeCyclic/system/decomposeParDict index 8eef9939739..22d0a558b3d 100644 --- a/tutorials/incompressible/simpleFoam/pipeCyclic/system/decomposeParDict +++ b/tutorials/incompressible/simpleFoam/pipeCyclic/system/decomposeParDict @@ -12,7 +12,6 @@ FoamFile class dictionary; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 5; diff --git a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/decomposeParDict b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/decomposeParDict index d2ba4aab9fc..eb1dcb53fa5 100644 --- a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/decomposeParDict +++ b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,10 @@ numberOfSubdomains 4; method hierarchical; -simpleCoeffs -{ - n (2 1 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; +coeffs + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; diff --git a/tutorials/incompressible/simpleFoam/turbineSiting/system/decomposeParDict.hierarchical b/tutorials/incompressible/simpleFoam/turbineSiting/system/decomposeParDict.hierarchical index 0ec2cc47f72..f9bc71739dc 100644 --- a/tutorials/incompressible/simpleFoam/turbineSiting/system/decomposeParDict.hierarchical +++ b/tutorials/incompressible/simpleFoam/turbineSiting/system/decomposeParDict.hierarchical @@ -19,11 +19,11 @@ numberOfSubdomains 4; method hierarchical; -hierarchicalCoeffs +coeffs { n (2 2 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/lagrangian/DPMFoam/Goldschmidt/system/decomposeParDict b/tutorials/lagrangian/DPMFoam/Goldschmidt/system/decomposeParDict index a7f9749028c..0ad5e3237fa 100644 --- a/tutorials/lagrangian/DPMFoam/Goldschmidt/system/decomposeParDict +++ b/tutorials/lagrangian/DPMFoam/Goldschmidt/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,10 +18,10 @@ numberOfSubdomains 6; method simple; -simpleCoeffs +coeffs { - n (1 6 1); - delta 0.001; + n (1 6 1); + //delta 0.001; // default=0.001 } // ************************************************************************* // diff --git a/tutorials/lagrangian/MPPICFoam/Goldschmidt/system/decomposeParDict b/tutorials/lagrangian/MPPICFoam/Goldschmidt/system/decomposeParDict index 60a43cac788..9a39c07902c 100644 --- a/tutorials/lagrangian/MPPICFoam/Goldschmidt/system/decomposeParDict +++ b/tutorials/lagrangian/MPPICFoam/Goldschmidt/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,10 +18,10 @@ numberOfSubdomains 5; method simple; -simpleCoeffs +coeffs { - n (1 5 1); - delta 0.001; + n (1 5 1); + //delta 0.001; // default=0.001 } // ************************************************************************* // diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/system/decomposeParDict b/tutorials/lagrangian/MPPICFoam/cyclone/system/decomposeParDict index 7990b000489..1561b79e382 100644 --- a/tutorials/lagrangian/MPPICFoam/cyclone/system/decomposeParDict +++ b/tutorials/lagrangian/MPPICFoam/cyclone/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,10 +18,11 @@ numberOfSubdomains 12; method simple; -simpleCoeffs +coeffs { - n (2 2 3); - delta 0.001; + n (2 2 3); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/system/decomposeParDict b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/system/decomposeParDict index d7b4b378864..12a2e8b434d 100644 --- a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/system/decomposeParDict +++ b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,11 @@ numberOfSubdomains 4; method scotch; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; diff --git a/tutorials/lagrangian/icoUncoupledKinematicParcelFoam/hopper/hopperEmptying/system/decomposeParDict b/tutorials/lagrangian/icoUncoupledKinematicParcelFoam/hopper/hopperEmptying/system/decomposeParDict index 341581df062..5539e64d77b 100644 --- a/tutorials/lagrangian/icoUncoupledKinematicParcelFoam/hopper/hopperEmptying/system/decomposeParDict +++ b/tutorials/lagrangian/icoUncoupledKinematicParcelFoam/hopper/hopperEmptying/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,23 +18,13 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (4 1 1); - delta 0.001; + n (4 1 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -hierarchicalCoeffs -{ - n (4 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} distributed no; diff --git a/tutorials/lagrangian/icoUncoupledKinematicParcelFoam/hopper/hopperInitialState/system/decomposeParDict b/tutorials/lagrangian/icoUncoupledKinematicParcelFoam/hopper/hopperInitialState/system/decomposeParDict index 341581df062..a0bc43d99a8 100644 --- a/tutorials/lagrangian/icoUncoupledKinematicParcelFoam/hopper/hopperInitialState/system/decomposeParDict +++ b/tutorials/lagrangian/icoUncoupledKinematicParcelFoam/hopper/hopperInitialState/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,11 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (4 1 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (4 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (4 1 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; diff --git a/tutorials/lagrangian/reactingParcelFoam/cylinder/system/decomposeParDict b/tutorials/lagrangian/reactingParcelFoam/cylinder/system/decomposeParDict index 35ee29db3d0..4e024e7a6c0 100644 --- a/tutorials/lagrangian/reactingParcelFoam/cylinder/system/decomposeParDict +++ b/tutorials/lagrangian/reactingParcelFoam/cylinder/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,17 +18,12 @@ numberOfSubdomains 4; method metis; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile ""; } metisCoeffs @@ -37,11 +31,6 @@ metisCoeffs processorWeights ( 1 1 1 1 ); } -manualCoeffs -{ - dataFile ""; -} - distributed no; roots ( ); diff --git a/tutorials/lagrangian/reactingParcelFoam/filter/system/decomposeParDict b/tutorials/lagrangian/reactingParcelFoam/filter/system/decomposeParDict index f50ab8d7166..549f7540a53 100644 --- a/tutorials/lagrangian/reactingParcelFoam/filter/system/decomposeParDict +++ b/tutorials/lagrangian/reactingParcelFoam/filter/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -25,23 +24,12 @@ preserveFaceZones cycRight ); -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile ""; } -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} - - // ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/decomposeParDict b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/decomposeParDict index 547c0a1e4d3..ae9f4ce2922 100644 --- a/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/decomposeParDict +++ b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/wallFilmRegion.orig/decomposeParDict b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/wallFilmRegion.orig/decomposeParDict index 547c0a1e4d3..ae9f4ce2922 100644 --- a/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/wallFilmRegion.orig/decomposeParDict +++ b/tutorials/lagrangian/reactingParcelFoam/hotBoxes/system/wallFilmRegion.orig/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/decomposeParDict b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/decomposeParDict index 35ee29db3d0..7ebff6fbccb 100644 --- a/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/decomposeParDict +++ b/tutorials/lagrangian/reactingParcelFoam/rivuletPanel/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,17 +18,12 @@ numberOfSubdomains 4; method metis; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile ""; } metisCoeffs @@ -37,14 +31,9 @@ metisCoeffs processorWeights ( 1 1 1 1 ); } -manualCoeffs -{ - dataFile ""; -} distributed no; roots ( ); - // ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/decomposeParDict b/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/decomposeParDict index 35ee29db3d0..4e024e7a6c0 100644 --- a/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/decomposeParDict +++ b/tutorials/lagrangian/reactingParcelFoam/splashPanel/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,17 +18,12 @@ numberOfSubdomains 4; method metis; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile ""; } metisCoeffs @@ -37,11 +31,6 @@ metisCoeffs processorWeights ( 1 1 1 1 ); } -manualCoeffs -{ - dataFile ""; -} - distributed no; roots ( ); diff --git a/tutorials/mesh/foamyHexMesh/blob/system/backgroundMeshDecomposition/decomposeParDict b/tutorials/mesh/foamyHexMesh/blob/system/backgroundMeshDecomposition/decomposeParDict index 4051a535300..dfcc2d40e86 100644 --- a/tutorials/mesh/foamyHexMesh/blob/system/backgroundMeshDecomposition/decomposeParDict +++ b/tutorials/mesh/foamyHexMesh/blob/system/backgroundMeshDecomposition/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -21,27 +20,15 @@ method scotch; //method ptscotch; // method hierarchical; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 1 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; roots ( ); - // ************************************************************************* // diff --git a/tutorials/mesh/foamyHexMesh/blob/system/decomposeParDict b/tutorials/mesh/foamyHexMesh/blob/system/decomposeParDict index 4051a535300..a1ba0095f6b 100644 --- a/tutorials/mesh/foamyHexMesh/blob/system/decomposeParDict +++ b/tutorials/mesh/foamyHexMesh/blob/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -21,27 +20,11 @@ method scotch; //method ptscotch; // method hierarchical; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; + n (2 1 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -hierarchicalCoeffs -{ - n (2 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots ( ); - - // ************************************************************************* // diff --git a/tutorials/mesh/foamyHexMesh/flange/system/backgroundMeshDecomposition/decomposeParDict b/tutorials/mesh/foamyHexMesh/flange/system/backgroundMeshDecomposition/decomposeParDict index 552d5ce1ccd..f5d7a5b3881 100644 --- a/tutorials/mesh/foamyHexMesh/flange/system/backgroundMeshDecomposition/decomposeParDict +++ b/tutorials/mesh/foamyHexMesh/flange/system/backgroundMeshDecomposition/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -20,27 +19,15 @@ numberOfSubdomains 8; //method scotch; method hierarchical; -simpleCoeffs +coeffs { - n (2 2 2); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 2); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 2 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; roots ( ); - // ************************************************************************* // diff --git a/tutorials/mesh/foamyHexMesh/flange/system/decomposeParDict b/tutorials/mesh/foamyHexMesh/flange/system/decomposeParDict index 552d5ce1ccd..f5d7a5b3881 100644 --- a/tutorials/mesh/foamyHexMesh/flange/system/decomposeParDict +++ b/tutorials/mesh/foamyHexMesh/flange/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -20,27 +19,15 @@ numberOfSubdomains 8; //method scotch; method hierarchical; -simpleCoeffs +coeffs { - n (2 2 2); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 2); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 2 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; roots ( ); - // ************************************************************************* // diff --git a/tutorials/mesh/foamyHexMesh/mixerVessel/constant/triSurface/surfaceProcess.sh b/tutorials/mesh/foamyHexMesh/mixerVessel/constant/triSurface/surfaceProcess.sh index 2e97357bc22..d5d581ca741 100755 --- a/tutorials/mesh/foamyHexMesh/mixerVessel/constant/triSurface/surfaceProcess.sh +++ b/tutorials/mesh/foamyHexMesh/mixerVessel/constant/triSurface/surfaceProcess.sh @@ -1,10 +1,8 @@ #!/bin/sh - -cd ${0%/*} || exit 1 # Run from this directory +cd ${0%/*} || exit 1 # Run from this directory cp rawSurfaces/*.stl . - # Vessel surface surfaceAdd outlet.stl vessel.stl vessel.stl @@ -30,5 +28,4 @@ mv stirrer_bafflePart_0.stl stirrer_baffles.stl surfaceCheck stirrer_baffles.stl mv stirrer_baffles_0.obj stirrer_baffles_plate.obj - #------------------------------------------------------------------------------ diff --git a/tutorials/mesh/foamyHexMesh/mixerVessel/system/decomposeParDict b/tutorials/mesh/foamyHexMesh/mixerVessel/system/decomposeParDict index 33bdcf393fb..ab5a462de87 100644 --- a/tutorials/mesh/foamyHexMesh/mixerVessel/system/decomposeParDict +++ b/tutorials/mesh/foamyHexMesh/mixerVessel/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -21,27 +20,11 @@ numberOfSubdomains 8; method hierarchical; //method scotch; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; + n (2 2 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } -hierarchicalCoeffs -{ - n (2 2 2); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots ( ); - - // ************************************************************************* // diff --git a/tutorials/mesh/foamyQuadMesh/OpenCFD/system/decomposeParDict b/tutorials/mesh/foamyQuadMesh/OpenCFD/system/decomposeParDict index acb913f1742..a5229e0e188 100644 --- a/tutorials/mesh/foamyQuadMesh/OpenCFD/system/decomposeParDict +++ b/tutorials/mesh/foamyQuadMesh/OpenCFD/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,11 @@ numberOfSubdomains 8; method hierarchical; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 2); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 2 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; diff --git a/tutorials/mesh/moveDynamicMesh/SnakeRiverCanyon/system/decomposeParDict b/tutorials/mesh/moveDynamicMesh/SnakeRiverCanyon/system/decomposeParDict index 938ed79f6fc..26d0ca5bd31 100644 --- a/tutorials/mesh/moveDynamicMesh/SnakeRiverCanyon/system/decomposeParDict +++ b/tutorials/mesh/moveDynamicMesh/SnakeRiverCanyon/system/decomposeParDict @@ -10,32 +10,19 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; - location "system"; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 2; method hierarchical; -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs +coeffs { n (2 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ + //delta 0.001; // default=0.001 + //order xyz; // default=xzy dataFile "decompositionData"; } diff --git a/tutorials/mesh/moveDynamicMesh/relativeMotion/box2D_moveDynamicMesh/system/decomposeParDict b/tutorials/mesh/moveDynamicMesh/relativeMotion/box2D_moveDynamicMesh/system/decomposeParDict index 35eae8f99c6..f1e7dbf0bb7 100644 --- a/tutorials/mesh/moveDynamicMesh/relativeMotion/box2D_moveDynamicMesh/system/decomposeParDict +++ b/tutorials/mesh/moveDynamicMesh/relativeMotion/box2D_moveDynamicMesh/system/decomposeParDict @@ -12,18 +12,17 @@ FoamFile class dictionary; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; method hierarchical; -hierarchicalCoeffs +coeffs { - n (2 2 1); - delta 0.001; - order xyz; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } diff --git a/tutorials/mesh/moveDynamicMesh/relativeMotion/box_snappyHexMesh/system/decomposeParDict b/tutorials/mesh/moveDynamicMesh/relativeMotion/box_snappyHexMesh/system/decomposeParDict index 35eae8f99c6..f1e7dbf0bb7 100644 --- a/tutorials/mesh/moveDynamicMesh/relativeMotion/box_snappyHexMesh/system/decomposeParDict +++ b/tutorials/mesh/moveDynamicMesh/relativeMotion/box_snappyHexMesh/system/decomposeParDict @@ -12,18 +12,17 @@ FoamFile class dictionary; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; method hierarchical; -hierarchicalCoeffs +coeffs { - n (2 2 1); - delta 0.001; - order xyz; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } diff --git a/tutorials/mesh/parallel/filter/system/decomposeParDict b/tutorials/mesh/parallel/filter/system/decomposeParDict index 099ae341f54..61f2bb65241 100644 --- a/tutorials/mesh/parallel/filter/system/decomposeParDict +++ b/tutorials/mesh/parallel/filter/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -25,23 +24,5 @@ preserveFaceZones cycRight ); -simpleCoeffs -{ - n ( 2 2 1 ); - delta 0.001; -} - -hierarchicalCoeffs -{ - n ( 1 1 1 ); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} - // ************************************************************************* // diff --git a/tutorials/mesh/snappyHexMesh/flange/system/decomposeParDict b/tutorials/mesh/snappyHexMesh/flange/system/decomposeParDict index 37e6377198c..e2e3c3f1b2b 100644 --- a/tutorials/mesh/snappyHexMesh/flange/system/decomposeParDict +++ b/tutorials/mesh/snappyHexMesh/flange/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,17 +18,11 @@ numberOfSubdomains 4; method ptscotch; //simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } metisCoeffs @@ -37,11 +30,6 @@ metisCoeffs processorWeights ( 1 1 1 1 ); } -manualCoeffs -{ - dataFile ""; -} - distributed no; roots ( ); diff --git a/tutorials/mesh/snappyHexMesh/gap_detection/system/decomposeParDict b/tutorials/mesh/snappyHexMesh/gap_detection/system/decomposeParDict index bd6966b6574..5e433b77243 100644 --- a/tutorials/mesh/snappyHexMesh/gap_detection/system/decomposeParDict +++ b/tutorials/mesh/snappyHexMesh/gap_detection/system/decomposeParDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | +| \\ / O peration | Version: plus | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,12 @@ numberOfSubdomains 8; method hierarchical; -simpleCoeffs +coeffs { - n ( 4 1 1 ); - delta 0.001; -} - -hierarchicalCoeffs -{ - n ( 2 2 2 ); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile "cellDecomposition"; + n (2 2 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "cellDecomposition"; } diff --git a/tutorials/multiphase/MPPICInterFoam/twoPhasePachuka/system/decomposeParDict b/tutorials/multiphase/MPPICInterFoam/twoPhasePachuka/system/decomposeParDict index c9e6d266a88..90346c353d2 100644 --- a/tutorials/multiphase/MPPICInterFoam/twoPhasePachuka/system/decomposeParDict +++ b/tutorials/multiphase/MPPICInterFoam/twoPhasePachuka/system/decomposeParDict @@ -12,18 +12,17 @@ FoamFile class dictionary; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; method hierarchical; -hierarchicalCoeffs +coeffs { - n (1 1 4); - delta 0.001; - order xyz; + n (1 1 4); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } diff --git a/tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/decomposeParDict b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/decomposeParDict index 61f7f8c0dd8..a5c698cbb82 100644 --- a/tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/decomposeParDict +++ b/tutorials/multiphase/cavitatingFoam/LES/throttle3D/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,11 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; diff --git a/tutorials/multiphase/compressibleInterDyMFoam/laminar/sloshingTank2D/system/decomposeParDict b/tutorials/multiphase/compressibleInterDyMFoam/laminar/sloshingTank2D/system/decomposeParDict index 4b8c326537f..ca0d5710b3a 100644 --- a/tutorials/multiphase/compressibleInterDyMFoam/laminar/sloshingTank2D/system/decomposeParDict +++ b/tutorials/multiphase/compressibleInterDyMFoam/laminar/sloshingTank2D/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,11 @@ numberOfSubdomains 16; method hierarchical; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (4 2 2); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (4 2 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; diff --git a/tutorials/multiphase/compressibleInterDyMFoam/laminar/sphereDrop/system/decomposeParDict b/tutorials/multiphase/compressibleInterDyMFoam/laminar/sphereDrop/system/decomposeParDict index c79d985331a..2040beb9839 100644 --- a/tutorials/multiphase/compressibleInterDyMFoam/laminar/sphereDrop/system/decomposeParDict +++ b/tutorials/multiphase/compressibleInterDyMFoam/laminar/sphereDrop/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,10 +18,10 @@ numberOfSubdomains 2; method simple; -simpleCoeffs +coeffs { n (2 1 1); - delta 0.001; + //delta 0.001; // default=0.001 } diff --git a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/decomposeParDict b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/decomposeParDict index b8678d7c969..02447c45362 100644 --- a/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/decomposeParDict +++ b/tutorials/multiphase/compressibleInterFoam/laminar/depthCharge3D/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,11 @@ numberOfSubdomains 4; method hierarchical; -simpleCoeffs +coeffs { - n (1 4 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 4 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (1 4 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; diff --git a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/system/decomposeParDict b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/system/decomposeParDict index 61f7f8c0dd8..a5c698cbb82 100644 --- a/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/system/decomposeParDict +++ b/tutorials/multiphase/compressibleMultiphaseInterFoam/laminar/damBreak4phase/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,11 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; diff --git a/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/decomposeParDict index a024bf31cbd..efb47b5d70a 100644 --- a/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/decomposeParDict +++ b/tutorials/multiphase/interDyMFoam/RAS/DTCHull/system/decomposeParDict @@ -7,11 +7,10 @@ \*---------------------------------------------------------------------------*/ FoamFile { - version 2.0; - format ascii; - class dictionary; - location "system"; - object decomposeParDict; + version 2.0; + format ascii; + class dictionary; + object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,33 +18,4 @@ numberOfSubdomains 8; method scotch; -simpleCoeffs -{ - n (2 1 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -metisCoeffs -{ -} - -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots -( -); - - // ************************************************************************* // diff --git a/tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/decomposeParDict index 02a34be82be..bfce791340a 100644 --- a/tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/decomposeParDict +++ b/tutorials/multiphase/interDyMFoam/RAS/floatingObject/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,27 +18,5 @@ numberOfSubdomains 8; method scotch; -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots ( ); - // ************************************************************************* // diff --git a/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/decomposeParDict index 07354668609..83c7978f9fd 100644 --- a/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/decomposeParDict +++ b/tutorials/multiphase/interDyMFoam/RAS/mixerVesselAMI/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/multiphase/interDyMFoam/RAS/motorBike/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/RAS/motorBike/system/decomposeParDict index 5c5ab00ebfc..5af511273b6 100644 --- a/tutorials/multiphase/interDyMFoam/RAS/motorBike/system/decomposeParDict +++ b/tutorials/multiphase/interDyMFoam/RAS/motorBike/system/decomposeParDict @@ -20,7 +20,6 @@ numberOfSubdomains 5; method hierarchical; // method ptscotch; - // Optional decomposition constraints constraints { @@ -33,22 +32,12 @@ constraints } -simpleCoeffs -{ - n (4 1 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (5 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs +coeffs { - dataFile "cellDecomposition"; + n (5 1 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "cellDecomposition"; } diff --git a/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/decomposeParDict index 84b7774d501..aa616c6c806 100644 --- a/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/decomposeParDict +++ b/tutorials/multiphase/interDyMFoam/laminar/damBreakWithObstacle/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,27 +18,4 @@ numberOfSubdomains 6; method scotch; -simpleCoeffs -{ - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; -} - -distributed no; - -roots ( ); - - // ************************************************************************* // diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/decomposeParDict index 4b8c326537f..ca0d5710b3a 100644 --- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/decomposeParDict +++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,11 @@ numberOfSubdomains 16; method hierarchical; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (4 2 2); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (4 2 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/decomposeParDict index 4b8c326537f..ca0d5710b3a 100644 --- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/decomposeParDict +++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank2D3DoF/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,11 @@ numberOfSubdomains 16; method hierarchical; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (4 2 2); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (4 2 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/decomposeParDict index 4b8c326537f..ca0d5710b3a 100644 --- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/decomposeParDict +++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,11 @@ numberOfSubdomains 16; method hierarchical; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (4 2 2); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (4 2 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/decomposeParDict index 4b8c326537f..a3b79da8ff8 100644 --- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/decomposeParDict +++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D3DoF/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,12 @@ numberOfSubdomains 16; method hierarchical; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (4 2 2); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (4 2 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile ""; } distributed no; diff --git a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/decomposeParDict index 4b8c326537f..a3b79da8ff8 100644 --- a/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/decomposeParDict +++ b/tutorials/multiphase/interDyMFoam/laminar/sloshingTank3D6DoF/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,12 @@ numberOfSubdomains 16; method hierarchical; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (4 2 2); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (4 2 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile ""; } distributed no; diff --git a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/decomposeParDict b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/decomposeParDict index 4b8c326537f..a3b79da8ff8 100644 --- a/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/decomposeParDict +++ b/tutorials/multiphase/interDyMFoam/laminar/testTubeMixer/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,12 @@ numberOfSubdomains 16; method hierarchical; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (4 2 2); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (4 2 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile ""; } distributed no; diff --git a/tutorials/multiphase/interFoam/RAS/DTCHull/system/decomposeParDict b/tutorials/multiphase/interFoam/RAS/DTCHull/system/decomposeParDict index a024bf31cbd..db0c617244e 100644 --- a/tutorials/multiphase/interFoam/RAS/DTCHull/system/decomposeParDict +++ b/tutorials/multiphase/interFoam/RAS/DTCHull/system/decomposeParDict @@ -7,11 +7,10 @@ \*---------------------------------------------------------------------------*/ FoamFile { - version 2.0; - format ascii; - class dictionary; - location "system"; - object decomposeParDict; + version 2.0; + format ascii; + class dictionary; + object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,26 +18,11 @@ numberOfSubdomains 8; method scotch; -simpleCoeffs +coeffs { - n (2 1 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -metisCoeffs -{ -} - -manualCoeffs -{ - dataFile ""; + n (2 2 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; diff --git a/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/decomposeParDict b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/decomposeParDict index 61f7f8c0dd8..a5c698cbb82 100644 --- a/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/decomposeParDict +++ b/tutorials/multiphase/interFoam/RAS/damBreak/damBreak/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,11 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; diff --git a/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/system/decomposeParDict b/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/system/decomposeParDict index 61f7f8c0dd8..51ea6cd9f26 100644 --- a/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/system/decomposeParDict +++ b/tutorials/multiphase/interFoam/laminar/damBreak/damBreak/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,10 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 2 1); + //delta 0.001; // default=0.001 } distributed no; diff --git a/tutorials/multiphase/interFoam/laminar/vofToLagrangian/eulerianInjection/system/decomposeParDict b/tutorials/multiphase/interFoam/laminar/vofToLagrangian/eulerianInjection/system/decomposeParDict index 0573ee2a16c..175381fc75b 100644 --- a/tutorials/multiphase/interFoam/laminar/vofToLagrangian/eulerianInjection/system/decomposeParDict +++ b/tutorials/multiphase/interFoam/laminar/vofToLagrangian/eulerianInjection/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,12 +18,11 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { n (2 1 2); - delta 0.001; + //delta 0.001; // default=0.001 } - // ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/laminar/vofToLagrangian/lagrangianDistributionInjection/system/decomposeParDict b/tutorials/multiphase/interFoam/laminar/vofToLagrangian/lagrangianDistributionInjection/system/decomposeParDict index 09cbfd15750..175381fc75b 100644 --- a/tutorials/multiphase/interFoam/laminar/vofToLagrangian/lagrangianDistributionInjection/system/decomposeParDict +++ b/tutorials/multiphase/interFoam/laminar/vofToLagrangian/lagrangianDistributionInjection/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,10 +18,10 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { n (2 1 2); - delta 0.001; + //delta 0.001; // default=0.001 } diff --git a/tutorials/multiphase/interFoam/laminar/vofToLagrangian/lagrangianParticleInjection/system/decomposeParDict b/tutorials/multiphase/interFoam/laminar/vofToLagrangian/lagrangianParticleInjection/system/decomposeParDict index 09cbfd15750..b2b80856503 100644 --- a/tutorials/multiphase/interFoam/laminar/vofToLagrangian/lagrangianParticleInjection/system/decomposeParDict +++ b/tutorials/multiphase/interFoam/laminar/vofToLagrangian/lagrangianParticleInjection/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,11 +18,11 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { n (2 1 2); - delta 0.001; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } - // ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/laminar/waveExampleCnoidal/system/decomposeParDict b/tutorials/multiphase/interFoam/laminar/waveExampleCnoidal/system/decomposeParDict index 301d97027b8..1af1406f957 100644 --- a/tutorials/multiphase/interFoam/laminar/waveExampleCnoidal/system/decomposeParDict +++ b/tutorials/multiphase/interFoam/laminar/waveExampleCnoidal/system/decomposeParDict @@ -19,11 +19,11 @@ numberOfSubdomains 2; method hierarchical; -hierarchicalCoeffs +coeffs { n (2 1 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/laminar/waveExampleSolitary/system/decomposeParDict b/tutorials/multiphase/interFoam/laminar/waveExampleSolitary/system/decomposeParDict index 301d97027b8..1af1406f957 100644 --- a/tutorials/multiphase/interFoam/laminar/waveExampleSolitary/system/decomposeParDict +++ b/tutorials/multiphase/interFoam/laminar/waveExampleSolitary/system/decomposeParDict @@ -19,11 +19,11 @@ numberOfSubdomains 2; method hierarchical; -hierarchicalCoeffs +coeffs { n (2 1 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/laminar/waveExampleSolitaryGrimshaw/system/decomposeParDict b/tutorials/multiphase/interFoam/laminar/waveExampleSolitaryGrimshaw/system/decomposeParDict index 301d97027b8..1af1406f957 100644 --- a/tutorials/multiphase/interFoam/laminar/waveExampleSolitaryGrimshaw/system/decomposeParDict +++ b/tutorials/multiphase/interFoam/laminar/waveExampleSolitaryGrimshaw/system/decomposeParDict @@ -19,11 +19,11 @@ numberOfSubdomains 2; method hierarchical; -hierarchicalCoeffs +coeffs { n (2 1 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/laminar/waveExampleSolitaryMcCowan/system/decomposeParDict b/tutorials/multiphase/interFoam/laminar/waveExampleSolitaryMcCowan/system/decomposeParDict index 301d97027b8..1af1406f957 100644 --- a/tutorials/multiphase/interFoam/laminar/waveExampleSolitaryMcCowan/system/decomposeParDict +++ b/tutorials/multiphase/interFoam/laminar/waveExampleSolitaryMcCowan/system/decomposeParDict @@ -19,11 +19,11 @@ numberOfSubdomains 2; method hierarchical; -hierarchicalCoeffs +coeffs { n (2 1 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/laminar/waveExampleStokesI/system/decomposeParDict b/tutorials/multiphase/interFoam/laminar/waveExampleStokesI/system/decomposeParDict index 301d97027b8..1af1406f957 100644 --- a/tutorials/multiphase/interFoam/laminar/waveExampleStokesI/system/decomposeParDict +++ b/tutorials/multiphase/interFoam/laminar/waveExampleStokesI/system/decomposeParDict @@ -19,11 +19,11 @@ numberOfSubdomains 2; method hierarchical; -hierarchicalCoeffs +coeffs { n (2 1 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/laminar/waveExampleStokesII/system/decomposeParDict b/tutorials/multiphase/interFoam/laminar/waveExampleStokesII/system/decomposeParDict index 301d97027b8..1af1406f957 100644 --- a/tutorials/multiphase/interFoam/laminar/waveExampleStokesII/system/decomposeParDict +++ b/tutorials/multiphase/interFoam/laminar/waveExampleStokesII/system/decomposeParDict @@ -19,11 +19,11 @@ numberOfSubdomains 2; method hierarchical; -hierarchicalCoeffs +coeffs { n (2 1 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/multiphase/interFoam/laminar/waveExampleStokesV/system/decomposeParDict b/tutorials/multiphase/interFoam/laminar/waveExampleStokesV/system/decomposeParDict index 57c7bea5e33..1af1406f957 100644 --- a/tutorials/multiphase/interFoam/laminar/waveExampleStokesV/system/decomposeParDict +++ b/tutorials/multiphase/interFoam/laminar/waveExampleStokesV/system/decomposeParDict @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | +| \\ / O peration | Version: plus | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ @@ -19,11 +19,11 @@ numberOfSubdomains 2; method hierarchical; -hierarchicalCoeffs +coeffs { n (2 1 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/multiphase/interIsoFoam/damBreak/system/decomposeParDict b/tutorials/multiphase/interIsoFoam/damBreak/system/decomposeParDict index b2904624d35..a5c698cbb82 100644 --- a/tutorials/multiphase/interIsoFoam/damBreak/system/decomposeParDict +++ b/tutorials/multiphase/interIsoFoam/damBreak/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,11 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n ( 2 2 1 ); - delta 0.001; -} - -hierarchicalCoeffs -{ - n ( 1 1 1 ); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; diff --git a/tutorials/multiphase/interIsoFoam/discInReversedVortexFlow/system/decomposeParDict b/tutorials/multiphase/interIsoFoam/discInReversedVortexFlow/system/decomposeParDict index 70dd6defca7..bfec08236bf 100644 --- a/tutorials/multiphase/interIsoFoam/discInReversedVortexFlow/system/decomposeParDict +++ b/tutorials/multiphase/interIsoFoam/discInReversedVortexFlow/system/decomposeParDict @@ -1,17 +1,15 @@ -/*---------------------------------------------------------------------------*\ +/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: plus | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ - FoamFile { version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } @@ -21,10 +19,10 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (2 1 2); - delta 0.001; + n (2 1 2); + //delta 0.001; // default=0.001 } // ************************************************************************* // diff --git a/tutorials/multiphase/interIsoFoam/sphereInReversedVortexFlow/system/decomposeParDict b/tutorials/multiphase/interIsoFoam/sphereInReversedVortexFlow/system/decomposeParDict index b8a6f06f4f5..16bd8f8975d 100644 --- a/tutorials/multiphase/interIsoFoam/sphereInReversedVortexFlow/system/decomposeParDict +++ b/tutorials/multiphase/interIsoFoam/sphereInReversedVortexFlow/system/decomposeParDict @@ -1,31 +1,28 @@ -/*---------------------------------------------------------------------------*\ +/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | +| \\ / O peration | Version: plus | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ - FoamFile { version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - numberOfSubdomains 8; method simple; -simpleCoeffs +coeffs { - n (2 2 2); - delta 0.001; + n (2 2 2); + //delta 0.001; // default=0.001 } // ************************************************************************* // diff --git a/tutorials/multiphase/interIsoFoam/standingWave/system/decomposeParDict b/tutorials/multiphase/interIsoFoam/standingWave/system/decomposeParDict index 28839d76e1c..7ef82657522 100644 --- a/tutorials/multiphase/interIsoFoam/standingWave/system/decomposeParDict +++ b/tutorials/multiphase/interIsoFoam/standingWave/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,11 @@ numberOfSubdomains 1; method simple; -simpleCoeffs +coeffs { - n ( 2 1 2 ); - delta 0.001; -} - -hierarchicalCoeffs -{ - n ( 1 1 1 ); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 1 2); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; diff --git a/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/decomposeParDict b/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/decomposeParDict index 61f7f8c0dd8..a5c698cbb82 100644 --- a/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/decomposeParDict +++ b/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,11 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } distributed no; diff --git a/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/system/decomposeParDict b/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/system/decomposeParDict index 85ea74b3b79..dd282329019 100644 --- a/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/system/decomposeParDict +++ b/tutorials/multiphase/interPhaseChangeDyMFoam/propeller/system/decomposeParDict @@ -19,11 +19,11 @@ numberOfSubdomains 4; method hierarchical; -hierarchicalCoeffs +coeffs { - n (1 4 1); - delta 0.001; - order xyz; + n (1 4 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } diff --git a/tutorials/multiphase/interPhaseChangeFoam/cavitatingBullet/system/decomposeParDict b/tutorials/multiphase/interPhaseChangeFoam/cavitatingBullet/system/decomposeParDict index 61f7f8c0dd8..52a9b4bbef1 100644 --- a/tutorials/multiphase/interPhaseChangeFoam/cavitatingBullet/system/decomposeParDict +++ b/tutorials/multiphase/interPhaseChangeFoam/cavitatingBullet/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,12 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile ""; } distributed no; diff --git a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/system/decomposeParDict b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/system/decomposeParDict index 61f7f8c0dd8..52a9b4bbef1 100644 --- a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/system/decomposeParDict +++ b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,12 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile ""; } distributed no; diff --git a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/system/decomposeParDict b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/system/decomposeParDict index 61f7f8c0dd8..52a9b4bbef1 100644 --- a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/system/decomposeParDict +++ b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,12 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile ""; } distributed no; diff --git a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/decomposeParDict b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/decomposeParDict index 441b8bdbbb4..a57967483dc 100644 --- a/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/decomposeParDict +++ b/tutorials/multiphase/multiphaseInterDyMFoam/laminar/mixerVesselAMI2D/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/decomposeParDict b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/decomposeParDict index 61f7f8c0dd8..52a9b4bbef1 100644 --- a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/decomposeParDict +++ b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phase/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,12 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile ""; } distributed no; diff --git a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/decomposeParDict b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/decomposeParDict index 61f7f8c0dd8..52a9b4bbef1 100644 --- a/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/decomposeParDict +++ b/tutorials/multiphase/multiphaseInterFoam/laminar/damBreak4phaseFine/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - location "system"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,22 +18,12 @@ numberOfSubdomains 4; method simple; -simpleCoeffs +coeffs { - n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (1 1 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile ""; + n (2 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile ""; } distributed no; diff --git a/tutorials/multiphase/overInterDyMFoam/floatingBody/background/system/decomposeParDict b/tutorials/multiphase/overInterDyMFoam/floatingBody/background/system/decomposeParDict index ede2181dfee..415cda309aa 100644 --- a/tutorials/multiphase/overInterDyMFoam/floatingBody/background/system/decomposeParDict +++ b/tutorials/multiphase/overInterDyMFoam/floatingBody/background/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,11 +18,11 @@ numberOfSubdomains 4; method hierarchical; -hierarchicalCoeffs +coeffs { n (2 2 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/system/decomposeParDict b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/system/decomposeParDict index df31c866a54..d2300c105f8 100644 --- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/system/decomposeParDict +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,11 +18,11 @@ numberOfSubdomains 6; method hierarchical; -hierarchicalCoeffs +coeffs { n (1 6 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporating/system/decomposeParDict b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporating/system/decomposeParDict index df31c866a54..d2300c105f8 100644 --- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporating/system/decomposeParDict +++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporating/system/decomposeParDict @@ -10,7 +10,6 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; object decomposeParDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -19,11 +18,11 @@ numberOfSubdomains 6; method hierarchical; -hierarchicalCoeffs +coeffs { n (1 6 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy } // ************************************************************************* // diff --git a/tutorials/preProcessing/createZeroDirectory/motorBike/system/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/motorBike/system/decomposeParDict index eb9bb3ad5e9..6836cf88889 100644 --- a/tutorials/preProcessing/createZeroDirectory/motorBike/system/decomposeParDict +++ b/tutorials/preProcessing/createZeroDirectory/motorBike/system/decomposeParDict @@ -20,22 +20,12 @@ numberOfSubdomains 6; method hierarchical; // method ptscotch; -simpleCoeffs +coeffs { - n (4 1 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (3 2 1); - delta 0.001; - order xyz; -} - -manualCoeffs -{ - dataFile "cellDecomposition"; + n (3 2 1); + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "cellDecomposition"; } diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/decomposeParDict index 1a49f7a69be..7263dc66d4a 100644 --- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/decomposeParDict +++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/decomposeParDict @@ -10,11 +10,8 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; - location "system"; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; @@ -27,17 +24,12 @@ method scotch; // method simple; // method manual; -simpleCoeffs +coeffs { n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "decompositionData"; } scotchCoeffs @@ -53,20 +45,4 @@ scotchCoeffs //strategy "b"; } -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - - // ************************************************************************* // diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/decomposeParDict index 742a2495dfc..747b5114b73 100644 --- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/decomposeParDict +++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/decomposeParDict @@ -10,11 +10,8 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; - location "system"; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; @@ -27,17 +24,12 @@ method hierarchical; // method simple; // method manual; -simpleCoeffs +coeffs { n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "decompositionData"; } scotchCoeffs @@ -53,20 +45,4 @@ scotchCoeffs //strategy "b"; } -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - - // ************************************************************************* // diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/decomposeParDict index 1a49f7a69be..7263dc66d4a 100644 --- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/decomposeParDict +++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/decomposeParDict @@ -10,11 +10,8 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; - location "system"; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; @@ -27,17 +24,12 @@ method scotch; // method simple; // method manual; -simpleCoeffs +coeffs { n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "decompositionData"; } scotchCoeffs @@ -53,20 +45,4 @@ scotchCoeffs //strategy "b"; } -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - - // ************************************************************************* // diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/decomposeParDict index 1a49f7a69be..7263dc66d4a 100644 --- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/decomposeParDict +++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/decomposeParDict @@ -10,11 +10,8 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; - location "system"; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; @@ -27,17 +24,12 @@ method scotch; // method simple; // method manual; -simpleCoeffs +coeffs { n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "decompositionData"; } scotchCoeffs @@ -53,20 +45,4 @@ scotchCoeffs //strategy "b"; } -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - - // ************************************************************************* // diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/decomposeParDict index 1a49f7a69be..7263dc66d4a 100644 --- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/decomposeParDict +++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/decomposeParDict @@ -10,11 +10,8 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; - location "system"; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; @@ -27,17 +24,12 @@ method scotch; // method simple; // method manual; -simpleCoeffs +coeffs { n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "decompositionData"; } scotchCoeffs @@ -53,20 +45,4 @@ scotchCoeffs //strategy "b"; } -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - - // ************************************************************************* // diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/decomposeParDict index 1a49f7a69be..7263dc66d4a 100644 --- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/decomposeParDict +++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/decomposeParDict @@ -10,11 +10,8 @@ FoamFile version 2.0; format ascii; class dictionary; - note "mesh decomposition control dictionary"; - location "system"; object decomposeParDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // numberOfSubdomains 4; @@ -27,17 +24,12 @@ method scotch; // method simple; // method manual; -simpleCoeffs +coeffs { n (2 2 1); - delta 0.001; -} - -hierarchicalCoeffs -{ - n (2 2 1); - delta 0.001; - order xyz; + //delta 0.001; // default=0.001 + //order xyz; // default=xzy + dataFile "decompositionData"; } scotchCoeffs @@ -53,20 +45,4 @@ scotchCoeffs //strategy "b"; } -manualCoeffs -{ - dataFile "decompositionData"; -} - - -//// Is the case distributed -//distributed yes; -//// Per slave (so nProcs-1 entries) the directory above the case. -//roots -//( -// "/tmp" -// "/tmp" -//); - - // ************************************************************************* // -- GitLab