From 8ab37e13e278b038fe85fa91c2a308b38330175e Mon Sep 17 00:00:00 2001
From: mattijs <mattijs>
Date: Wed, 12 Feb 2020 15:01:52 +0000
Subject: [PATCH] ENH: foamFormatConvert: leave boundary intact. Fixes #1358.

---
 .../foamFormatConvert/foamFormatConvert.C     | 20 +++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/applications/utilities/miscellaneous/foamFormatConvert/foamFormatConvert.C b/applications/utilities/miscellaneous/foamFormatConvert/foamFormatConvert.C
index bda610ef1d7..c8cf9b6a506 100644
--- a/applications/utilities/miscellaneous/foamFormatConvert/foamFormatConvert.C
+++ b/applications/utilities/miscellaneous/foamFormatConvert/foamFormatConvert.C
@@ -90,7 +90,13 @@ namespace Foam
 
 
 // Hack to do zones which have Lists in them. See above.
-bool writeZones(const word& name, const fileName& meshDir, Time& runTime)
+bool writeZones
+(
+    const word& name,
+    const fileName& meshDir,
+    Time& runTime,
+    const IOstreamOption::compressionType compression
+)
 {
     IOobject io
     (
@@ -156,7 +162,7 @@ bool writeZones(const word& name, const fileName& meshDir, Time& runTime)
         (
             IOstream::ASCII,
             IOstream::currentVersion,
-            runTime.writeCompression(),
+            compression,
             true
         );
     }
@@ -330,7 +336,7 @@ int main(int argc, char *argv[])
         writeMeshObject<pointIOField>("points", meshDir, runTime);
         // Write boundary in ascii. This is only needed for fileHandler to
         // kick in. Should not give problems since always writing ascii.
-        writeZones("boundary", meshDir, runTime);
+        writeZones("boundary", meshDir, runTime, IOstreamOption::UNCOMPRESSED);
         writeMeshObject<labelIOList>("pointProcAddressing", meshDir, runTime);
         writeMeshObject<labelIOList>("faceProcAddressing", meshDir, runTime);
         writeMeshObject<labelIOList>("cellProcAddressing", meshDir, runTime);
@@ -353,9 +359,11 @@ int main(int argc, char *argv[])
         {
             // Only do zones when converting from binary to ascii
             // The other way gives problems since working on dictionary level.
-            writeZones("cellZones", meshDir, runTime);
-            writeZones("faceZones", meshDir, runTime);
-            writeZones("pointZones", meshDir, runTime);
+            const IOstreamOption::compressionType compress =
+                runTime.writeCompression();
+            writeZones("cellZones", meshDir, runTime, compress);
+            writeZones("faceZones", meshDir, runTime, compress);
+            writeZones("pointZones", meshDir, runTime, compress);
         }
 
         // Get list of objects from the database
-- 
GitLab