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