From 0bc75014363c3110dd00c2cd04bd5d10b0fe62e8 Mon Sep 17 00:00:00 2001
From: Theresa Kurz <theresa.kurz@iws.uni-stuttgart.de>
Date: Thu, 13 Dec 2018 11:39:12 +0100
Subject: [PATCH] [cleanup] rename VtkOutputFields to IOFields

---
 exercises/exercise-basic/exercise_basic_2p2c.cc      |  9 ++-------
 .../exercise-biomineralization/exercisebiomin.cc     |  6 +++---
 .../interface/ex_interface_coupling_ff-pm.cc         |  2 +-
 .../models/ex_models_coupling_ff-pm.cc               |  2 +-
 .../turbulence/ex_turbulence_coupling_ff-pm.cc       |  2 +-
 .../exercise-fluidsystem/exercise-fluidsystem.cc     |  4 ++--
 exercises/exercise-fractures/exercise_fractures.cc   |  8 ++++----
 exercises/exercise-grids/exercise_grids.cc           |  4 ++--
 exercises/exercise-mainfile/exercise_1p_c.cc         |  2 +-
 exercises/exercise-properties/exercise_properties.cc |  7 ++-----
 .../exercise-runtimeparams/exercise_runtimeparams.cc |  4 ++--
 .../solution/exercise-basic/exercise_basic_2pni.cc   |  4 ++--
 .../exercise-biomineralization/exercisebiomin.cc     |  6 +++---
 .../interface/ex_interface_coupling_ff-pm.cc         |  2 +-
 .../models/ex_models_coupling_ff-pm.cc               |  2 +-
 .../turbulence/ex_turbulence_coupling_ff-pm.cc       |  2 +-
 .../exercise-fluidsystem/exercise-fluidsystem.cc     |  6 +++---
 .../fluidsystems/h2omycompressiblecomponent.hh       |  6 ++++++
 .../exercise-fractures/exercise_fractures.cc         |  8 ++++----
 .../exercise-grids/exercise_grids_solution.cc        |  4 ++--
 .../solution/exercise-grids/injection2pproblem.hh    | 12 ++++++------
 .../exercise_properties_solution.cc                  |  7 ++-----
 .../solution/exercise-properties/mylocalresidual.hh  |  2 +-
 .../exercise_runtimeparams_solution.cc               |  4 ++--
 24 files changed, 55 insertions(+), 60 deletions(-)

diff --git a/exercises/exercise-basic/exercise_basic_2p2c.cc b/exercises/exercise-basic/exercise_basic_2p2c.cc
index 68c91ea1..3232900d 100644
--- a/exercises/exercise-basic/exercise_basic_2p2c.cc
+++ b/exercises/exercise-basic/exercise_basic_2p2c.cc
@@ -124,16 +124,11 @@ int main(int argc, char** argv) try
     auto dt = getParam<Scalar>("TimeLoop.DtInitial");
 
     // intialize the vtk output module
-//     using VtkOutputFields = GetPropType<TypeTag, Properties::VtkOutputFields>;
-//     VtkOutputModule<TypeTag> vtkWriter(*problem, *fvGridGeometry, *gridVariables, x, problem->name());
-//     VtkOutputFields::init(vtkWriter); //! Add model specific output fields
-
-    // intialize the vtk output module
-    using VtkOutputFields = GetPropType<TypeTag, Properties::VtkOutputFields>;
+    using IOFields = GetPropType<TypeTag, Properties::IOFields>;
     VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
     using VelocityOutput = GetPropType<TypeTag, Properties::VelocityOutput>;
     vtkWriter.addVelocityOutput(std::make_shared<VelocityOutput>(*gridVariables));
