From 16cdc1ed6e3048f2b4965ffecd48f3bbb9f601a7 Mon Sep 17 00:00:00 2001
From: mattijs <mattijs>
Date: Mon, 4 May 2020 21:00:57 +0100
Subject: [PATCH] BUG: More no reading. See #3.

---
 src/OpenFOAM/db/IOobject/IOobject.C     | 14 ++++++++++++++
 src/OpenFOAM/db/IOobject/IOobject.H     |  8 ++++++++
 src/OpenFOAM/meshes/polyMesh/polyMesh.C | 20 ++++++++++----------
 src/finiteVolume/fvMesh/fvMesh.C        |  2 +-
 4 files changed, 33 insertions(+), 11 deletions(-)

diff --git a/src/OpenFOAM/db/IOobject/IOobject.C b/src/OpenFOAM/db/IOobject/IOobject.C
index f3062e9be05..e25418fef3b 100644
--- a/src/OpenFOAM/db/IOobject/IOobject.C
+++ b/src/OpenFOAM/db/IOobject/IOobject.C
@@ -438,6 +438,20 @@ Foam::IOobject::IOobject
 {}
 
 
+Foam::IOobject::IOobject
+(
+    const IOobject& io,
+    readOption ro,
+    writeOption wo
+)
+:
+    IOobject(io)
+{
+    rOpt_ = ro;
+    wOpt_ = wo;
+}
+
+
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 const Foam::objectRegistry& Foam::IOobject::db() const
diff --git a/src/OpenFOAM/db/IOobject/IOobject.H b/src/OpenFOAM/db/IOobject/IOobject.H
index d6cfba3ba7e..a4ed7350669 100644
--- a/src/OpenFOAM/db/IOobject/IOobject.H
+++ b/src/OpenFOAM/db/IOobject/IOobject.H
@@ -340,6 +340,14 @@ public:
             const word& name
         );
 
+        //- Copy construct, resetting io options
+        IOobject
+        (
+            const IOobject& io,
+            readOption,
+            writeOption
+        );
+
         //- Clone
         autoPtr<IOobject> clone() const
         {
diff --git a/src/OpenFOAM/meshes/polyMesh/polyMesh.C b/src/OpenFOAM/meshes/polyMesh/polyMesh.C
index fca8bdbcb35..820d2f6dfc7 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyMesh.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyMesh.C
@@ -393,7 +393,7 @@ Foam::polyMesh::polyMesh
             instance(),
             meshSubDir,
             *this,
-            io.readOpt(),
+            IOobject::NO_READ,  //io.readOpt(),
             io.writeOpt()
         ),
         std::move(points)
@@ -406,7 +406,7 @@ Foam::polyMesh::polyMesh
             instance(),
             meshSubDir,
             *this,
-            io.readOpt(),
+            IOobject::NO_READ,  //io.readOpt(),
             io.writeOpt()
         ),
         std::move(faces)
@@ -419,7 +419,7 @@ Foam::polyMesh::polyMesh
             instance(),
             meshSubDir,
             *this,
-            io.readOpt(),
+            IOobject::NO_READ,  //io.readOpt(),
             io.writeOpt()
         ),
         std::move(owner)
@@ -432,7 +432,7 @@ Foam::polyMesh::polyMesh
             instance(),
             meshSubDir,
             *this,
-            io.readOpt(),
+            IOobject::NO_READ,  //io.readOpt(),
             io.writeOpt()
         ),
         std::move(neighbour)
@@ -446,7 +446,7 @@ Foam::polyMesh::polyMesh
             instance(),
             meshSubDir,
             *this,
-            io.readOpt(),
+            IOobject::NO_READ,  //io.readOpt(),
             io.writeOpt()
         ),
         *this,
@@ -456,7 +456,7 @@ Foam::polyMesh::polyMesh
     comm_(UPstream::worldComm),
     geometricD_(Zero),
     solutionD_(Zero),
-    tetBasePtIsPtr_(readTetBasePtIs()),
+    tetBasePtIsPtr_(nullptr),
     cellTreePtr_(nullptr),
     pointZones_
     (
@@ -466,7 +466,7 @@ Foam::polyMesh::polyMesh
             instance(),
             meshSubDir,
             *this,
-            io.readOpt(),
+            IOobject::NO_READ,  //io.readOpt(),
             IOobject::NO_WRITE
         ),
         *this,
@@ -480,7 +480,7 @@ Foam::polyMesh::polyMesh
             instance(),
             meshSubDir,
             *this,
-            io.readOpt(),
+            IOobject::NO_READ,  //io.readOpt(),
             IOobject::NO_WRITE
         ),
         *this,
@@ -494,7 +494,7 @@ Foam::polyMesh::polyMesh
             instance(),
             meshSubDir,
             *this,
-            io.readOpt(),
+            IOobject::NO_READ,  //io.readOpt(),
             IOobject::NO_WRITE
         ),
         *this,
@@ -607,7 +607,7 @@ Foam::polyMesh::polyMesh
     comm_(UPstream::worldComm),
     geometricD_(Zero),
     solutionD_(Zero),
-    tetBasePtIsPtr_(readTetBasePtIs()),
+    tetBasePtIsPtr_(nullptr),
     cellTreePtr_(nullptr),
     pointZones_
     (
diff --git a/src/finiteVolume/fvMesh/fvMesh.C b/src/finiteVolume/fvMesh/fvMesh.C
index 12c3434f8db..1e78edb1989 100644
--- a/src/finiteVolume/fvMesh/fvMesh.C
+++ b/src/finiteVolume/fvMesh/fvMesh.C
@@ -368,7 +368,7 @@ Foam::fvMesh::fvMesh
     surfaceInterpolation(*this),
     fvSolution(static_cast<const objectRegistry&>(*this)),
     data(static_cast<const objectRegistry&>(*this)),
-    boundary_(*this, boundaryMesh()),
+    boundary_(*this),
     lduPtr_(nullptr),
     curTimeIndex_(time().timeIndex()),
     VPtr_(nullptr),
-- 
GitLab