mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: expand data mask for foamToEnsight (issue #231)
- Default is a width of 8 characters, but this can be extended up to 31
characters via the '-width' command-line option.
- Now use a similar structure as foamToEnsightParts for the masking.
This reduces the clutter within the directory, makes it easier to
selectively delete some time steps (using shell commands).
- Added in a "time" information data in each sub-directory to
make it possible to reconstruct the case file with an external
script.
- Conversion of cloud data should now also work in parallel
(may need more testing).
- Support binary output for cloud data.
- Better avoidance of illegal ensight variable names.
But still partially incomplete (due to patch fields).
==================================================
Example of NEW file structure:
EnSight/verticalChannel.case # case name
EnSight/geometry # for non-moving geometry
EnSight/data/ # time-varying data
EnSight/data/00000000/
EnSight/data/00000001/
...
Fields are stored by name within the data/********/ directories:
EnSight/data/00000001/time # human-readable time info
EnSight/data/00000001/U
EnSight/data/00000001/p
...
EnSight/data/00000001/geometry # for moving geometry
Clouds are stored at the next sub-directory level:
EnSight/data/00000001/lagrangian/<cloudName>/positions
EnSight/data/00000001/lagrangian/<cloudName>/U
...
==================================================
The old structure was significantly more cluttered:
EnSight/verticalChannel.case
EnSight/verticalChannel.0000.mesh
EnSight/verticalChannel.0001.p
EnSight/verticalChannel.0001.<cloudName>
EnSight/verticalChannel.0001.<cloudName>.U
==================================================
This commit is contained in:
@ -1,25 +1,25 @@
|
||||
// check for "points" in any of the result directories
|
||||
|
||||
bool meshMoving = false;
|
||||
if (Times.size() > 1)
|
||||
if (timeDirs.size() > 1)
|
||||
{
|
||||
// We already loaded a mesh (usually from constant). See if any other
|
||||
// points files
|
||||
forAll(Times, timeI)
|
||||
forAll(timeDirs, timeI)
|
||||
{
|
||||
if (Times[timeI].name() != mesh.pointsInstance())
|
||||
if (timeDirs[timeI].name() != mesh.pointsInstance())
|
||||
{
|
||||
IOobject io
|
||||
meshMoving = IOobject
|
||||
(
|
||||
"points",
|
||||
Times[timeI].name(),
|
||||
timeDirs[timeI].name(),
|
||||
polyMesh::meshSubDir,
|
||||
mesh,
|
||||
IOobject::NO_READ
|
||||
);
|
||||
if (io.typeHeaderOk<pointIOField>(true))
|
||||
).typeHeaderOk<pointIOField>(true);
|
||||
|
||||
if (meshMoving)
|
||||
{
|
||||
meshMoving = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user