-    VtkOutputFields::initOutputModule(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
     vtkWriter.write(restartTime);
 
     // instantiate time loop
diff --git a/exercises/exercise-biomineralization/exercisebiomin.cc b/exercises/exercise-biomineralization/exercisebiomin.cc
index a4cbddfd..0ac7f193 100644
--- a/exercises/exercise-biomineralization/exercisebiomin.cc
+++ b/exercises/exercise-biomineralization/exercisebiomin.cc
@@ -104,7 +104,7 @@ int main(int argc, char** argv) try
     // the grid variables
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     auto gridVariables = std::make_shared<GridVariables>(problem, fvGridGeometry);
-    gridVariables->init(x, xOld);
+    gridVariables->init(x);
 
     // get some time loop parameters
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
@@ -113,9 +113,9 @@ int main(int argc, char** argv) try
     auto dt = getParam<Scalar>("TimeLoop.DtInitial");
 
     // initialize the vtk output module
-    using VtkOutputFields = GetPropType<TypeTag, Properties::VtkOutputFields>;
+    using IOFields = GetPropType<TypeTag, Properties::IOFields>;
     VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
-    VtkOutputFields::init(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
     //add specific output
     vtkWriter.addField(problem->getKxx(), "Kxx");
     vtkWriter.addField(problem->getKyy(), "Kyy");
diff --git a/exercises/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.cc b/exercises/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.cc
index 62673d5a..53c927f6 100644
--- a/exercises/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.cc
+++ b/exercises/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.cc
@@ -202,7 +202,7 @@ int main(int argc, char** argv) try
     const auto darcyName = getParam<std::string>("Problem.Name") + "_" + darcyProblem->name();
 
     StaggeredVtkOutputModule<StokesGridVariables, decltype(stokesSol)> stokesVtkWriter(*stokesGridVariables, stokesSol, stokesName);
-    GetPropType<StokesTypeTag, Properties::VtkOutputFields>::initOutputModule(stokesVtkWriter);
+    GetPropType<StokesTypeTag, Properties::IOFields>::initOutputModule(stokesVtkWriter);
 
     //****** uncomment the add analytical solution of v_x *****//
     // stokesVtkWriter.addField(stokesProblem->getAnalyticalVelocityX(), "analyticalV_x");
diff --git a/exercises/exercise-coupling-ff-pm/models/ex_models_coupling_ff-pm.cc b/exercises/exercise-coupling-ff-pm/models/ex_models_coupling_ff-pm.cc
index 8dc210c5..48d89fe4 100644
--- a/exercises/exercise-coupling-ff-pm/models/ex_models_coupling_ff-pm.cc
+++ b/exercises/exercise-coupling-ff-pm/models/ex_models_coupling_ff-pm.cc
@@ -172,7 +172,7 @@ int main(int argc, char** argv) try
     const auto darcyName = getParam<std::string>("Problem.Name") + "_" + darcyProblem->name();
 
     StaggeredVtkOutputModule<StokesGridVariables, decltype(stokesSol)> stokesVtkWriter(*stokesGridVariables, stokesSol, stokesName);
-    GetPropType<StokesTypeTag, Properties::VtkOutputFields>::initOutputModule(stokesVtkWriter);
+    GetPropType<StokesTypeTag, Properties::IOFields>::initOutputModule(stokesVtkWriter);
     stokesVtkWriter.write(0.0);
 
     VtkOutputModule<DarcyGridVariables, GetPropType<DarcyTypeTag, Properties::SolutionVector>> darcyVtkWriter(*darcyGridVariables, sol[darcyIdx], darcyName);
diff --git a/exercises/exercise-coupling-ff-pm/turbulence/ex_turbulence_coupling_ff-pm.cc b/exercises/exercise-coupling-ff-pm/turbulence/ex_turbulence_coupling_ff-pm.cc
index 523a3370..3d756d62 100644
--- a/exercises/exercise-coupling-ff-pm/turbulence/ex_turbulence_coupling_ff-pm.cc
+++ b/exercises/exercise-coupling-ff-pm/turbulence/ex_turbulence_coupling_ff-pm.cc
@@ -177,7 +177,7 @@ int main(int argc, char** argv) try
     const auto darcyName = getParam<std::string>("Problem.Name") + "_" + darcyProblem->name();
 
     StaggeredVtkOutputModule<StokesGridVariables, decltype(stokesSol)> stokesVtkWriter(*stokesGridVariables, stokesSol, stokesName);
-    GetPropType<StokesTypeTag, Properties::VtkOutputFields>::initOutputModule(stokesVtkWriter);
+    GetPropType<StokesTypeTag, Properties::IOFields>::initOutputModule(stokesVtkWriter);
     stokesVtkWriter.write(0.0);
 
     VtkOutputModule<DarcyGridVariables, GetPropType<DarcyTypeTag, Properties::SolutionVector>> darcyVtkWriter(*darcyGridVariables, sol[darcyIdx], darcyName);
diff --git a/exercises/exercise-fluidsystem/exercise-fluidsystem.cc b/exercises/exercise-fluidsystem/exercise-fluidsystem.cc
index 61f3df14..184814d6 100644
--- a/exercises/exercise-fluidsystem/exercise-fluidsystem.cc
+++ b/exercises/exercise-fluidsystem/exercise-fluidsystem.cc
@@ -116,11 +116,11 @@ int main(int argc, char** argv) try
     auto dt = getParam<Scalar>("TimeLoop.DtInitial");
 
     // intialize the vtk output module
-    using VtkOutputFields = GetPropType<TypeTag, Properties::VtkOutputFields>;
+    using IOFields = GetPropType<TypeTag, Properties::IOFields>;
     VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
     using VelocityOutput = GetPropType<TypeTag, Properties::VelocityOutput>;
     vtkWriter.addVelocityOutput(std::make_shared<VelocityOutput>(*gridVariables));
-    VtkOutputFields::initOutputModule(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
 
     // instantiate time loop
     auto timeLoop = std::make_shared<TimeLoop<Scalar>>(/*start time*/0.0, dt, tEnd);
diff --git a/exercises/exercise-fractures/exercise_fractures.cc b/exercises/exercise-fractures/exercise_fractures.cc
index 7a61562d..55ebc0d9 100644
--- a/exercises/exercise-fractures/exercise_fractures.cc
+++ b/exercises/exercise-fractures/exercise_fractures.cc
@@ -187,10 +187,10 @@ int main(int argc, char** argv) try
     FractureVtkOutputModule fractureVtkWriter(*fractureGridVariables, x[fractureDomainId], fractureProblem->name());
 
     // Add model specific output fields
-    using MatrixVtkOutputFields = GetPropType<MatrixTypeTag, Properties::VtkOutputFields>;
-    using FractureVtkOutputFields = GetPropType<FractureTypeTag, Properties::VtkOutputFields>;
-    MatrixVtkOutputFields::initOutputModule(matrixVtkWriter);
-    FractureVtkOutputFields::initOutputModule(fractureVtkWriter);
+    using MatrixIOFields = GetPropType<MatrixTypeTag, Properties::IOFields>;
+    using FractureIOFields = GetPropType<FractureTypeTag, Properties::IOFields>;
+    MatrixIOFields::initOutputModule(matrixVtkWriter);
+    FractureIOFields::initOutputModule(fractureVtkWriter);
 
     // add domain markers to output
     std::vector<int> matrixDomainMarkers(matrixFvGridGeometry->gridView().size(0));
diff --git a/exercises/exercise-grids/exercise_grids.cc b/exercises/exercise-grids/exercise_grids.cc
index 4c5a065c..5f57026c 100644
--- a/exercises/exercise-grids/exercise_grids.cc
+++ b/exercises/exercise-grids/exercise_grids.cc
@@ -125,11 +125,11 @@ int main(int argc, char** argv) try
     auto dt = getParam<Scalar>("TimeLoop.DtInitial");
 
     // intialize the vtk output module
-    using VtkOutputFields = GetPropType<TypeTag, Properties::VtkOutputFields>;
+    using IOFields = GetPropType<TypeTag, Properties::IOFields>;
     VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
     using VelocityOutput = GetPropType<TypeTag, Properties::VelocityOutput>;
     vtkWriter.addVelocityOutput(std::make_shared<VelocityOutput>(*gridVariables));
-    VtkOutputFields::initOutputModule(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
     vtkWriter.write(restartTime);
 
     // instantiate time loop
diff --git a/exercises/exercise-mainfile/exercise_1p_c.cc b/exercises/exercise-mainfile/exercise_1p_c.cc
index 11f31b10..94636e1a 100644
--- a/exercises/exercise-mainfile/exercise_1p_c.cc
+++ b/exercises/exercise-mainfile/exercise_1p_c.cc
@@ -99,7 +99,7 @@ int main(int argc, char** argv) try
     // the grid variables
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     auto gridVariables = std::make_shared<GridVariables>(problem, fvGridGeometry);
-    gridVariables->init(x, xOld);
+    gridVariables->init(x);
 
     // intialize the vtk output module
     VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
diff --git a/exercises/exercise-properties/exercise_properties.cc b/exercises/exercise-properties/exercise_properties.cc
index 558a13af..edcb4c51 100644
--- a/exercises/exercise-properties/exercise_properties.cc
+++ b/exercises/exercise-properties/exercise_properties.cc
@@ -155,14 +155,11 @@ int main(int argc, char** argv) try
     auto dt = getParam<Scalar>("TimeLoop.DtInitial");
 
     // intialize the vtk output module
-    using VtkOutputFields = GetPropType<TypeTag, Properties::VtkOutputFields>;
-
-    // intialize the vtk output module
-    using VtkOutputFields = GetPropType<TypeTag, Properties::VtkOutputFields>;
+    using IOFields = GetPropType<TypeTag, Properties::IOFields>;
     VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
     using VelocityOutput = GetPropType<TypeTag, Properties::VelocityOutput>;
     vtkWriter.addVelocityOutput(std::make_shared<VelocityOutput>(*gridVariables));
-    VtkOutputFields::initOutputModule(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
     vtkWriter.write(restartTime);
 
     // instantiate time loop
diff --git a/exercises/exercise-runtimeparams/exercise_runtimeparams.cc b/exercises/exercise-runtimeparams/exercise_runtimeparams.cc
index 315fb6fd..e1f59795 100644
--- a/exercises/exercise-runtimeparams/exercise_runtimeparams.cc
+++ b/exercises/exercise-runtimeparams/exercise_runtimeparams.cc
@@ -125,11 +125,11 @@ int main(int argc, char** argv) try
     auto dt = getParam<Scalar>("TimeLoop.DtInitial");
 
     // intialize the vtk output module
-    using VtkOutputFields = GetPropType<TypeTag, Properties::VtkOutputFields>;
+    using IOFields = GetPropType<TypeTag, Properties::IOFields>;
     VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
     using VelocityOutput = GetPropType<TypeTag, Properties::VelocityOutput>;
     vtkWriter.addVelocityOutput(std::make_shared<VelocityOutput>(*gridVariables));
-    VtkOutputFields::initOutputModule(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
     vtkWriter.write(restartTime);
 
     // instantiate time loop
diff --git a/exercises/solution/exercise-basic/exercise_basic_2pni.cc b/exercises/solution/exercise-basic/exercise_basic_2pni.cc
index 3a9037d9..e8e234af 100644
--- a/exercises/solution/exercise-basic/exercise_basic_2pni.cc
+++ b/exercises/solution/exercise-basic/exercise_basic_2pni.cc
@@ -123,11 +123,11 @@ int main(int argc, char** argv) try
     auto dt = getParam<Scalar>("TimeLoop.DtInitial");
 
     // intialize the vtk output module
-    using VtkOutputFields = GetPropType<TypeTag, Properties::VtkOutputFields>;
+    using IOFields = GetPropType<TypeTag, Properties::IOFields>;
     VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
     using VelocityOutput = GetPropType<TypeTag, Properties::VelocityOutput>;
     vtkWriter.addVelocityOutput(std::make_shared<VelocityOutput>(*gridVariables));
-    VtkOutputFields::initOutputModule(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
     vtkWriter.write(restartTime);
 
     // instantiate time loop
diff --git a/exercises/solution/exercise-biomineralization/exercisebiomin.cc b/exercises/solution/exercise-biomineralization/exercisebiomin.cc
index a4cbddfd..0ac7f193 100644
--- a/exercises/solution/exercise-biomineralization/exercisebiomin.cc
+++ b/exercises/solution/exercise-biomineralization/exercisebiomin.cc
@@ -104,7 +104,7 @@ int main(int argc, char** argv) try
     // the grid variables
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     auto gridVariables = std::make_shared<GridVariables>(problem, fvGridGeometry);
-    gridVariables->init(x, xOld);
+    gridVariables->init(x);
 
     // get some time loop parameters
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
@@ -113,9 +113,9 @@ int main(int argc, char** argv) try
     auto dt = getParam<Scalar>("TimeLoop.DtInitial");
 
     // initialize the vtk output module
-    using VtkOutputFields = GetPropType<TypeTag, Properties::VtkOutputFields>;
+    using IOFields = GetPropType<TypeTag, Properties::IOFields>;
     VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
-    VtkOutputFields::init(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
     //add specific output
     vtkWriter.addField(problem->getKxx(), "Kxx");
     vtkWriter.addField(problem->getKyy(), "Kyy");
diff --git a/exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.cc b/exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.cc
index 84434750..4f3bc841 100644
--- a/exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.cc
+++ b/exercises/solution/exercise-coupling-ff-pm/interface/ex_interface_coupling_ff-pm.cc
@@ -192,7 +192,7 @@ int main(int argc, char** argv) try
     const auto darcyName = getParam<std::string>("Problem.Name") + "_" + darcyProblem->name();
 
     StaggeredVtkOutputModule<StokesGridVariables, decltype(stokesSol)> stokesVtkWriter(*stokesGridVariables, stokesSol, stokesName);
-    GetPropType<StokesTypeTag, Properties::VtkOutputFields>::initOutputModule(stokesVtkWriter);
+    GetPropType<StokesTypeTag, Properties::IOFields>::initOutputModule(stokesVtkWriter);
 
 #if EXNUMBER >= 2
     stokesVtkWriter.addField(stokesProblem->getAnalyticalVelocityX(), "analyticalV_x");
diff --git a/exercises/solution/exercise-coupling-ff-pm/models/ex_models_coupling_ff-pm.cc b/exercises/solution/exercise-coupling-ff-pm/models/ex_models_coupling_ff-pm.cc
index 8528aeba..da400646 100644
--- a/exercises/solution/exercise-coupling-ff-pm/models/ex_models_coupling_ff-pm.cc
+++ b/exercises/solution/exercise-coupling-ff-pm/models/ex_models_coupling_ff-pm.cc
@@ -178,7 +178,7 @@ int main(int argc, char** argv) try
 #endif
 
     StaggeredVtkOutputModule<StokesGridVariables, decltype(stokesSol)> stokesVtkWriter(*stokesGridVariables, stokesSol, stokesName);
-    GetPropType<StokesTypeTag, Properties::VtkOutputFields>::initOutputModule(stokesVtkWriter);
+    GetPropType<StokesTypeTag, Properties::IOFields>::initOutputModule(stokesVtkWriter);
     stokesVtkWriter.write(0);
 
     VtkOutputModule<DarcyGridVariables, GetPropType<DarcyTypeTag, Properties::SolutionVector>> darcyVtkWriter(*darcyGridVariables, sol[darcyIdx], darcyName);
diff --git a/exercises/solution/exercise-coupling-ff-pm/turbulence/ex_turbulence_coupling_ff-pm.cc b/exercises/solution/exercise-coupling-ff-pm/turbulence/ex_turbulence_coupling_ff-pm.cc
index ac7f7584..a50ebcea 100644
--- a/exercises/solution/exercise-coupling-ff-pm/turbulence/ex_turbulence_coupling_ff-pm.cc
+++ b/exercises/solution/exercise-coupling-ff-pm/turbulence/ex_turbulence_coupling_ff-pm.cc
@@ -180,7 +180,7 @@ int main(int argc, char** argv) try
     const auto darcyName = getParam<std::string>("Problem.Name") + "_" + darcyProblem->name();
 
     StaggeredVtkOutputModule<StokesGridVariables, decltype(stokesSol)> stokesVtkWriter(*stokesGridVariables, stokesSol, stokesName);
-    GetPropType<StokesTypeTag, Properties::VtkOutputFields>::initOutputModule(stokesVtkWriter);
+    GetPropType<StokesTypeTag, Properties::IOFields>::initOutputModule(stokesVtkWriter);
     stokesVtkWriter.write(0.0);
 
     VtkOutputModule<DarcyGridVariables, GetPropType<DarcyTypeTag, Properties::SolutionVector>> darcyVtkWriter(*darcyGridVariables, sol[darcyIdx], darcyName);
diff --git a/exercises/solution/exercise-fluidsystem/exercise-fluidsystem.cc b/exercises/solution/exercise-fluidsystem/exercise-fluidsystem.cc
index ce136ff9..723a640b 100644
--- a/exercises/solution/exercise-fluidsystem/exercise-fluidsystem.cc
+++ b/exercises/solution/exercise-fluidsystem/exercise-fluidsystem.cc
@@ -105,7 +105,7 @@ int main(int argc, char** argv) try
     // the grid variables
     using GridVariables = GetPropType<TypeTag, Properties::GridVariables>;
     auto gridVariables = std::make_shared<GridVariables>(problem, fvGridGeometry);
-    gridVariables->init(x, xOld);
+    gridVariables->init(x);
 
     // get some time loop parameters
     using Scalar = GetPropType<TypeTag, Properties::Scalar>;
@@ -113,11 +113,11 @@ int main(int argc, char** argv) try
     const auto maxDt = getParam<Scalar>("TimeLoop.MaxTimeStepSize");
     auto dt = getParam<Scalar>("TimeLoop.DtInitial");
     // intialize the vtk output module
-    using VtkOutputFields = GetPropType<TypeTag, Properties::VtkOutputFields>;
+    using IOFields = GetPropType<TypeTag, Properties::IOFields>;
     VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
     using VelocityOutput = GetPropType<TypeTag, Properties::VelocityOutput>;
     vtkWriter.addVelocityOutput(std::make_shared<VelocityOutput>(*gridVariables));
-    VtkOutputFields::initOutputModule(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
 
     // instantiate time loop
     auto timeLoop = std::make_shared<TimeLoop<Scalar>>(/*start time*/0.0, dt, tEnd);
diff --git a/exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh b/exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh
index 6f4d9be4..4ff55957 100644
--- a/exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh
+++ b/exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh
@@ -122,6 +122,12 @@ public:
         return true;
     }
 
+        static constexpr bool isGas(int phaseIdx)
+    {
+        assert(0 <= phaseIdx && phaseIdx < numPhases);
+        return phaseIdx == phase1Idx;
+    }
+
     static constexpr bool isIdealGas(int phaseIdx)
     { return H2O::gasIsIdeal() && MyCompressibleComponent::gasIsIdeal(); }
 
diff --git a/exercises/solution/exercise-fractures/exercise_fractures.cc b/exercises/solution/exercise-fractures/exercise_fractures.cc
index ac6a9f1b..c545a6e9 100644
--- a/exercises/solution/exercise-fractures/exercise_fractures.cc
+++ b/exercises/solution/exercise-fractures/exercise_fractures.cc
@@ -180,10 +180,10 @@ int main(int argc, char** argv) try
     VtkOutputModule<FractureTypeTag> fractureVtkWriter(*fractureProblem, *fractureFvGridGeometry, *fractureGridVariables, x[fractureDomainId], fractureProblem->name());
 
     // Add model specific output fields
-    using MatrixVtkOutputFields = typename GET_PROP_TYPE(MatrixTypeTag, VtkOutputFields);
-    using FractureVtkOutputFields = typename GET_PROP_TYPE(FractureTypeTag, VtkOutputFields);
-    MatrixVtkOutputFields::init(matrixVtkWriter);
-    FractureVtkOutputFields::init(fractureVtkWriter);
+    using MatrixIOFields = typename GET_PROP_TYPE(MatrixTypeTag, IOFields);
+    using FractureIOFields = typename GET_PROP_TYPE(FractureTypeTag, IOFields);
+    MatrixIOFields::initOutputModule(matrixVtkWriter);
+    FractureIOFields::initOutputModule(fractureVtkWriter);
 
     // add domain markers to output
     std::vector<int> matrixDomainMarkers(matrixFvGridGeometry->gridView().size(0));
diff --git a/exercises/solution/exercise-grids/exercise_grids_solution.cc b/exercises/solution/exercise-grids/exercise_grids_solution.cc
index 6a907538..0f5ba985 100644
--- a/exercises/solution/exercise-grids/exercise_grids_solution.cc
+++ b/exercises/solution/exercise-grids/exercise_grids_solution.cc
@@ -125,11 +125,11 @@ int main(int argc, char** argv) try
     auto dt = getParam<Scalar>("TimeLoop.DtInitial");
 
     // intialize the vtk output module
-    using VtkOutputFields = GetPropType<TypeTag, Properties::VtkOutputFields>;
+    using IOFields = GetPropType<TypeTag, Properties::IOFields>;
     VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
     using VelocityOutput = GetPropType<TypeTag, Properties::VelocityOutput>;
     vtkWriter.addVelocityOutput(std::make_shared<VelocityOutput>(*gridVariables));
-    VtkOutputFields::initOutputModule(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
     vtkWriter.write(restartTime);
 
     // instantiate time loop
diff --git a/exercises/solution/exercise-grids/injection2pproblem.hh b/exercises/solution/exercise-grids/injection2pproblem.hh
index 325d555d..a18e2f48 100644
--- a/exercises/solution/exercise-grids/injection2pproblem.hh
+++ b/exercises/solution/exercise-grids/injection2pproblem.hh
@@ -47,19 +47,19 @@ struct Injection2pCCTypeTag { using InheritsFrom = std::tuple<Injection2pTypeTag
 } // end namespace TTag
 
 //Set the grid type
-template<class TypeTag>
-struct Grid<TypeTag, TTag::Injection2pTypeTag> { using type = Dune::YaspGrid<2>; };
+// template<class TypeTag>
+// struct Grid<TypeTag, TTag::Injection2pTypeTag> { using type = Dune::YaspGrid<2>; };
 // TODO: Task 2: Replace the above Grid Property definition with a more flexible grid (Use Dune::TensorProductCoordinates)
 template<class TypeTag>
 struct Grid<TypeTag, TTag::Injection2pTypeTag> { using type = Dune::YaspGrid<2, Dune::TensorProductCoordinates<double, 2> >; };
 
 // TODO: Task 4: Replace the above Grid Property definition to read in a external structured grid via a .msh file (Use Dune::ALUGrid and Dune:cube)
-template<class TypeTag>
-struct Grid<TypeTag, TTag::Injection2pTypeTag> { using type = Dune::ALUGrid<2, 2, Dune::cube, Dune::nonconforming>; };
+// template<class TypeTag>
+// struct Grid<TypeTag, TTag::Injection2pTypeTag> { using type = Dune::ALUGrid<2, 2, Dune::cube, Dune::nonconforming>; };
 
 // TODO: Task 5: Replace the above Grid Property definition to read in a external unstructured grid via a .msh file (Use Dune::ALUGrid and Dune::simplex)
-template<class TypeTag>
-struct Grid<TypeTag, TTag::Injection2pTypeTag> { using type = Dune::ALUGrid<2, 2, Dune::simplex, Dune::nonconforming>; };
+// template<class TypeTag>
+// struct Grid<TypeTag, TTag::Injection2pTypeTag> { using type = Dune::ALUGrid<2, 2, Dune::simplex, Dune::nonconforming>; };
 
 // Set the problem property
 template<class TypeTag>
diff --git a/exercises/solution/exercise-properties/exercise_properties_solution.cc b/exercises/solution/exercise-properties/exercise_properties_solution.cc
index 2b4e03ab..f532f0da 100644
--- a/exercises/solution/exercise-properties/exercise_properties_solution.cc
+++ b/exercises/solution/exercise-properties/exercise_properties_solution.cc
@@ -154,14 +154,11 @@ int main(int argc, char** argv) try
     auto dt = getParam<Scalar>("TimeLoop.DtInitial");
 
     // intialize the vtk output module
-    using VtkOutputFields = GetPropType<TypeTag, Properties::VtkOutputFields>;
-
-    // intialize the vtk output module
-    using VtkOutputFields = GetPropType<TypeTag, Properties::VtkOutputFields>;
+    using IOFields = GetPropType<TypeTag, Properties::IOFields>;
     VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
     using VelocityOutput = GetPropType<TypeTag, Properties::VelocityOutput>;
     vtkWriter.addVelocityOutput(std::make_shared<VelocityOutput>(*gridVariables));
-    VtkOutputFields::initOutputModule(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
     vtkWriter.write(restartTime);
 
     // instantiate time loop
diff --git a/exercises/solution/exercise-properties/mylocalresidual.hh b/exercises/solution/exercise-properties/mylocalresidual.hh
index 485f33a8..2270f28e 100644
--- a/exercises/solution/exercise-properties/mylocalresidual.hh
+++ b/exercises/solution/exercise-properties/mylocalresidual.hh
@@ -53,7 +53,7 @@ class MyLocalResidual : public GET_PROP_TYPE(TypeTag, BaseLocalResidual)
     using EnergyLocalResidual = typename GET_PROP_TYPE(TypeTag, EnergyLocalResidual);
 
     using ModelTraits = typename GET_PROP_TYPE(TypeTag, ModelTraits);
-    static constexpr int numPhases = ModelTraits::numPhases();
+    static constexpr int numPhases = ModelTraits::numFluidPhases();
     static constexpr int conti0EqIdx = ModelTraits::Indices::conti0EqIdx; //!< first index for the mass balance
 
 public:
diff --git a/exercises/solution/exercise-runtimeparams/exercise_runtimeparams_solution.cc b/exercises/solution/exercise-runtimeparams/exercise_runtimeparams_solution.cc
index 315fb6fd..e1f59795 100644
--- a/exercises/solution/exercise-runtimeparams/exercise_runtimeparams_solution.cc
+++ b/exercises/solution/exercise-runtimeparams/exercise_runtimeparams_solution.cc
@@ -125,11 +125,11 @@ int main(int argc, char** argv) try
     auto dt = getParam<Scalar>("TimeLoop.DtInitial");
 
     // intialize the vtk output module
-    using VtkOutputFields = GetPropType<TypeTag, Properties::VtkOutputFields>;
+    using IOFields = GetPropType<TypeTag, Properties::IOFields>;
     VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
     using VelocityOutput = GetPropType<TypeTag, Properties::VelocityOutput>;
     vtkWriter.addVelocityOutput(std::make_shared<VelocityOutput>(*gridVariables));
-    VtkOutputFields::initOutputModule(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
     vtkWriter.write(restartTime);
 
     // instantiate time loop
-- 
GitLab