ENH: multi-region support for reconstructParMesh (#2072)
This commit is contained in:
parent
620fe96c02
commit
ae02a86562
@ -71,7 +71,6 @@ int main(int argc, char *argv[])
|
||||
#include "setRootCase.H"
|
||||
|
||||
const auto decompFile = args.get<fileName>(1);
|
||||
const bool region = args.found("region");
|
||||
const bool verbose = args.found("verbose");
|
||||
|
||||
// Set time from database
|
||||
@ -87,23 +86,17 @@ int main(int argc, char *argv[])
|
||||
// Get region names
|
||||
#include "getAllRegionOptions.H"
|
||||
|
||||
wordList regionDirs(regionNames);
|
||||
if (regionDirs.size() == 1 && regionDirs[0] == polyMesh::defaultRegion)
|
||||
{
|
||||
regionDirs[0].clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
Info<< "Decomposing regions: "
|
||||
<< flatOutput(regionNames) << nl << endl;
|
||||
}
|
||||
|
||||
labelList cellToProc;
|
||||
|
||||
forAll(regionNames, regioni)
|
||||
{
|
||||
const word& regionName = regionNames[regioni];
|
||||
const word& regionDir = regionDirs[regioni];
|
||||
// const word& regionDir =
|
||||
// (
|
||||
// regionName != polyMesh::defaultRegion
|
||||
// ? regionName
|
||||
// : word::null
|
||||
// );
|
||||
|
||||
Info<< "\n\nDecomposing mesh " << regionName << nl << endl;
|
||||
Info<< "Create mesh..." << flush;
|
||||
|
@ -52,7 +52,7 @@ void Foam::domainDecomposition::writeVolField
|
||||
false
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar("cellDist", dimless, -1),
|
||||
dimensionedScalar(dimless, Zero),
|
||||
zeroGradientFvPatchScalarField::typeName
|
||||
);
|
||||
|
||||
|
@ -167,28 +167,34 @@ int main(int argc, char *argv[])
|
||||
<< nl << endl;
|
||||
}
|
||||
|
||||
const bool newTimes = args.found("newTimes");
|
||||
const bool newTimes = args.found("newTimes");
|
||||
|
||||
// Get region names
|
||||
#include "getAllRegionOptions.H"
|
||||
|
||||
wordList regionDirs(regionNames);
|
||||
// Determine the processor count
|
||||
label nProcs{0};
|
||||
|
||||
if (regionNames.size() == 1)
|
||||
if (regionNames.empty())
|
||||
{
|
||||
if (regionNames[0] == polyMesh::defaultRegion)
|
||||
{
|
||||
regionDirs[0].clear();
|
||||
}
|
||||
else
|
||||
FatalErrorInFunction
|
||||
<< "No regions specified or detected."
|
||||
<< exit(FatalError);
|
||||
}
|
||||
else if (regionNames[0] == polyMesh::defaultRegion)
|
||||
{
|
||||
nProcs = fileHandler().nProcs(args.path());
|
||||
}
|
||||
else
|
||||
{
|
||||
nProcs = fileHandler().nProcs(args.path(), regionNames[0]);
|
||||
|
||||
if (regionNames.size() == 1)
|
||||
{
|
||||
Info<< "Using region: " << regionNames[0] << nl << endl;
|
||||
}
|
||||
}
|
||||
|
||||
// Determine the processor count
|
||||
label nProcs = fileHandler().nProcs(args.path(), regionDirs[0]);
|
||||
|
||||
if (!nProcs)
|
||||
{
|
||||
FatalErrorInFunction
|
||||
@ -261,16 +267,21 @@ int main(int argc, char *argv[])
|
||||
forAll(regionNames, regioni)
|
||||
{
|
||||
const word& regionName = regionNames[regioni];
|
||||
const word& regionDir = regionDirs[regioni];
|
||||
const word& regionDir =
|
||||
(
|
||||
regionName != polyMesh::defaultRegion
|
||||
? regionName
|
||||
: word::null
|
||||
);
|
||||
|
||||
Info<< "\n\nReconstructing fields for mesh " << regionName << nl
|
||||
<< endl;
|
||||
Info<< "\n\nReconstructing fields" << nl
|
||||
<< "region=" << regionName << nl << endl;
|
||||
|
||||
if
|
||||
(
|
||||
newTimes
|
||||
&& regionNames.size() == 1
|
||||
&& regionDirs[0].empty()
|
||||
&& regionDir.empty()
|
||||
&& haveAllTimes(masterTimeDirSet, timeDirs)
|
||||
)
|
||||
{
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user