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