From cc0eac3e19fc51b2fb618137d755082418febe39 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Fri, 11 May 2018 08:04:50 +0200
Subject: [PATCH] ENH: add decompose flag for vtkWrite function object

- default is now without polyhedral decomposition, since this produces
  compacter files and VTK mananges this in most instances.
  However, provide function object flag to reinstate the old behaviour.
---
 .../utilities/vtkWrite/vtkWrite.C             |  3 +-
 .../utilities/vtkWrite/vtkWrite.H             | 33 ++++++++++++-------
 2 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/src/functionObjects/utilities/vtkWrite/vtkWrite.C b/src/functionObjects/utilities/vtkWrite/vtkWrite.C
index f5d28883ca3..c0d66f29785 100644
--- a/src/functionObjects/utilities/vtkWrite/vtkWrite.C
+++ b/src/functionObjects/utilities/vtkWrite/vtkWrite.C
@@ -108,6 +108,7 @@ bool Foam::functionObjects::vtkWrite::read(const dictionary& dict)
     //
     dict.readIfPresent("directory", dirName_);
 
+    decompose_ = dict.lookupOrDefault("decompose", false);
     writeIds_ = dict.lookupOrDefault("writeIds", false);
 
 
@@ -185,7 +186,7 @@ bool Foam::functionObjects::vtkWrite::write()
         (
             mesh_,
             writeOpts_,
-            true  // decompose
+            decompose_
         );
 
         // Write mesh
diff --git a/src/functionObjects/utilities/vtkWrite/vtkWrite.H b/src/functionObjects/utilities/vtkWrite/vtkWrite.H
index cf69d91492a..fca1d3c605c 100644
--- a/src/functionObjects/utilities/vtkWrite/vtkWrite.H
+++ b/src/functionObjects/utilities/vtkWrite/vtkWrite.H
@@ -44,6 +44,7 @@ Description
         writeInterval   1;
         format          binary;
         legacy          false;
+        decompose       false;
         ...
         fields          (U p);
     }
@@ -51,14 +52,15 @@ Description
 
 Usage
     \table
-        Property     | Description             | Required    | Default value
-        type         | Type name: vtkWrite     | yes         |
-        fields       | Fields to output        | yes         |
-        writeControl | Output control          | recommended | timeStep
-        directory    | The output directory name | no        | "VTK"
-        format       | ASCII or binary format  | no          | binary
-        legacy       | Legacy VTK output       | no          | false
-        writeIds     | Write cell ids as field | no          | true
+        Property     | Description                      | Required    | Default
+        type         | Type name: vtkWrite              | yes         |
+        fields       | Fields to output                 | yes         |
+        writeControl | Output control                   | recommended | timeStep
+        directory    | The output directory name        | no          | "VTK"
+        format       | ASCII or binary format           | no          | binary
+        legacy       | Legacy VTK output                | no          | false
+        decompose    | decompose polyhedra              | no          | false
+        writeIds     | Write cell ids as field          | no          | true
     \endtable
 
 See also
@@ -106,6 +108,9 @@ class vtkWrite
         //- Output directory name
         fileName dirName_;
 
+        //- Decompose polyhedra
+        bool decompose_;
+
         //- Write cell ids field
         bool writeIds_;
 
@@ -119,7 +124,11 @@ class vtkWrite
 
         //- Write selected fields for GeoField type.
         template<class GeoField>
-        label writeFields(vtk::internalWriter& writer, bool verbose=true) const;
+        label writeFields
+        (
+            vtk::internalWriter& writer,
+            bool verbose=true
+        ) const;
 
 
         //- Write selected fields for GeoField type.
@@ -131,10 +140,10 @@ class vtkWrite
         ) const;
 
 
-        //- Disallow default bitwise copy construct
+        //- No copy construct
         vtkWrite(const vtkWrite&) = delete;
 
-        //- Disallow default bitwise assignment
+        //- No copy assignment
         void operator=(const vtkWrite&) = delete;
 
 
@@ -150,7 +159,7 @@ public:
         vtkWrite
         (
             const word& name,
-            const Time& t,
+            const Time& runTime,
             const dictionary& dict
         );
 
-- 
GitLab