reconstructPar: Added support for decomposing "uniform" directories in multi-region cases
Resolves bug-report http://bugs.openfoam.org/view.php?id=2156
This commit is contained in:
@ -56,9 +56,9 @@ bool haveAllTimes
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
// Loop over all times
|
// Loop over all times
|
||||||
forAll(timeDirs, timeI)
|
forAll(timeDirs, timei)
|
||||||
{
|
{
|
||||||
if (!masterTimeDirSet.found(timeDirs[timeI].name()))
|
if (!masterTimeDirSet.found(timeDirs[timei].name()))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -284,10 +284,10 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
forAll(regionNames, regionI)
|
forAll(regionNames, regioni)
|
||||||
{
|
{
|
||||||
const word& regionName = regionNames[regionI];
|
const word& regionName = regionNames[regioni];
|
||||||
const word& regionDir = regionDirs[regionI];
|
const word& regionDir = regionDirs[regioni];
|
||||||
|
|
||||||
Info<< "\n\nReconstructing fields for mesh " << regionName << nl
|
Info<< "\n\nReconstructing fields for mesh " << regionName << nl
|
||||||
<< endl;
|
<< endl;
|
||||||
@ -328,25 +328,25 @@ int main(int argc, char *argv[])
|
|||||||
#include "checkFaceAddressingComp.H"
|
#include "checkFaceAddressingComp.H"
|
||||||
|
|
||||||
// Loop over all times
|
// Loop over all times
|
||||||
forAll(timeDirs, timeI)
|
forAll(timeDirs, timei)
|
||||||
{
|
{
|
||||||
if (newTimes && masterTimeDirSet.found(timeDirs[timeI].name()))
|
if (newTimes && masterTimeDirSet.found(timeDirs[timei].name()))
|
||||||
{
|
{
|
||||||
Info<< "Skipping time " << timeDirs[timeI].name()
|
Info<< "Skipping time " << timeDirs[timei].name()
|
||||||
<< endl << endl;
|
<< endl << endl;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Set time for global database
|
// Set time for global database
|
||||||
runTime.setTime(timeDirs[timeI], timeI);
|
runTime.setTime(timeDirs[timei], timei);
|
||||||
|
|
||||||
Info<< "Time = " << runTime.timeName() << endl << endl;
|
Info<< "Time = " << runTime.timeName() << endl << endl;
|
||||||
|
|
||||||
// Set time for all databases
|
// Set time for all databases
|
||||||
forAll(databases, proci)
|
forAll(databases, proci)
|
||||||
{
|
{
|
||||||
databases[proci].setTime(timeDirs[timeI], timeI);
|
databases[proci].setTime(timeDirs[timei], timei);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if any new meshes need to be read.
|
// Check if any new meshes need to be read.
|
||||||
@ -989,22 +989,37 @@ int main(int argc, char *argv[])
|
|||||||
procRefs
|
procRefs
|
||||||
).write();
|
).write();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// If there are any "uniform" directories copy them from
|
// If there is a "uniform" directory in the time region
|
||||||
// the master processor
|
// directory copy from the master processor
|
||||||
forAll(timeDirs, timeI)
|
|
||||||
{
|
{
|
||||||
runTime.setTime(timeDirs[timeI], timeI);
|
fileName uniformDir0
|
||||||
databases[0].setTime(timeDirs[timeI], timeI);
|
(
|
||||||
|
databases[0].timePath()/regionDir/"uniform"
|
||||||
|
);
|
||||||
|
|
||||||
|
if (isDir(uniformDir0))
|
||||||
|
{
|
||||||
|
cp(uniformDir0, runTime.timePath()/regionDir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// For the first region of a multi-region case additionally
|
||||||
|
// copy the "uniform" directory in the time directory
|
||||||
|
if (regionNames.size() > 1 && regioni == 0)
|
||||||
|
{
|
||||||
|
fileName uniformDir0
|
||||||
|
(
|
||||||
|
databases[0].timePath()/"uniform"
|
||||||
|
);
|
||||||
|
|
||||||
fileName uniformDir0 = databases[0].timePath()/"uniform";
|
|
||||||
if (isDir(uniformDir0))
|
if (isDir(uniformDir0))
|
||||||
{
|
{
|
||||||
cp(uniformDir0, runTime.timePath());
|
cp(uniformDir0, runTime.timePath());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Info<< "\nEnd\n" << endl;
|
Info<< "\nEnd\n" << endl;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user