From 9db5942dc98256e38339e18919cc7ada9598e615 Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Tue, 19 Jun 2018 17:08:25 +0200 Subject: [PATCH] STYLE: restrict vtkCloud output names to use time-index (issue #866) - this provides easily sortable names. The time information is available via the corresponding .series file, which can also be loaded directly with ParaView 5.5 or later. For further redundancy, time information is saved in the first XML comment inside of the .vtp files. For example, <!-- cloud=limestoneCloud1 time=0.005 index=200 --> --- .../lagrangian/vtkCloud/vtkCloud.C | 16 +++++++++++----- .../lagrangian/vtkCloud/vtkCloud.H | 17 +++++++---------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/functionObjects/lagrangian/vtkCloud/vtkCloud.C b/src/functionObjects/lagrangian/vtkCloud/vtkCloud.C index b2f0d191da..26981fceea 100644 --- a/src/functionObjects/lagrangian/vtkCloud/vtkCloud.C +++ b/src/functionObjects/lagrangian/vtkCloud/vtkCloud.C @@ -330,7 +330,6 @@ Foam::functionObjects::vtkCloud::vtkCloud fvMeshFunctionObject(name, runTime, dict), writeOpts_(vtk::formatType::INLINE_BASE64), printf_(), - useTimeName_(false), useVerts_(false), selectClouds_(), selectFields_(), @@ -394,7 +393,7 @@ bool Foam::functionObjects::vtkCloud::read(const dictionary& dict) printf_ = "%0" + std::to_string(padWidth) + "d"; } - useTimeName_ = dict.lookupOrDefault<bool>("timeName", false); + // useTimeName_ = dict.lookupOrDefault<bool>("useTimeName", false); useVerts_ = dict.lookupOrDefault<bool>("cellData", false); @@ -436,11 +435,18 @@ bool Foam::functionObjects::vtkCloud::write() return true; // skip - not available } +// const word timeDesc = +// ( +// useTimeName_ +// ? time_.timeName() +// : printf_.empty() +// ? Foam::name(time_.timeIndex()) +// : word::printf(printf_, time_.timeIndex()) +// ); + const word timeDesc = ( - useTimeName_ - ? time_.timeName() - : printf_.empty() + printf_.empty() ? Foam::name(time_.timeIndex()) : word::printf(printf_, time_.timeIndex()) ); diff --git a/src/functionObjects/lagrangian/vtkCloud/vtkCloud.H b/src/functionObjects/lagrangian/vtkCloud/vtkCloud.H index 6ead433ff8..498df102e3 100644 --- a/src/functionObjects/lagrangian/vtkCloud/vtkCloud.H +++ b/src/functionObjects/lagrangian/vtkCloud/vtkCloud.H @@ -28,7 +28,8 @@ Group grpUtilitiesFunctionObjects Description - This functionObject writes cloud(s) in VTK format. + This functionObject writes cloud(s) in VTK PolyData format + (.vtp extension) with the time information saved in a '.series' file. Example of function object specification: \verbatim @@ -38,11 +39,11 @@ Description libs ("liblagrangianFunctionObjects.so"); writeControl writeTime; writeInterval 1; - format binary; + format ascii; cloud myCloud; - width 12; fields (T U rho); + width 4; // file-padding } \endverbatim @@ -57,20 +58,19 @@ Usage cellData | Emit cellData instead of pointData | no | false directory | The output directory name | no | VTK width | Padding width for file name | no | 8 - timeName | Use time-name instead of time-index | no | false format | ascii or binary format | no | binary writePrecision | write precision in ascii | no | same as IOstream \endtable - The output filename and fields are added to the cloud's \c OutputProperties - dictionary. For the previous example specification: + The output filename and fields are added to the functionObjectProperties + information. For the previous example specification: \verbatim cloudWrite1 { myCloud { - file "<case>/VTK/myCloud_00001.vtp"; + file "<case>/VTK/myCloud_0001.vtp"; fields (T U rho); } } @@ -122,9 +122,6 @@ class vtkCloud //- The printf format for zero-padding names string printf_; - //- Use time-name instead of time-index - bool useTimeName_; - //- Write lagrangian as cell data (verts) instead of point data bool useVerts_; -- GitLab