From 721c5a2201b60989079b548d84f02b9490d54028 Mon Sep 17 00:00:00 2001
From: Bernd Flemisch <bernd@iws.uni-stuttgart.de>
Date: Wed, 11 Jul 2018 12:35:25 +0200
Subject: [PATCH] [io][vtk] enable reading unswitched pv names from input file

Also pass only the discretization method instead of the FVGridGeometry.
---
 dumux/io/loadsolution.hh                              | 11 +++++++----
 dumux/io/restart.hh                                   |  3 ++-
 .../2p/implicit/incompressible/test_2p_fv.cc          |  2 +-
 test/porousmediumflow/2p2c/implicit/test_2p2c_fv.cc   |  2 +-
 4 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/dumux/io/loadsolution.hh b/dumux/io/loadsolution.hh
index d05edad090..b5dfdbb590 100644
--- a/dumux/io/loadsolution.hh
+++ b/dumux/io/loadsolution.hh
@@ -140,7 +140,10 @@ template<class ModelTraits>
 std::string primaryVariableName(int pvIdx)
 {
     if (haveParam("LoadSolution.PrimaryVariableNames"))
-        DUNE_THROW(Dune::NotImplemented, "reading PrimaryVariableNames from input file");
+    {
+        static auto pvNames = getParam<std::vector<std::string>>("LoadSolution.PrimaryVariableNames");
+        return pvNames[pvIdx];
+    }
     else
         return ModelTraits::primaryVariableName(pvIdx);
 }
@@ -151,9 +154,9 @@ std::string primaryVariableName(int pvIdx)
  * \brief load a solution vector from file
  * \note Supports the following file extensions: *.vtu
  */
-template <class FVGridGeometry, class SolutionVector, class PvNamesFunc>
+template <class SolutionVector, class PvNamesFunc>
 void loadSolution(const std::string& fileName,
-                  const FVGridGeometry& fvGridGeometry,
+                  DiscretizationMethod discMethod,
                   PvNamesFunc&& pvNamesFunc,
                   SolutionVector& sol)
 {
@@ -161,7 +164,7 @@ void loadSolution(const std::string& fileName,
 
     if (extension == "vtu")
     {
-        const auto dataType = FVGridGeometry::discMethod == DiscretizationMethod::box
+        const auto dataType = discMethod == DiscretizationMethod::box
                               ? VTUReader::DataType::pointData : VTUReader::DataType::cellData;
         loadSolutionFromVtuFile(fileName, dataType, pvNamesFunc, sol);
     }
diff --git a/dumux/io/restart.hh b/dumux/io/restart.hh
index b78ceed772..58267a1b60 100644
--- a/dumux/io/restart.hh
+++ b/dumux/io/restart.hh
@@ -36,7 +36,6 @@
 #include <sstream>
 
 namespace Dumux {
-
 /*!
  * \ingroup InputOutput
  * \brief Load or save a state of a model to/from the harddisk.
@@ -288,6 +287,8 @@ public:
                    "Restart::restartFileList()");
     }
 
+
+private:
     std::string fileName_;
     std::ifstream inStream_;
     std::ofstream outStream_;
diff --git a/test/porousmediumflow/2p/implicit/incompressible/test_2p_fv.cc b/test/porousmediumflow/2p/implicit/incompressible/test_2p_fv.cc
index 634dbe3b82..6098c4a07e 100644
--- a/test/porousmediumflow/2p/implicit/incompressible/test_2p_fv.cc
+++ b/test/porousmediumflow/2p/implicit/incompressible/test_2p_fv.cc
@@ -138,7 +138,7 @@ int main(int argc, char** argv) try
     {
         using ModelTraits = typename GET_PROP_TYPE(TypeTag, ModelTraits);
         auto fileName = getParam<std::string>("Restart.File");
-        loadSolution(fileName, *fvGridGeometry, primaryVariableName<ModelTraits>, x);
+        loadSolution(fileName, FVGridGeometry::discMethod, primaryVariableName<ModelTraits>, x);
     }
     else
         problem->applyInitialSolution(x);
diff --git a/test/porousmediumflow/2p2c/implicit/test_2p2c_fv.cc b/test/porousmediumflow/2p2c/implicit/test_2p2c_fv.cc
index f55102ebfd..3ef717512c 100644
--- a/test/porousmediumflow/2p2c/implicit/test_2p2c_fv.cc
+++ b/test/porousmediumflow/2p2c/implicit/test_2p2c_fv.cc
@@ -107,7 +107,7 @@ int main(int argc, char** argv) try
         using ModelTraits = typename GET_PROP_TYPE(TypeTag, ModelTraits);
         using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
         auto fileName = getParam<std::string>("Restart.File");
-        loadSolution(fileName, *fvGridGeometry, primaryVariableName<ModelTraits, FluidSystem>, x);
+        loadSolution(fileName, FVGridGeometry::discMethod, primaryVariableName<ModelTraits, FluidSystem>, x);
     }
     else
         problem->applyInitialSolution(x);
-- 
GitLab