mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Old code:
Found 10990 time steps
Search for moving mesh ... no moving mesh detected.
Startup in 329.09 s
Updated:
Found 10990 time steps
Search for moving mesh ... no moving mesh detected.
Startup in 1.6 s
- Cause was checking "polyMesh/points" via an IOobject.
Short-circuit with a check for a polyMesh/ directory first.
Limit the check to the master-node as well to further reduce
load on the file-system.
------------------------------
ENH: improve per-step conversion times for foamToEnsight.
Old code:
Converting 11001 time steps
Time [0] = 0 Wrote in 1.53 s
Time [1] = 1 Wrote in 1.52 s
...
Time [100] = 100 Elapsed time 205.35 s
Updated:
Converting 11001 time steps
Time [0] = 0 Wrote in 1.4 s
Time [1] = 1 Wrote in 0.07 s
...
Time [100] = 100 Elapsed time 42.4 s
- Speedup by hashing test results from the first conversion step
instead of checking each time.
Check data on all nodes to avoid problems with incomplete writes.
------------------------------
BUG: moving mesh detection failed for foamToEnsightParts
- adjusted to agree with updated foamToEnsight
------------------------------
Note:
- foamToEnsightParts (serial) still has about twice the throughput of
foamToEnsight.
44 lines
1.0 KiB
C
44 lines
1.0 KiB
C
// Read time index from */uniform/time, but treat 0 and constant specially
|
|
// or simply increment from the '-index' option if it was supplied
|
|
|
|
label timeIndex = 0;
|
|
|
|
if (optIndex)
|
|
{
|
|
timeIndex = indexingNumber++;
|
|
}
|
|
else if
|
|
(
|
|
runTime.timeName() != runTime.constant()
|
|
&& runTime.timeName() != "0"
|
|
)
|
|
{
|
|
IOobject io
|
|
(
|
|
"time",
|
|
runTime.timeName(),
|
|
"uniform",
|
|
runTime,
|
|
IOobject::READ_IF_PRESENT,
|
|
IOobject::NO_WRITE,
|
|
false
|
|
);
|
|
|
|
if (io.typeHeaderOk<IOdictionary>(true))
|
|
{
|
|
io.readOpt() = IOobject::MUST_READ_IF_MODIFIED;
|
|
IOdictionary timeObject(io);
|
|
|
|
timeObject.lookup("index") >> timeIndex;
|
|
}
|
|
else
|
|
{
|
|
Info<< "skip ... missing entry " << io.objectPath() << endl;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
timeIndices.insert(timeIndex, timeDirs[timeI].value());
|
|
Info<< nl << "Time [" << timeIndex << "] = " << runTime.timeName() << nl;
|
|
|