From 18cd5d864e59e765ad810608e636c017408b66e2 Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Sun, 20 Dec 2020 21:39:40 +0100 Subject: [PATCH] ENH: reinstate Test-decomposePar -cellDist, add -cellDist-internal - Useful for diagnosis, the -cellDist-internal produces a volScalarField::Internal instead --- .../test/decomposePar/Test-decomposePar.C | 74 ++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/applications/test/decomposePar/Test-decomposePar.C b/applications/test/decomposePar/Test-decomposePar.C index e21dec28074..1bdc5cc0ffb 100644 --- a/applications/test/decomposePar/Test-decomposePar.C +++ b/applications/test/decomposePar/Test-decomposePar.C @@ -37,6 +37,7 @@ Description #include "OSspecific.H" #include "fvCFD.H" #include "cpuTime.H" +#include "volFields.H" #include "IOobjectList.H" #include "regionProperties.H" #include "decompositionInformation.H" @@ -89,7 +90,16 @@ int main(int argc, char *argv[]) // These are implicit so just ignore them argList::ignoreOptionCompat({"dry-run", 0}, false); - argList::ignoreOptionCompat({"cellDist", 0}, false); + argList::addBoolOption + ( + "cellDist", + "Write cell distribution as volScalarField for visualization" + ); + argList::addBoolOption + ( + "cellDist-internal", + "Write cell distribution (internal field) for visualization" + ); // Include explicit constant options, have zero from time range timeSelector::addOptions(true, false); @@ -236,6 +246,68 @@ int main(int argc, char *argv[]) Info<< nl; } info.printSummary(Info); + + + if (args.found("cellDist-internal")) + { + volScalarField::Internal cellDist + ( + IOobject + ( + "cellDist", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("cellDist", dimless, -1) + ); + + forAll(cellToProc, celli) + { + cellDist[celli] = cellToProc[celli]; + } + + cellDist.write(); + + Info<< nl << "Wrote decomposition as volScalarField::Internal to " + << cellDist.name() << " for visualization." + << endl; + + fileHandler().flush(); + } + else if (args.found("cellDist")) + { + volScalarField cellDist + ( + IOobject + ( + "cellDist", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("cellDist", dimless, -1), + zeroGradientFvPatchScalarField::typeName + ); + + forAll(cellToProc, celli) + { + cellDist[celli] = cellToProc[celli]; + } + + cellDist.correctBoundaryConditions(); + cellDist.write(); + + Info<< nl << "Wrote decomposition as volScalarField to " + << cellDist.name() << " for visualization." + << endl; + + fileHandler().flush(); + } } Info<< "\nEnd\n" << endl; -- GitLab