diff --git a/dumux/io/loadsolution.hh b/dumux/io/loadsolution.hh index d05edad0903a284e3d22e39e96fd95736286fe42..b5dfdbb590c9a2e2b05763e412419a4ca5fc1f60 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 b78ceed772b61d0fc18d3c2af0317ded770e908b..58267a1b60e29d3e5ebd9a5cd9e911c43e6eb115 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 634dbe3b821f511570a116d146617edec2d06c1d..6098c4a07e8a59791cb69922ee268f26f7175418 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 f55102ebfd39a11cbbb74e96151e9323c4aef41a..3ef717512c4658b943d2521d791ebc64d7051c34 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);