diff --git a/.patches/exercise-basic/exercise-basic.patch b/.patches/exercise-basic/exercise-basic.patch
index 00d032d08ae7ec7e8ac0acdf379a985d1a00ac50..0e075eef7de3b610b9418411c29c85f7bf4eb840 100644
--- a/.patches/exercise-basic/exercise-basic.patch
+++ b/.patches/exercise-basic/exercise-basic.patch
@@ -1,5 +1,5 @@
 diff -ruN exercises/exercise-basic/2pmain.cc exercises/solution/exercise-basic/2pmain.cc
---- exercises/exercise-basic/2pmain.cc	2025-02-13 16:25:25.584470713 +0100
+--- exercises/exercise-basic/2pmain.cc	2025-03-03 15:56:59.902625104 +0100
 +++ exercises/solution/exercise-basic/2pmain.cc	1970-01-01 01:00:00.000000000 +0100
 @@ -1,145 +0,0 @@
 -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
@@ -149,7 +149,7 @@ diff -ruN exercises/exercise-basic/2pmain.cc exercises/solution/exercise-basic/2
 -} // end main
 diff -ruN exercises/exercise-basic/2pnimain.cc exercises/solution/exercise-basic/2pnimain.cc
 --- exercises/exercise-basic/2pnimain.cc	1970-01-01 01:00:00.000000000 +0100
-+++ exercises/solution/exercise-basic/2pnimain.cc	2025-02-13 16:25:25.632470178 +0100
++++ exercises/solution/exercise-basic/2pnimain.cc	2025-03-03 15:56:59.909624983 +0100
 @@ -0,0 +1,138 @@
 +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
 +// vi: set et ts=4 sw=4 sts=4:
@@ -290,8 +290,8 @@ diff -ruN exercises/exercise-basic/2pnimain.cc exercises/solution/exercise-basic
 +    return 0;
 +} // end main
 diff -ruN exercises/exercise-basic/CMakeLists.txt exercises/solution/exercise-basic/CMakeLists.txt
---- exercises/exercise-basic/CMakeLists.txt	2025-02-13 16:25:25.584470713 +0100
-+++ exercises/solution/exercise-basic/CMakeLists.txt	2025-02-13 16:25:25.632470178 +0100
+--- exercises/exercise-basic/CMakeLists.txt	2025-03-03 15:56:59.902625104 +0100
++++ exercises/solution/exercise-basic/CMakeLists.txt	2025-03-03 15:56:59.909624983 +0100
 @@ -1,12 +1,9 @@
  # SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
  # SPDX-License-Identifier: GPL-3.0-or-later
@@ -309,8 +309,8 @@ diff -ruN exercises/exercise-basic/CMakeLists.txt exercises/solution/exercise-ba
  # add a symlink for each input file
  add_input_file_links()
 diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/exercise-basic/injection2pniproblem.hh
---- exercises/exercise-basic/injection2pniproblem.hh	2025-02-13 16:25:25.584470713 +0100
-+++ exercises/solution/exercise-basic/injection2pniproblem.hh	2025-02-13 16:25:25.632470178 +0100
+--- exercises/exercise-basic/injection2pniproblem.hh	2025-03-03 15:56:59.902625104 +0100
++++ exercises/solution/exercise-basic/injection2pniproblem.hh	2025-03-03 15:56:59.909624983 +0100
 @@ -7,7 +7,7 @@
  /*!
   * \file
@@ -401,7 +401,7 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex
      }
  
 diff -ruN exercises/exercise-basic/injection2pproblem.hh exercises/solution/exercise-basic/injection2pproblem.hh
---- exercises/exercise-basic/injection2pproblem.hh	2025-02-13 16:25:25.585470702 +0100
+--- exercises/exercise-basic/injection2pproblem.hh	2025-03-03 15:56:59.902625104 +0100
 +++ exercises/solution/exercise-basic/injection2pproblem.hh	1970-01-01 01:00:00.000000000 +0100
 @@ -1,211 +0,0 @@
 -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
@@ -616,8 +616,8 @@ diff -ruN exercises/exercise-basic/injection2pproblem.hh exercises/solution/exer
 -
 -#endif
 diff -ruN exercises/exercise-basic/params.input exercises/solution/exercise-basic/params.input
---- exercises/exercise-basic/params.input	2025-02-13 16:25:25.585470702 +0100
-+++ exercises/solution/exercise-basic/params.input	2025-02-13 16:25:25.632470178 +0100
+--- exercises/exercise-basic/params.input	2024-07-11 13:35:11.644137283 +0200
++++ exercises/solution/exercise-basic/params.input	2025-03-03 15:23:33.246567644 +0100
 @@ -24,7 +24,7 @@
  Aquifer.Snr = 0.0
  
@@ -631,7 +631,7 @@ diff -ruN exercises/exercise-basic/params.input exercises/solution/exercise-basi
 +SolidThermalConductivity = 2.8 # solid thermal conducitivity of granite
 +SolidHeatCapacity = 790 # solid heat capacity of granite
 diff -ruN exercises/exercise-basic/properties2p.hh exercises/solution/exercise-basic/properties2p.hh
---- exercises/exercise-basic/properties2p.hh	2025-02-13 16:25:25.585470702 +0100
+--- exercises/exercise-basic/properties2p.hh	2025-03-03 15:56:59.902625104 +0100
 +++ exercises/solution/exercise-basic/properties2p.hh	1970-01-01 01:00:00.000000000 +0100
 @@ -1,63 +0,0 @@
 -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
@@ -698,8 +698,8 @@ diff -ruN exercises/exercise-basic/properties2p.hh exercises/solution/exercise-b
 -
 -#endif
 diff -ruN exercises/exercise-basic/properties2pni.hh exercises/solution/exercise-basic/properties2pni.hh
---- exercises/exercise-basic/properties2pni.hh	2025-02-13 16:25:25.585470702 +0100
-+++ exercises/solution/exercise-basic/properties2pni.hh	2025-02-13 16:25:25.632470178 +0100
+--- exercises/exercise-basic/properties2pni.hh	2025-03-03 15:56:59.902625104 +0100
++++ exercises/solution/exercise-basic/properties2pni.hh	2025-03-03 15:56:59.909624983 +0100
 @@ -24,13 +24,9 @@
  
  namespace Dumux::Properties {
@@ -716,7 +716,7 @@ diff -ruN exercises/exercise-basic/properties2pni.hh exercises/solution/exercise
  } // end namespace TTag
  
 diff -ruN exercises/exercise-basic/README.md exercises/solution/exercise-basic/README.md
---- exercises/exercise-basic/README.md	2025-02-27 15:01:08.187051863 +0100
+--- exercises/exercise-basic/README.md	2025-03-03 15:23:33.239567801 +0100
 +++ exercises/solution/exercise-basic/README.md	1970-01-01 01:00:00.000000000 +0100
 @@ -1,94 +0,0 @@
 -# Exercise Basics (DuMuX course)
diff --git a/.patches/exercise-biomineralization/exercise-biomineralization.patch b/.patches/exercise-biomineralization/exercise-biomineralization.patch
index 303cc0a29a4f55b766d159ceb6bf67e5462e58c4..60c7222f8f81aaee982fac488de3f3990d69378d 100644
--- a/.patches/exercise-biomineralization/exercise-biomineralization.patch
+++ b/.patches/exercise-biomineralization/exercise-biomineralization.patch
@@ -1,6 +1,6 @@
 diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/solution/exercise-biomineralization/biominproblem.hh
---- exercises/exercise-biomineralization/biominproblem.hh	2025-02-13 16:25:25.586470691 +0100
-+++ exercises/solution/exercise-biomineralization/biominproblem.hh	2025-02-13 16:25:25.632470178 +0100
+--- exercises/exercise-biomineralization/biominproblem.hh	2025-03-03 15:56:59.902625104 +0100
++++ exercises/solution/exercise-biomineralization/biominproblem.hh	2025-03-03 15:56:59.909624983 +0100
 @@ -19,10 +19,12 @@
  
  // TODO: dumux-course-task
@@ -70,8 +70,8 @@ diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/soluti
      {
          return Kxx_;
 diff -ruN exercises/exercise-biomineralization/biominspatialparams.hh exercises/solution/exercise-biomineralization/biominspatialparams.hh
---- exercises/exercise-biomineralization/biominspatialparams.hh	2025-02-13 16:25:25.586470691 +0100
-+++ exercises/solution/exercise-biomineralization/biominspatialparams.hh	2025-02-13 16:25:25.632470178 +0100
+--- exercises/exercise-biomineralization/biominspatialparams.hh	2025-03-03 15:56:59.902625104 +0100
++++ exercises/solution/exercise-biomineralization/biominspatialparams.hh	2025-03-03 15:56:59.909624983 +0100
 @@ -18,7 +18,7 @@
  #include <dumux/material/fluidmatrixinteractions/porosityprecipitation.hh>
  // TODO: dumux-course-task
@@ -91,8 +91,8 @@ diff -ruN exercises/exercise-biomineralization/biominspatialparams.hh exercises/
  
      Scalar initialPorosity_;
 diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.hh exercises/solution/exercise-biomineralization/chemistry/simplebiominreactions.hh
---- exercises/exercise-biomineralization/chemistry/simplebiominreactions.hh	2025-02-13 16:25:25.586470691 +0100
-+++ exercises/solution/exercise-biomineralization/chemistry/simplebiominreactions.hh	2025-02-13 16:25:25.632470178 +0100
+--- exercises/exercise-biomineralization/chemistry/simplebiominreactions.hh	2025-03-03 15:56:59.902625104 +0100
++++ exercises/solution/exercise-biomineralization/chemistry/simplebiominreactions.hh	2025-03-03 15:56:59.909624983 +0100
 @@ -73,24 +73,26 @@
          //   define and compute some parameters for convenience:
          const Scalar xwCa = volVars.moleFraction(liquidPhaseIdx,CaIdx);
@@ -143,8 +143,8 @@ diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.h
  
  private:
 diff -ruN exercises/exercise-biomineralization/CMakeLists.txt exercises/solution/exercise-biomineralization/CMakeLists.txt
---- exercises/exercise-biomineralization/CMakeLists.txt	2025-02-13 16:25:25.585470702 +0100
-+++ exercises/solution/exercise-biomineralization/CMakeLists.txt	2025-02-13 16:25:25.632470178 +0100
+--- exercises/exercise-biomineralization/CMakeLists.txt	2025-03-03 15:56:59.902625104 +0100
++++ exercises/solution/exercise-biomineralization/CMakeLists.txt	2025-03-03 15:56:59.909624983 +0100
 @@ -2,9 +2,9 @@
  # SPDX-License-Identifier: GPL-3.0-or-later
  
@@ -158,8 +158,8 @@ diff -ruN exercises/exercise-biomineralization/CMakeLists.txt exercises/solution
  # add a symlink for each input file
  add_input_file_links()
 diff -ruN exercises/exercise-biomineralization/components/biofilm.hh exercises/solution/exercise-biomineralization/components/biofilm.hh
---- exercises/exercise-biomineralization/components/biofilm.hh	2025-02-13 16:25:25.586470691 +0100
-+++ exercises/solution/exercise-biomineralization/components/biofilm.hh	2025-02-13 16:25:25.632470178 +0100
+--- exercises/exercise-biomineralization/components/biofilm.hh	2025-03-03 15:56:59.902625104 +0100
++++ exercises/solution/exercise-biomineralization/components/biofilm.hh	2025-03-03 15:56:59.909624983 +0100
 @@ -12,9 +12,10 @@
  #ifndef DUMUX_BIOFILM_HH
  #define DUMUX_BIOFILM_HH
@@ -173,8 +173,8 @@ diff -ruN exercises/exercise-biomineralization/components/biofilm.hh exercises/s
  namespace Dumux::Components {
  
 diff -ruN exercises/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh exercises/solution/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh
---- exercises/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh	2025-02-13 16:25:25.586470691 +0100
-+++ exercises/solution/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh	2025-02-13 16:25:25.632470178 +0100
+--- exercises/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh	2025-03-03 15:56:59.903625087 +0100
++++ exercises/solution/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh	2025-03-03 15:56:59.909624983 +0100
 @@ -41,10 +41,11 @@
          using std::pow;
          // TODO: dumux-course-task
@@ -189,8 +189,8 @@ diff -ruN exercises/exercise-biomineralization/fluidmatrixinteractions/permeabil
  };
  
 diff -ruN exercises/exercise-biomineralization/fluidsystems/biomin.hh exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh
---- exercises/exercise-biomineralization/fluidsystems/biomin.hh	2025-02-13 16:25:25.586470691 +0100
-+++ exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh	2025-02-13 16:25:25.632470178 +0100
+--- exercises/exercise-biomineralization/fluidsystems/biomin.hh	2025-03-03 15:56:59.903625087 +0100
++++ exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh	2025-03-03 15:56:59.909624983 +0100
 @@ -219,7 +219,7 @@
      static void init()
      {
@@ -201,8 +201,8 @@ diff -ruN exercises/exercise-biomineralization/fluidsystems/biomin.hh exercises/
      }
  
 diff -ruN exercises/exercise-biomineralization/params.input exercises/solution/exercise-biomineralization/params.input
---- exercises/exercise-biomineralization/params.input	2025-02-13 16:25:25.587470680 +0100
-+++ exercises/solution/exercise-biomineralization/params.input	2025-02-13 16:25:25.632470178 +0100
+--- exercises/exercise-biomineralization/params.input	2025-03-03 15:23:33.241567756 +0100
++++ exercises/solution/exercise-biomineralization/params.input	2025-03-03 15:23:33.246567644 +0100
 @@ -16,10 +16,10 @@
  InitBiofilm = 0.05 # [-] initial volumefraction biofilm
  
@@ -234,8 +234,8 @@ diff -ruN exercises/exercise-biomineralization/params.input exercises/solution/e
 +[PowerLaw]
 +Exponent = 5.0
 diff -ruN exercises/exercise-biomineralization/properties.hh exercises/solution/exercise-biomineralization/properties.hh
---- exercises/exercise-biomineralization/properties.hh	2025-02-13 16:25:25.587470680 +0100
-+++ exercises/solution/exercise-biomineralization/properties.hh	2025-02-13 16:25:25.632470178 +0100
+--- exercises/exercise-biomineralization/properties.hh	2025-03-03 15:56:59.903625087 +0100
++++ exercises/solution/exercise-biomineralization/properties.hh	2025-03-03 15:56:59.909624983 +0100
 @@ -18,17 +18,20 @@
  #include <dumux/discretization/cctpfa.hh>
  #include <dumux/porousmediumflow/2pncmin/model.hh>
@@ -269,7 +269,7 @@ diff -ruN exercises/exercise-biomineralization/properties.hh exercises/solution/
  public:
      using type = FluidSystems::BioMin<Scalar, CO2Impl, H2OType>;
 diff -ruN exercises/exercise-biomineralization/README.md exercises/solution/exercise-biomineralization/README.md
---- exercises/exercise-biomineralization/README.md	2025-02-27 14:58:09.992681626 +0100
+--- exercises/exercise-biomineralization/README.md	2025-03-03 15:23:33.240567779 +0100
 +++ exercises/solution/exercise-biomineralization/README.md	1970-01-01 01:00:00.000000000 +0100
 @@ -1,257 +0,0 @@
 -# Exercise Biomineralization (DuMuX Course)
@@ -530,8 +530,8 @@ diff -ruN exercises/exercise-biomineralization/README.md exercises/solution/exer
 -output.CellData.append((S_gas_0-S_gas_1),'diffS_gas');
 -```
 diff -ruN exercises/exercise-biomineralization/solidsystems/biominsolidphase.hh exercises/solution/exercise-biomineralization/solidsystems/biominsolidphase.hh
---- exercises/exercise-biomineralization/solidsystems/biominsolidphase.hh	2025-02-13 16:25:25.587470680 +0100
-+++ exercises/solution/exercise-biomineralization/solidsystems/biominsolidphase.hh	2025-02-13 16:25:25.632470178 +0100
+--- exercises/exercise-biomineralization/solidsystems/biominsolidphase.hh	2025-03-03 15:56:59.903625087 +0100
++++ exercises/solution/exercise-biomineralization/solidsystems/biominsolidphase.hh	2025-03-03 15:56:59.909624983 +0100
 @@ -15,12 +15,12 @@
  #include <string>
  #include <dune/common/exceptions.hh>
diff --git a/.patches/exercise-coupling-ff-pm/exercise-coupling-ff-pm.patch b/.patches/exercise-coupling-ff-pm/exercise-coupling-ff-pm.patch
index e5b66570a9ffee2ee03b289447cd426951bd26dd..f24a7615ab97fe5e054c8bccad6536fbbc1e9c39 100644
--- a/.patches/exercise-coupling-ff-pm/exercise-coupling-ff-pm.patch
+++ b/.patches/exercise-coupling-ff-pm/exercise-coupling-ff-pm.patch
@@ -1,6 +1,6 @@
 diff -ruN exercises/exercise-coupling-ff-pm/interface/CMakeLists.txt exercises/solution/exercise-coupling-ff-pm/interface/CMakeLists.txt
---- exercises/exercise-coupling-ff-pm/interface/CMakeLists.txt	2025-02-13 16:25:25.587470680 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/interface/CMakeLists.txt	2025-02-13 16:25:25.632470178 +0100
+--- exercises/exercise-coupling-ff-pm/interface/CMakeLists.txt	2025-03-03 15:56:59.903625087 +0100
++++ exercises/solution/exercise-coupling-ff-pm/interface/CMakeLists.txt	2025-03-03 15:56:59.909624983 +0100
 @@ -1,10 +1,30 @@
  # SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
  # SPDX-License-Identifier: GPL-3.0-or-later
@@ -36,8 +36,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/CMakeLists.txt exercises/s
  # add a symlink for each input file
  add_input_file_links()
 diff -ruN exercises/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh exercises/solution/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh
---- exercises/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh	2025-02-13 16:25:25.588470669 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh	2025-02-13 16:25:25.632470178 +0100
+--- exercises/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh	2025-03-03 15:56:59.903625087 +0100
++++ exercises/solution/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh	2025-03-03 15:56:59.909624983 +0100
 @@ -71,8 +71,7 @@
  
          const auto& globalPos = scvf.dofPosition();
@@ -135,8 +135,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh exer
      }
  
 diff -ruN exercises/exercise-coupling-ff-pm/interface/main.cc exercises/solution/exercise-coupling-ff-pm/interface/main.cc
---- exercises/exercise-coupling-ff-pm/interface/main.cc	2025-02-13 16:25:25.588470669 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/interface/main.cc	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-coupling-ff-pm/interface/main.cc	2025-03-03 15:56:59.904625069 +0100
++++ exercises/solution/exercise-coupling-ff-pm/interface/main.cc	2025-03-03 15:56:59.909624983 +0100
 @@ -52,9 +52,7 @@
      using FreeflowTypeTag = Properties::TTag::FreeflowOneP;
      using PorousMediumTypeTag = Properties::TTag::PorousMediumFlowOneP;
@@ -263,8 +263,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/main.cc exercises/solution
      using PorousMediumSolutionVector = GetPropType<PorousMediumTypeTag, Properties::SolutionVector>;
      VtkOutputModule<PorousMediumGridVariables, PorousMediumSolutionVector> porousMediumVtkWriter(*porousMediumGridVariables,
 diff -ruN exercises/exercise-coupling-ff-pm/interface/params.input exercises/solution/exercise-coupling-ff-pm/interface/params.input
---- exercises/exercise-coupling-ff-pm/interface/params.input	2025-02-13 16:25:25.588470669 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/interface/params.input	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-coupling-ff-pm/interface/params.input	2025-03-03 15:23:33.242567734 +0100
++++ exercises/solution/exercise-coupling-ff-pm/interface/params.input	2025-03-03 15:23:33.246567644 +0100
 @@ -1,16 +1,14 @@
 -# # TODO: dumux-course-task 1.C: uncomment the following group [Grid]
 -# # for dune-subgrid
@@ -301,8 +301,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/params.input exercises/sol
  Verbosity = true
  Positions0 = 0.0 1.0
 diff -ruN exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh exercises/solution/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh
---- exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh	2025-02-13 16:25:25.588470669 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh	2025-03-03 15:56:59.904625069 +0100
++++ exercises/solution/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh	2025-03-03 15:56:59.909624983 +0100
 @@ -68,9 +68,10 @@
          // set Neumann BCs to all boundaries first
          values.setAllNeumann();
@@ -316,8 +316,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh
          // set the coupling boundary condition at the interface
          if (couplingManager().isCoupledEntity(CouplingManager::darcyIdx, scvf))
 diff -ruN exercises/exercise-coupling-ff-pm/interface/properties.hh exercises/solution/exercise-coupling-ff-pm/interface/properties.hh
---- exercises/exercise-coupling-ff-pm/interface/properties.hh	2025-02-13 16:25:25.588470669 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/interface/properties.hh	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-coupling-ff-pm/interface/properties.hh	2025-03-03 15:56:59.904625069 +0100
++++ exercises/solution/exercise-coupling-ff-pm/interface/properties.hh	2025-03-03 15:56:59.910624965 +0100
 @@ -16,9 +16,9 @@
  #include <dumux/multidomain/staggeredtraits.hh>
  #include <dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh>
@@ -374,7 +374,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/properties.hh exercises/so
  
  template<class TypeTag>
 diff -ruN exercises/exercise-coupling-ff-pm/interface/README.md exercises/solution/exercise-coupling-ff-pm/interface/README.md
---- exercises/exercise-coupling-ff-pm/interface/README.md	2025-02-27 14:55:01.826743013 +0100
+--- exercises/exercise-coupling-ff-pm/interface/README.md	2025-03-03 15:23:33.241567756 +0100
 +++ exercises/solution/exercise-coupling-ff-pm/interface/README.md	1970-01-01 01:00:00.000000000 +0100
 @@ -1,175 +0,0 @@
 -## 1. Changing the interface
@@ -553,8 +553,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/README.md exercises/soluti
 -What changes to the left boundary conditions in the free-flow domain would you make to introduce this? What conditions can be enforced on the right boundary?
 -Hint: A relation between velocity and position is used for the vertical velocity component in the original form of the `dirichletAtPos` method.
 diff -ruN exercises/exercise-coupling-ff-pm/models/CMakeLists.txt exercises/solution/exercise-coupling-ff-pm/models/CMakeLists.txt
---- exercises/exercise-coupling-ff-pm/models/CMakeLists.txt	2025-02-13 16:25:25.589470658 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/models/CMakeLists.txt	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-coupling-ff-pm/models/CMakeLists.txt	2025-03-03 15:56:59.904625069 +0100
++++ exercises/solution/exercise-coupling-ff-pm/models/CMakeLists.txt	2025-03-03 15:56:59.910624965 +0100
 @@ -1,9 +1,32 @@
  # SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
  # SPDX-License-Identifier: GPL-3.0-or-later
@@ -593,8 +593,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/CMakeLists.txt exercises/solu
 +
 +dune_symlink_to_source_files(FILES "params_orig_a.input" "params_b_c.input" plotFluxes.py)
 diff -ruN exercises/exercise-coupling-ff-pm/models/main.cc exercises/solution/exercise-coupling-ff-pm/models/main.cc
---- exercises/exercise-coupling-ff-pm/models/main.cc	2025-02-13 16:25:25.589470658 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/models/main.cc	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-coupling-ff-pm/models/main.cc	2025-03-03 15:56:59.904625069 +0100
++++ exercises/solution/exercise-coupling-ff-pm/models/main.cc	2025-03-03 15:56:59.910624965 +0100
 @@ -127,9 +127,15 @@
      auto porousMediumGridVariables = std::make_shared<PorousMediumGridVariables>(porousMediumProblem, porousMediumFvGridGeometry);
      porousMediumGridVariables->init(sol[porousMediumIdx]);
@@ -616,7 +616,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/main.cc exercises/solution/ex
      GetPropType<FreeflowTypeTag, Properties::IOFields>::initOutputModule(freeflowVtkWriter);
 diff -ruN exercises/exercise-coupling-ff-pm/models/params_b_c.input exercises/solution/exercise-coupling-ff-pm/models/params_b_c.input
 --- exercises/exercise-coupling-ff-pm/models/params_b_c.input	1970-01-01 01:00:00.000000000 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/models/params_b_c.input	2025-02-13 16:25:25.633470167 +0100
++++ exercises/solution/exercise-coupling-ff-pm/models/params_b_c.input	2025-03-03 15:23:33.246567644 +0100
 @@ -0,0 +1,57 @@
 +[TimeLoop]
 +DtInitial = 100 # s
@@ -676,7 +676,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/params_b_c.input exercises/so
 +[Assembly]
 +NumericDifference.BaseEpsilon = 1e-8
 diff -ruN exercises/exercise-coupling-ff-pm/models/params.input exercises/solution/exercise-coupling-ff-pm/models/params.input
---- exercises/exercise-coupling-ff-pm/models/params.input	2025-02-13 16:25:25.589470658 +0100
+--- exercises/exercise-coupling-ff-pm/models/params.input	2025-03-03 15:23:33.242567734 +0100
 +++ exercises/solution/exercise-coupling-ff-pm/models/params.input	1970-01-01 01:00:00.000000000 +0100
 @@ -1,58 +0,0 @@
 -[TimeLoop]
@@ -739,7 +739,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/params.input exercises/soluti
 -NumericDifference.BaseEpsilon = 1e-8
 diff -ruN exercises/exercise-coupling-ff-pm/models/params_orig_a.input exercises/solution/exercise-coupling-ff-pm/models/params_orig_a.input
 --- exercises/exercise-coupling-ff-pm/models/params_orig_a.input	1970-01-01 01:00:00.000000000 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/models/params_orig_a.input	2025-02-13 16:25:25.633470167 +0100
++++ exercises/solution/exercise-coupling-ff-pm/models/params_orig_a.input	2025-03-03 15:23:33.246567644 +0100
 @@ -0,0 +1,56 @@
 +[TimeLoop]
 +DtInitial = 100 # s
@@ -798,8 +798,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/params_orig_a.input exercises
 +[Assembly]
 +NumericDifference.BaseEpsilon = 1e-8
 diff -ruN exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh
---- exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh	2025-02-13 16:25:25.589470658 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh	2025-03-03 15:56:59.905625052 +0100
++++ exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh	2025-03-03 15:56:59.910624965 +0100
 @@ -52,10 +52,15 @@
      // primary variable indices
      static constexpr int conti0EqIdx = Indices::conti0EqIdx;
@@ -921,8 +921,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh exe
      std::shared_ptr<CouplingManager> couplingManager_;
  
 diff -ruN exercises/exercise-coupling-ff-pm/models/properties.hh exercises/solution/exercise-coupling-ff-pm/models/properties.hh
---- exercises/exercise-coupling-ff-pm/models/properties.hh	2025-02-13 16:25:25.589470658 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/models/properties.hh	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-coupling-ff-pm/models/properties.hh	2025-03-03 15:56:59.905625052 +0100
++++ exercises/solution/exercise-coupling-ff-pm/models/properties.hh	2025-03-03 15:56:59.910624965 +0100
 @@ -25,12 +25,14 @@
  #include <dumux/discretization/cctpfa.hh>
  #include <dumux/material/fluidmatrixinteractions/diffusivityconstanttortuosity.hh>
@@ -1005,7 +1005,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/properties.hh exercises/solut
  template<class TypeTag>
  struct EnableGridGeometryCache<TypeTag, TTag::FreeflowNC> { static constexpr bool value = true; };
 diff -ruN exercises/exercise-coupling-ff-pm/models/README.md exercises/solution/exercise-coupling-ff-pm/models/README.md
---- exercises/exercise-coupling-ff-pm/models/README.md	2025-02-13 16:25:25.589470658 +0100
+--- exercises/exercise-coupling-ff-pm/models/README.md	2025-03-03 15:23:33.242567734 +0100
 +++ exercises/solution/exercise-coupling-ff-pm/models/README.md	1970-01-01 01:00:00.000000000 +0100
 @@ -1,118 +0,0 @@
 -## 2. Changing the porous medium model
@@ -1127,7 +1127,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/README.md exercises/solution/
 -
 -Now you are able to simulate a complete drying of the porous medium. Have a look the resulting liquid saturation distribution within the porous medium (with using paraview).
 diff -ruN exercises/exercise-coupling-ff-pm/README.md exercises/solution/exercise-coupling-ff-pm/README.md
---- exercises/exercise-coupling-ff-pm/README.md	2025-02-13 16:25:25.587470680 +0100
+--- exercises/exercise-coupling-ff-pm/README.md	2025-03-03 15:23:33.241567756 +0100
 +++ exercises/solution/exercise-coupling-ff-pm/README.md	1970-01-01 01:00:00.000000000 +0100
 @@ -1,125 +0,0 @@
 -# Exercise Coupling free flow/porous medium flow (DuMuX Course)
@@ -1256,8 +1256,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/README.md exercises/solution/exercis
 -* [**Exercise 2:** Changing the porous medium model](./models/README.md)
 -* [**Exercise 3:** Introducing a turbulence model in the free flow domain](./turbulence/README.md)
 diff -ruN exercises/exercise-coupling-ff-pm/turbulence/CMakeLists.txt exercises/solution/exercise-coupling-ff-pm/turbulence/CMakeLists.txt
---- exercises/exercise-coupling-ff-pm/turbulence/CMakeLists.txt	2025-02-13 16:25:25.589470658 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/turbulence/CMakeLists.txt	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-coupling-ff-pm/turbulence/CMakeLists.txt	2025-03-03 15:56:59.905625052 +0100
++++ exercises/solution/exercise-coupling-ff-pm/turbulence/CMakeLists.txt	2025-03-03 15:56:59.910624965 +0100
 @@ -1,10 +1,33 @@
  # SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
  # SPDX-License-Identifier: GPL-3.0-or-later
@@ -1296,8 +1296,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/CMakeLists.txt exercises/
  # add a symlink for each input file
  add_input_file_links()
 diff -ruN exercises/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh exercises/solution/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh
---- exercises/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh	2025-02-13 16:25:25.590470647 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh	2025-03-03 15:56:59.905625052 +0100
++++ exercises/solution/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh	2025-03-03 15:56:59.910624965 +0100
 @@ -8,8 +8,8 @@
   * \file
   * \brief The free-flow sub problem
@@ -1513,8 +1513,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh exe
          return values;
      }
 diff -ruN exercises/exercise-coupling-ff-pm/turbulence/main.cc exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc
---- exercises/exercise-coupling-ff-pm/turbulence/main.cc	2025-02-13 16:25:25.590470647 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-coupling-ff-pm/turbulence/main.cc	2025-03-03 15:56:59.905625052 +0100
++++ exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc	2025-03-03 15:56:59.910624965 +0100
 @@ -122,11 +122,12 @@
  
      couplingManager->init(freeflowProblem, porousMediumProblem, sol);
@@ -1545,7 +1545,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/main.cc exercises/solutio
          porousMediumProblem->postTimeStep(sol[porousMediumIdx], *porousMediumGridVariables, timeLoop->timeStepSize());
 diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_b.input exercises/solution/exercise-coupling-ff-pm/turbulence/params_b.input
 --- exercises/exercise-coupling-ff-pm/turbulence/params_b.input	1970-01-01 01:00:00.000000000 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_b.input	2025-02-13 16:25:25.633470167 +0100
++++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_b.input	2025-03-03 15:23:33.246567644 +0100
 @@ -0,0 +1,72 @@
 +[TimeLoop]
 +DtInitial =  1e-1 # [s]
@@ -1621,7 +1621,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_b.input exercises/
 +IsFlatWallBounded = True
 diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_c_d.input exercises/solution/exercise-coupling-ff-pm/turbulence/params_c_d.input
 --- exercises/exercise-coupling-ff-pm/turbulence/params_c_d.input	1970-01-01 01:00:00.000000000 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_c_d.input	2025-02-13 16:25:25.633470167 +0100
++++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_c_d.input	2025-03-03 15:23:33.246567644 +0100
 @@ -0,0 +1,72 @@
 +[TimeLoop]
 +DtInitial =  1e-1 # [s]
@@ -1696,7 +1696,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_c_d.input exercise
 +[RANS]
 +IsFlatWallBounded = True
 diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params.input exercises/solution/exercise-coupling-ff-pm/turbulence/params.input
---- exercises/exercise-coupling-ff-pm/turbulence/params.input	2025-02-13 16:25:25.590470647 +0100
+--- exercises/exercise-coupling-ff-pm/turbulence/params.input	2025-03-03 15:23:33.243567711 +0100
 +++ exercises/solution/exercise-coupling-ff-pm/turbulence/params.input	1970-01-01 01:00:00.000000000 +0100
 @@ -1,73 +0,0 @@
 -[TimeLoop]
@@ -1774,7 +1774,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params.input exercises/so
 -SolidHeatCapacity = 790
 diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_orig_a.input exercises/solution/exercise-coupling-ff-pm/turbulence/params_orig_a.input
 --- exercises/exercise-coupling-ff-pm/turbulence/params_orig_a.input	1970-01-01 01:00:00.000000000 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_orig_a.input	2025-02-13 16:25:25.633470167 +0100
++++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_orig_a.input	2025-03-03 15:23:33.246567644 +0100
 @@ -0,0 +1,72 @@
 +[TimeLoop]
 +DtInitial =  1e-1 # [s]
@@ -1849,8 +1849,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_orig_a.input exerc
 +[RANS]
 +IsFlatWallBounded = True
 diff -ruN exercises/exercise-coupling-ff-pm/turbulence/properties.hh exercises/solution/exercise-coupling-ff-pm/turbulence/properties.hh
---- exercises/exercise-coupling-ff-pm/turbulence/properties.hh	2025-02-13 16:25:25.590470647 +0100
-+++ exercises/solution/exercise-coupling-ff-pm/turbulence/properties.hh	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-coupling-ff-pm/turbulence/properties.hh	2025-03-03 15:56:59.905625052 +0100
++++ exercises/solution/exercise-coupling-ff-pm/turbulence/properties.hh	2025-03-03 15:56:59.910624965 +0100
 @@ -8,8 +8,8 @@
   * \file
   * \brief The coupled exercise properties file or the turbulent case.
@@ -1892,7 +1892,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/properties.hh exercises/s
  
  // Set the coupling manager
 diff -ruN exercises/exercise-coupling-ff-pm/turbulence/README.md exercises/solution/exercise-coupling-ff-pm/turbulence/README.md
---- exercises/exercise-coupling-ff-pm/turbulence/README.md	2025-02-27 14:55:51.272368112 +0100
+--- exercises/exercise-coupling-ff-pm/turbulence/README.md	2025-03-03 15:23:33.242567734 +0100
 +++ exercises/solution/exercise-coupling-ff-pm/turbulence/README.md	1970-01-01 01:00:00.000000000 +0100
 @@ -1,126 +0,0 @@
 -## 3. Use a turbulence model in the free flow domain
diff --git a/.patches/exercise-dunemodule/exercise-dunemodule.patch b/.patches/exercise-dunemodule/exercise-dunemodule.patch
index 381f901fefa706d93c8ce02439e9c8fa56bd227b..8eec6797ee89a93ce9b900b03e678bbf404033db 100644
--- a/.patches/exercise-dunemodule/exercise-dunemodule.patch
+++ b/.patches/exercise-dunemodule/exercise-dunemodule.patch
@@ -1,5 +1,5 @@
 diff -ruN exercises/exercise-dunemodule/README.md exercises/solution/exercise-dunemodule/README.md
---- exercises/exercise-dunemodule/README.md	2024-07-17 14:00:29.510779420 +0200
+--- exercises/exercise-dunemodule/README.md	2025-03-03 15:23:33.243567711 +0100
 +++ exercises/solution/exercise-dunemodule/README.md	1970-01-01 01:00:00.000000000 +0100
 @@ -1,114 +0,0 @@
 -# Exercise New Dune Module (DuMuX course)
diff --git a/.patches/exercise-fluidsystem/exercise-fluidsystem.patch b/.patches/exercise-fluidsystem/exercise-fluidsystem.patch
index c67d2a76ae134b46c29548f8a3913fab0e0c646a..a5332fd6967d36bfa3fbbd0c3737c823d3cab50d 100644
--- a/.patches/exercise-fluidsystem/exercise-fluidsystem.patch
+++ b/.patches/exercise-fluidsystem/exercise-fluidsystem.patch
@@ -1,6 +1,6 @@
 diff -ruN exercises/exercise-fluidsystem/2p2cproblem.hh exercises/solution/exercise-fluidsystem/2p2cproblem.hh
---- exercises/exercise-fluidsystem/2p2cproblem.hh	2025-02-13 16:25:25.590470647 +0100
-+++ exercises/solution/exercise-fluidsystem/2p2cproblem.hh	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-fluidsystem/2p2cproblem.hh	2025-03-03 15:56:59.905625052 +0100
++++ exercises/solution/exercise-fluidsystem/2p2cproblem.hh	2025-03-03 15:56:59.910624965 +0100
 @@ -12,7 +12,7 @@
  #ifndef DUMUX_EXERCISE_FLUIDSYSTEM_B_PROBLEM_HH
  #define DUMUX_EXERCISE_FLUIDSYSTEM_B_PROBLEM_HH
@@ -11,8 +11,8 @@ diff -ruN exercises/exercise-fluidsystem/2p2cproblem.hh exercises/solution/exerc
  #include <dumux/common/boundarytypes.hh>
  #include <dumux/common/properties.hh>
 diff -ruN exercises/exercise-fluidsystem/2pproperties.hh exercises/solution/exercise-fluidsystem/2pproperties.hh
---- exercises/exercise-fluidsystem/2pproperties.hh	2025-02-13 16:25:25.590470647 +0100
-+++ exercises/solution/exercise-fluidsystem/2pproperties.hh	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-fluidsystem/2pproperties.hh	2025-03-03 15:56:59.905625052 +0100
++++ exercises/solution/exercise-fluidsystem/2pproperties.hh	2025-03-03 15:56:59.910624965 +0100
 @@ -25,15 +25,13 @@
  #include "spatialparams.hh"
  
@@ -52,8 +52,8 @@ diff -ruN exercises/exercise-fluidsystem/2pproperties.hh exercises/solution/exer
  public:
      using type = typename FluidSystems::TwoPImmiscible<Scalar, LiquidWaterPhase, LiquidMyComponentPhase>;
 diff -ruN exercises/exercise-fluidsystem/aparams.input exercises/solution/exercise-fluidsystem/aparams.input
---- exercises/exercise-fluidsystem/aparams.input	2025-02-13 16:25:25.591470635 +0100
-+++ exercises/solution/exercise-fluidsystem/aparams.input	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-fluidsystem/aparams.input	2025-03-03 15:23:33.243567711 +0100
++++ exercises/solution/exercise-fluidsystem/aparams.input	2025-03-03 15:23:33.246567644 +0100
 @@ -3,7 +3,7 @@
  DtInitial = 10 # initial time step size [s]
  
@@ -70,8 +70,8 @@ diff -ruN exercises/exercise-fluidsystem/aparams.input exercises/solution/exerci
 -PlotDensity = false # plot density over pressure for your component
 +PlotDensity = true # plot density over pressure for your component
 diff -ruN exercises/exercise-fluidsystem/bparams.input exercises/solution/exercise-fluidsystem/bparams.input
---- exercises/exercise-fluidsystem/bparams.input	2025-02-13 16:25:25.591470635 +0100
-+++ exercises/solution/exercise-fluidsystem/bparams.input	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-fluidsystem/bparams.input	2025-03-03 15:23:33.243567711 +0100
++++ exercises/solution/exercise-fluidsystem/bparams.input	2025-03-03 15:23:33.246567644 +0100
 @@ -3,7 +3,7 @@
  DtInitial = 10 # initial time step size [s]
  
@@ -82,8 +82,8 @@ diff -ruN exercises/exercise-fluidsystem/bparams.input exercises/solution/exerci
  [SpatialParams]
  BrooksCoreyPcEntry = 5.0e2 # [Pa]
 diff -ruN exercises/exercise-fluidsystem/CMakeLists.txt exercises/solution/exercise-fluidsystem/CMakeLists.txt
---- exercises/exercise-fluidsystem/CMakeLists.txt	2025-02-13 16:25:25.590470647 +0100
-+++ exercises/solution/exercise-fluidsystem/CMakeLists.txt	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-fluidsystem/CMakeLists.txt	2025-03-03 15:56:59.905625052 +0100
++++ exercises/solution/exercise-fluidsystem/CMakeLists.txt	2025-03-03 15:56:59.910624965 +0100
 @@ -3,18 +3,16 @@
  
  # executables for exercise part a & b
@@ -110,8 +110,8 @@ diff -ruN exercises/exercise-fluidsystem/CMakeLists.txt exercises/solution/exerc
 -# add a symlink for the grids folder
 -dune_symlink_to_source_files(FILES grids)
 diff -ruN exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh
---- exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh	2025-02-13 16:25:25.591470635 +0100
-+++ exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh	2025-03-03 15:56:59.906625035 +0100
++++ exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh	2025-03-03 15:56:59.910624965 +0100
 @@ -38,7 +38,7 @@
      static std::string name()
      { return "MyCompressibleComponent"; }
@@ -173,8 +173,8 @@ diff -ruN exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh e
  };
  
 diff -ruN exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh
---- exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh	2025-02-13 16:25:25.591470635 +0100
-+++ exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh	2025-03-03 15:56:59.906625035 +0100
++++ exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh	2025-03-03 15:56:59.910624965 +0100
 @@ -48,10 +48,7 @@
       */
      static Scalar molarMass()
@@ -213,7 +213,7 @@ diff -ruN exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh
  
 diff -ruN exercises/exercise-fluidsystem/components/plotdensityfunction.py exercises/solution/exercise-fluidsystem/components/plotdensityfunction.py
 --- exercises/exercise-fluidsystem/components/plotdensityfunction.py	1970-01-01 01:00:00.000000000 +0100
-+++ exercises/solution/exercise-fluidsystem/components/plotdensityfunction.py	2025-02-13 16:25:25.633470167 +0100
++++ exercises/solution/exercise-fluidsystem/components/plotdensityfunction.py	2025-03-03 15:56:59.910624965 +0100
 @@ -0,0 +1,22 @@
 +#!usr/bin/env python
 +# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
@@ -238,8 +238,8 @@ diff -ruN exercises/exercise-fluidsystem/components/plotdensityfunction.py exerc
 +plt.semilogx(p, r)
 +plt.show()
 diff -ruN exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh
---- exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh	2025-02-13 16:25:25.591470635 +0100
-+++ exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh	2025-03-03 15:56:59.906625035 +0100
++++ exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh	2025-03-03 15:56:59.910624965 +0100
 @@ -20,10 +20,10 @@
  #include <dumux/material/fluidsystems/base.hh>
  
@@ -276,8 +276,8 @@ diff -ruN exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent
          else
          {
 diff -ruN exercises/exercise-fluidsystem/main.cc exercises/solution/exercise-fluidsystem/main.cc
---- exercises/exercise-fluidsystem/main.cc	2025-02-13 16:25:25.591470635 +0100
-+++ exercises/solution/exercise-fluidsystem/main.cc	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-fluidsystem/main.cc	2025-03-03 15:56:59.906625035 +0100
++++ exercises/solution/exercise-fluidsystem/main.cc	2025-03-03 15:56:59.910624965 +0100
 @@ -36,7 +36,7 @@
  int main(int argc, char** argv)
  {
@@ -303,7 +303,7 @@ diff -ruN exercises/exercise-fluidsystem/main.cc exercises/solution/exercise-flu
      using IOFields = GetPropType<TypeTag, Properties::IOFields>;
      VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
 diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-fluidsystem/README.md
---- exercises/exercise-fluidsystem/README.md	2025-02-27 14:59:08.389857909 +0100
+--- exercises/exercise-fluidsystem/README.md	2025-03-03 15:23:33.243567711 +0100
 +++ exercises/solution/exercise-fluidsystem/README.md	1970-01-01 01:00:00.000000000 +0100
 @@ -1,265 +0,0 @@
 -# Exercise Fluidsystem (DuMuX Course)
@@ -572,8 +572,8 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f
 -./exercise_fluidsystem_b bparams.input
 -```
 diff -ruN exercises/exercise-fluidsystem/spatialparams.hh exercises/solution/exercise-fluidsystem/spatialparams.hh
---- exercises/exercise-fluidsystem/spatialparams.hh	2025-02-13 16:25:25.591470635 +0100
-+++ exercises/solution/exercise-fluidsystem/spatialparams.hh	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-fluidsystem/spatialparams.hh	2025-03-03 15:56:59.906625035 +0100
++++ exercises/solution/exercise-fluidsystem/spatialparams.hh	2025-03-03 15:56:59.910624965 +0100
 @@ -113,13 +113,17 @@
      template<class FluidSystem>
      int wettingPhaseAtPos(const GlobalPosition& globalPos) const
diff --git a/.patches/exercise-fractures/exercise-fractures.patch b/.patches/exercise-fractures/exercise-fractures.patch
index e80c28798424c10dfe05b1076b9dd138dc7437cd..0f749527475318b1ab4a3e7b6928f3696cf7189f 100644
--- a/.patches/exercise-fractures/exercise-fractures.patch
+++ b/.patches/exercise-fractures/exercise-fractures.patch
@@ -1,6 +1,6 @@
 diff -ruN exercises/exercise-fractures/CMakeLists.txt exercises/solution/exercise-fractures/CMakeLists.txt
---- exercises/exercise-fractures/CMakeLists.txt	2025-02-13 16:25:25.591470635 +0100
-+++ exercises/solution/exercise-fractures/CMakeLists.txt	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-fractures/CMakeLists.txt	2025-03-03 15:56:59.906625035 +0100
++++ exercises/solution/exercise-fractures/CMakeLists.txt	2025-03-03 15:56:59.910624965 +0100
 @@ -1,9 +1,26 @@
  # SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
  # SPDX-License-Identifier: GPL-3.0-or-later
@@ -32,7 +32,7 @@ diff -ruN exercises/exercise-fractures/CMakeLists.txt exercises/solution/exercis
  add_input_file_links()
 diff -ruN exercises/exercise-fractures/exercise_fractures_solution_a.input exercises/solution/exercise-fractures/exercise_fractures_solution_a.input
 --- exercises/exercise-fractures/exercise_fractures_solution_a.input	1970-01-01 01:00:00.000000000 +0100
-+++ exercises/solution/exercise-fractures/exercise_fractures_solution_a.input	2025-02-13 16:25:25.633470167 +0100
++++ exercises/solution/exercise-fractures/exercise_fractures_solution_a.input	2024-07-11 13:35:11.680138513 +0200
 @@ -0,0 +1,41 @@
 +[TimeLoop]
 +TEnd = 30000 # [s]
@@ -77,7 +77,7 @@ diff -ruN exercises/exercise-fractures/exercise_fractures_solution_a.input exerc
 +SpatialParams.Barrier.Swr = 0.0
 diff -ruN exercises/exercise-fractures/exercise_fractures_solution_b.input exercises/solution/exercise-fractures/exercise_fractures_solution_b.input
 --- exercises/exercise-fractures/exercise_fractures_solution_b.input	1970-01-01 01:00:00.000000000 +0100
-+++ exercises/solution/exercise-fractures/exercise_fractures_solution_b.input	2025-02-13 16:25:25.633470167 +0100
++++ exercises/solution/exercise-fractures/exercise_fractures_solution_b.input	2024-07-11 13:35:11.680138513 +0200
 @@ -0,0 +1,41 @@
 +[TimeLoop]
 +TEnd = 30000 # [s]
@@ -122,7 +122,7 @@ diff -ruN exercises/exercise-fractures/exercise_fractures_solution_b.input exerc
 +SpatialParams.Barrier.Swr = 0.0
 diff -ruN exercises/exercise-fractures/exercise_fractures_solution_c.input exercises/solution/exercise-fractures/exercise_fractures_solution_c.input
 --- exercises/exercise-fractures/exercise_fractures_solution_c.input	1970-01-01 01:00:00.000000000 +0100
-+++ exercises/solution/exercise-fractures/exercise_fractures_solution_c.input	2025-02-13 16:25:25.633470167 +0100
++++ exercises/solution/exercise-fractures/exercise_fractures_solution_c.input	2024-07-11 13:35:11.680138513 +0200
 @@ -0,0 +1,41 @@
 +[TimeLoop]
 +TEnd = 30000 # [s]
@@ -166,8 +166,8 @@ diff -ruN exercises/exercise-fractures/exercise_fractures_solution_c.input exerc
 +SpatialParams.Barrier.Snr = 0.0
 +SpatialParams.Barrier.Swr = 0.0
 diff -ruN exercises/exercise-fractures/fractureproblem.hh exercises/solution/exercise-fractures/fractureproblem.hh
---- exercises/exercise-fractures/fractureproblem.hh	2025-02-13 16:25:25.592470624 +0100
-+++ exercises/solution/exercise-fractures/fractureproblem.hh	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-fractures/fractureproblem.hh	2025-03-03 15:56:59.906625035 +0100
++++ exercises/solution/exercise-fractures/fractureproblem.hh	2025-03-03 15:56:59.910624965 +0100
 @@ -59,6 +59,10 @@
                         std::shared_ptr<typename ParentType::SpatialParams> spatialParams,
                         const std::string& paramGroup)
@@ -199,8 +199,8 @@ diff -ruN exercises/exercise-fractures/fractureproblem.hh exercises/solution/exe
          return values;
      }
 diff -ruN exercises/exercise-fractures/fracturespatialparams.hh exercises/solution/exercise-fractures/fracturespatialparams.hh
---- exercises/exercise-fractures/fracturespatialparams.hh	2025-02-13 16:25:25.592470624 +0100
-+++ exercises/solution/exercise-fractures/fracturespatialparams.hh	2025-02-13 16:25:25.633470167 +0100
+--- exercises/exercise-fractures/fracturespatialparams.hh	2025-03-03 15:56:59.906625035 +0100
++++ exercises/solution/exercise-fractures/fracturespatialparams.hh	2025-03-03 15:56:59.910624965 +0100
 @@ -41,6 +41,7 @@
      using Element = typename GridView::template Codim<0>::Entity;
      using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
@@ -322,8 +322,8 @@ diff -ruN exercises/exercise-fractures/fracturespatialparams.hh exercises/soluti
  
  } // end namespace Dumux
 diff -ruN exercises/exercise-fractures/main.cc exercises/solution/exercise-fractures/main.cc
---- exercises/exercise-fractures/main.cc	2025-02-13 16:25:25.593470613 +0100
-+++ exercises/solution/exercise-fractures/main.cc	2025-02-13 16:25:25.634470156 +0100
+--- exercises/exercise-fractures/main.cc	2025-03-03 15:56:59.906625035 +0100
++++ exercises/solution/exercise-fractures/main.cc	2025-03-03 15:56:59.910624965 +0100
 @@ -245,4 +245,5 @@
      Parameters::print();
  
@@ -331,8 +331,8 @@ diff -ruN exercises/exercise-fractures/main.cc exercises/solution/exercise-fract
 +
  }// end main
 diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exercise-fractures/matrixproblem.hh
---- exercises/exercise-fractures/matrixproblem.hh	2025-02-13 16:25:25.594470602 +0100
-+++ exercises/solution/exercise-fractures/matrixproblem.hh	2025-02-13 16:25:25.634470156 +0100
+--- exercises/exercise-fractures/matrixproblem.hh	2025-03-03 15:56:59.907625017 +0100
++++ exercises/solution/exercise-fractures/matrixproblem.hh	2025-03-03 15:56:59.911624948 +0100
 @@ -65,11 +65,18 @@
      : ParentType(gridGeometry, spatialParams, paramGroup)
      , boundaryOverPressure_(getParamFromGroup<Scalar>(paramGroup, "Problem.BoundaryOverPressure"))
@@ -456,8 +456,8 @@ diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exerc
  
  } // end namespace Dumux
 diff -ruN exercises/exercise-fractures/matrixspatialparams.hh exercises/solution/exercise-fractures/matrixspatialparams.hh
---- exercises/exercise-fractures/matrixspatialparams.hh	2025-02-13 16:25:25.594470602 +0100
-+++ exercises/solution/exercise-fractures/matrixspatialparams.hh	2025-02-13 16:25:25.634470156 +0100
+--- exercises/exercise-fractures/matrixspatialparams.hh	2025-03-03 15:56:59.907625017 +0100
++++ exercises/solution/exercise-fractures/matrixspatialparams.hh	2025-03-03 15:56:59.911624948 +0100
 @@ -40,6 +40,7 @@
      using Element = typename GridView::template Codim<0>::Entity;
      using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
@@ -467,8 +467,8 @@ diff -ruN exercises/exercise-fractures/matrixspatialparams.hh exercises/solution
  
  public:
 diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise-fractures/params.input
---- exercises/exercise-fractures/params.input	2025-02-13 16:25:25.594470602 +0100
-+++ exercises/solution/exercise-fractures/params.input	2025-02-13 16:25:25.634470156 +0100
+--- exercises/exercise-fractures/params.input	2024-07-11 13:35:11.652137556 +0200
++++ exercises/solution/exercise-fractures/params.input	2024-07-11 13:35:11.680138513 +0200
 @@ -5,6 +5,9 @@
  
  [Problem]
@@ -510,8 +510,8 @@ diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise-
 +SpatialParams.Swr = 0.0
 +SpatialParams.SwrBarrier = 0.0
 diff -ruN exercises/exercise-fractures/properties.hh exercises/solution/exercise-fractures/properties.hh
---- exercises/exercise-fractures/properties.hh	2025-02-13 16:25:25.594470602 +0100
-+++ exercises/solution/exercise-fractures/properties.hh	2025-02-13 16:25:25.634470156 +0100
+--- exercises/exercise-fractures/properties.hh	2025-03-03 15:56:59.907625017 +0100
++++ exercises/solution/exercise-fractures/properties.hh	2025-03-03 15:56:59.911624948 +0100
 @@ -45,6 +45,7 @@
  // with tpfa.
  #include <dumux/multidomain/facet/cellcentered/tpfa/properties.hh>
@@ -530,7 +530,7 @@ diff -ruN exercises/exercise-fractures/properties.hh exercises/solution/exercise
  struct Grid<TypeTag, TTag::MatrixProblem> { using type = Dune::ALUGrid<2, 2, Dune::simplex, Dune::conforming>; };
  template<class TypeTag>
 diff -ruN exercises/exercise-fractures/README.md exercises/solution/exercise-fractures/README.md
---- exercises/exercise-fractures/README.md	2025-02-27 15:00:36.080609527 +0100
+--- exercises/exercise-fractures/README.md	2025-03-03 15:23:33.244567689 +0100
 +++ exercises/solution/exercise-fractures/README.md	1970-01-01 01:00:00.000000000 +0100
 @@ -1,216 +0,0 @@
 -# Exercise Discrete Fractures (DuMuX Course)
diff --git a/.patches/exercise-grids/exercise-grids.patch b/.patches/exercise-grids/exercise-grids.patch
index 18a57aa57dfb0752bf50daeecc76416694088540..cb984ad72d9741fec619f586e75846902eb19b8d 100644
--- a/.patches/exercise-grids/exercise-grids.patch
+++ b/.patches/exercise-grids/exercise-grids.patch
@@ -1,6 +1,6 @@
 diff -ruN exercises/exercise-grids/CMakeLists.txt exercises/solution/exercise-grids/CMakeLists.txt
---- exercises/exercise-grids/CMakeLists.txt	2024-07-17 13:58:18.212850366 +0200
-+++ exercises/solution/exercise-grids/CMakeLists.txt	2024-07-17 13:58:18.220850484 +0200
+--- exercises/exercise-grids/CMakeLists.txt	2025-03-03 15:56:59.907625017 +0100
++++ exercises/solution/exercise-grids/CMakeLists.txt	2025-03-03 15:56:59.911624948 +0100
 @@ -2,7 +2,7 @@
  # SPDX-License-Identifier: GPL-3.0-or-later
  
@@ -11,7 +11,7 @@ diff -ruN exercises/exercise-grids/CMakeLists.txt exercises/solution/exercise-gr
  
  # add a symlink for each input file
 diff -ruN exercises/exercise-grids/grids/grid_structured.dgf exercises/solution/exercise-grids/grids/grid_structured.dgf
---- exercises/exercise-grids/grids/grid_structured.dgf	2023-10-13 18:08:54.718521039 +0200
+--- exercises/exercise-grids/grids/grid_structured.dgf	2024-07-11 13:35:11.652137556 +0200
 +++ exercises/solution/exercise-grids/grids/grid_structured.dgf	1970-01-01 01:00:00.000000000 +0100
 @@ -1,6 +0,0 @@
 -DGF
@@ -21,7 +21,7 @@ diff -ruN exercises/exercise-grids/grids/grid_structured.dgf exercises/solution/
 -30 20   % cells in x and y direction
 -#
 diff -ruN exercises/exercise-grids/grids/grid_structured.geo exercises/solution/exercise-grids/grids/grid_structured.geo
---- exercises/exercise-grids/grids/grid_structured.geo	2023-10-13 18:08:54.718521039 +0200
+--- exercises/exercise-grids/grids/grid_structured.geo	2024-07-11 13:35:11.652137556 +0200
 +++ exercises/solution/exercise-grids/grids/grid_structured.geo	1970-01-01 01:00:00.000000000 +0100
 @@ -1,30 +0,0 @@
 -X = 60;
@@ -55,8 +55,8 @@ diff -ruN exercises/exercise-grids/grids/grid_structured.geo exercises/solution/
 -Transfinite Volume "*";
 -
 diff -ruN exercises/exercise-grids/main.cc exercises/solution/exercise-grids/main.cc
---- exercises/exercise-grids/main.cc	2024-07-17 13:58:18.212850366 +0200
-+++ exercises/solution/exercise-grids/main.cc	2024-07-17 13:58:18.220850484 +0200
+--- exercises/exercise-grids/main.cc	2025-03-03 15:56:59.907625017 +0100
++++ exercises/solution/exercise-grids/main.cc	2025-03-03 15:56:59.911624948 +0100
 @@ -6,7 +6,7 @@
  //
  /*!
@@ -67,8 +67,8 @@ diff -ruN exercises/exercise-grids/main.cc exercises/solution/exercise-grids/mai
  #include <config.h>
  
 diff -ruN exercises/exercise-grids/params.input exercises/solution/exercise-grids/params.input
---- exercises/exercise-grids/params.input	2024-07-17 14:09:52.163005898 +0200
-+++ exercises/solution/exercise-grids/params.input	2024-07-17 14:10:01.563142989 +0200
+--- exercises/exercise-grids/params.input	2025-03-03 15:23:33.244567689 +0100
++++ exercises/solution/exercise-grids/params.input	2024-07-11 13:35:11.680138513 +0200
 @@ -3,13 +3,34 @@
  TEnd = 3.154e9 # in seconds, i.e ten years
  
@@ -110,8 +110,8 @@ diff -ruN exercises/exercise-grids/params.input exercises/solution/exercise-grid
  [Problem]
  Name = grid_exercise
 diff -ruN exercises/exercise-grids/properties.hh exercises/solution/exercise-grids/properties.hh
---- exercises/exercise-grids/properties.hh	2024-07-17 13:58:18.212850366 +0200
-+++ exercises/solution/exercise-grids/properties.hh	2024-07-17 13:58:18.220850484 +0200
+--- exercises/exercise-grids/properties.hh	2025-03-03 15:56:59.907625017 +0100
++++ exercises/solution/exercise-grids/properties.hh	2025-03-03 15:56:59.911624948 +0100
 @@ -5,9 +5,9 @@
  // SPDX-License-Identifier: GPL-3.0-or-later
  //
@@ -163,7 +163,7 @@ diff -ruN exercises/exercise-grids/properties.hh exercises/solution/exercise-gri
  // Set the problem property
  template<class TypeTag>
 diff -ruN exercises/exercise-grids/README.md exercises/solution/exercise-grids/README.md
---- exercises/exercise-grids/README.md	2024-07-17 10:58:43.901583076 +0200
+--- exercises/exercise-grids/README.md	2025-03-03 15:23:33.244567689 +0100
 +++ exercises/solution/exercise-grids/README.md	1970-01-01 01:00:00.000000000 +0100
 @@ -1,159 +0,0 @@
 -# Exercise Grids (DuMuX course)
diff --git a/.patches/exercise-mainfile/exercise-mainfile.patch b/.patches/exercise-mainfile/exercise-mainfile.patch
index cd4d20891df1eb639a484b55d1808e7f91e65ed7..ba2b5024d8b9eb256f1851c17a35371214aefc92 100644
--- a/.patches/exercise-mainfile/exercise-mainfile.patch
+++ b/.patches/exercise-mainfile/exercise-mainfile.patch
@@ -1,6 +1,6 @@
 diff -ruN exercises/exercise-mainfile/CMakeLists.txt exercises/solution/exercise-mainfile/CMakeLists.txt
---- exercises/exercise-mainfile/CMakeLists.txt	2025-02-13 16:25:25.596470580 +0100
-+++ exercises/solution/exercise-mainfile/CMakeLists.txt	2025-02-13 16:25:25.635470145 +0100
+--- exercises/exercise-mainfile/CMakeLists.txt	2025-03-03 15:56:59.907625017 +0100
++++ exercises/solution/exercise-mainfile/CMakeLists.txt	2025-03-03 15:56:59.911624948 +0100
 @@ -2,14 +2,9 @@
  # SPDX-License-Identifier: GPL-3.0-or-later
  
@@ -22,7 +22,7 @@ diff -ruN exercises/exercise-mainfile/CMakeLists.txt exercises/solution/exercise
 +add_input_file_links()
 \ No newline at end of file
 diff -ruN exercises/exercise-mainfile/exercise1pamain.cc exercises/solution/exercise-mainfile/exercise1pamain.cc
---- exercises/exercise-mainfile/exercise1pamain.cc	2025-02-13 16:25:25.596470580 +0100
+--- exercises/exercise-mainfile/exercise1pamain.cc	2025-03-03 15:56:59.907625017 +0100
 +++ exercises/solution/exercise-mainfile/exercise1pamain.cc	1970-01-01 01:00:00.000000000 +0100
 @@ -1,130 +0,0 @@
 -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
@@ -157,7 +157,7 @@ diff -ruN exercises/exercise-mainfile/exercise1pamain.cc exercises/solution/exer
 -}// end main
 diff -ruN exercises/exercise-mainfile/exercise1pa_solution_main.cc exercises/solution/exercise-mainfile/exercise1pa_solution_main.cc
 --- exercises/exercise-mainfile/exercise1pa_solution_main.cc	1970-01-01 01:00:00.000000000 +0100
-+++ exercises/solution/exercise-mainfile/exercise1pa_solution_main.cc	2025-02-13 16:25:25.635470145 +0100
++++ exercises/solution/exercise-mainfile/exercise1pa_solution_main.cc	2025-03-03 15:56:59.911624948 +0100
 @@ -0,0 +1,130 @@
 +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
 +// vi: set et ts=4 sw=4 sts=4:
@@ -290,7 +290,7 @@ diff -ruN exercises/exercise-mainfile/exercise1pa_solution_main.cc exercises/sol
 +
 +}// end main
 diff -ruN exercises/exercise-mainfile/exercise1pbmain.cc exercises/solution/exercise-mainfile/exercise1pbmain.cc
---- exercises/exercise-mainfile/exercise1pbmain.cc	2025-02-13 16:25:25.596470580 +0100
+--- exercises/exercise-mainfile/exercise1pbmain.cc	2025-03-03 15:56:59.907625017 +0100
 +++ exercises/solution/exercise-mainfile/exercise1pbmain.cc	1970-01-01 01:00:00.000000000 +0100
 @@ -1,120 +0,0 @@
 -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
@@ -414,7 +414,7 @@ diff -ruN exercises/exercise-mainfile/exercise1pbmain.cc exercises/solution/exer
 -
 -}// end main
 diff -ruN exercises/exercise-mainfile/exercise1pcmain.cc exercises/solution/exercise-mainfile/exercise1pcmain.cc
---- exercises/exercise-mainfile/exercise1pcmain.cc	2025-02-13 16:25:25.596470580 +0100
+--- exercises/exercise-mainfile/exercise1pcmain.cc	2025-03-03 15:56:59.908625000 +0100
 +++ exercises/solution/exercise-mainfile/exercise1pcmain.cc	1970-01-01 01:00:00.000000000 +0100
 @@ -1,146 +0,0 @@
 -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
@@ -564,7 +564,7 @@ diff -ruN exercises/exercise-mainfile/exercise1pcmain.cc exercises/solution/exer
 -
 -}// end main
 diff -ruN exercises/exercise-mainfile/exercise_mainfile_a.input exercises/solution/exercise-mainfile/exercise_mainfile_a.input
---- exercises/exercise-mainfile/exercise_mainfile_a.input	2025-02-13 16:25:25.596470580 +0100
+--- exercises/exercise-mainfile/exercise_mainfile_a.input	2024-07-11 13:35:11.652137556 +0200
 +++ exercises/solution/exercise-mainfile/exercise_mainfile_a.input	1970-01-01 01:00:00.000000000 +0100
 @@ -1,18 +0,0 @@
 -[Grid]
@@ -587,7 +587,7 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_a.input exercises/soluti
 -BaseEpsilon = 1e-10
 diff -ruN exercises/exercise-mainfile/exercise_mainfile_a_solution.input exercises/solution/exercise-mainfile/exercise_mainfile_a_solution.input
 --- exercises/exercise-mainfile/exercise_mainfile_a_solution.input	1970-01-01 01:00:00.000000000 +0100
-+++ exercises/solution/exercise-mainfile/exercise_mainfile_a_solution.input	2025-02-13 16:25:25.635470145 +0100
++++ exercises/solution/exercise-mainfile/exercise_mainfile_a_solution.input	2025-03-03 15:23:33.247567621 +0100
 @@ -0,0 +1,18 @@
 +[Grid]
 +LowerLeft = 0 0
@@ -608,7 +608,7 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_a_solution.input exercis
 +PriVarMagnitude = 1e5
 +BaseEpsilon = 1e-10
 diff -ruN exercises/exercise-mainfile/exercise_mainfile_b.input exercises/solution/exercise-mainfile/exercise_mainfile_b.input
---- exercises/exercise-mainfile/exercise_mainfile_b.input	2025-02-13 16:25:25.596470580 +0100
+--- exercises/exercise-mainfile/exercise_mainfile_b.input	2024-07-11 13:35:11.652137556 +0200
 +++ exercises/solution/exercise-mainfile/exercise_mainfile_b.input	1970-01-01 01:00:00.000000000 +0100
 @@ -1,17 +0,0 @@
 -[Grid]
@@ -629,7 +629,7 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_b.input exercises/soluti
 -[Assembly.NumericDifference]
 -PriVarMagnitude = 1e5
 diff -ruN exercises/exercise-mainfile/exercise_mainfile_c.input exercises/solution/exercise-mainfile/exercise_mainfile_c.input
---- exercises/exercise-mainfile/exercise_mainfile_c.input	2025-02-13 16:25:25.597470568 +0100
+--- exercises/exercise-mainfile/exercise_mainfile_c.input	2025-03-03 15:23:33.245567666 +0100
 +++ exercises/solution/exercise-mainfile/exercise_mainfile_c.input	1970-01-01 01:00:00.000000000 +0100
 @@ -1,21 +0,0 @@
 -[TimeLoop]
@@ -654,8 +654,8 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_c.input exercises/soluti
 -[Assembly.NumericDifference]
 -PriVarMagnitude = 1e5
 diff -ruN exercises/exercise-mainfile/properties.hh exercises/solution/exercise-mainfile/properties.hh
---- exercises/exercise-mainfile/properties.hh	2025-02-13 16:25:25.597470568 +0100
-+++ exercises/solution/exercise-mainfile/properties.hh	2025-02-13 16:25:25.635470145 +0100
+--- exercises/exercise-mainfile/properties.hh	2025-03-03 15:56:59.908625000 +0100
++++ exercises/solution/exercise-mainfile/properties.hh	2025-03-03 15:56:59.911624948 +0100
 @@ -25,8 +25,8 @@
  
  #include <dumux/porousmediumflow/1p/model.hh>
@@ -679,7 +679,7 @@ diff -ruN exercises/exercise-mainfile/properties.hh exercises/solution/exercise-
  
  // the fluid system for compressible tests
 diff -ruN exercises/exercise-mainfile/README.md exercises/solution/exercise-mainfile/README.md
---- exercises/exercise-mainfile/README.md	2025-02-27 14:57:11.700495280 +0100
+--- exercises/exercise-mainfile/README.md	2025-03-03 15:23:33.245567666 +0100
 +++ exercises/solution/exercise-mainfile/README.md	1970-01-01 01:00:00.000000000 +0100
 @@ -1,196 +0,0 @@
 -# Exercise Mainfiles (DuMuX course)
diff --git a/.patches/exercise-model/exercise-model.patch b/.patches/exercise-model/exercise-model.patch
index 9eebf0a99c4af5d342330422d12801a161a339eb..792a8525b9596240f164ba8485c8a3c582726c27 100644
--- a/.patches/exercise-model/exercise-model.patch
+++ b/.patches/exercise-model/exercise-model.patch
@@ -1,6 +1,6 @@
 diff -ruN exercises/exercise-model/CMakeLists.txt exercises/solution/exercise-model/CMakeLists.txt
---- exercises/exercise-model/CMakeLists.txt	2025-02-13 16:25:25.597470568 +0100
-+++ exercises/solution/exercise-model/CMakeLists.txt	2025-02-13 16:25:25.635470145 +0100
+--- exercises/exercise-model/CMakeLists.txt	2025-03-03 15:56:59.908625000 +0100
++++ exercises/solution/exercise-model/CMakeLists.txt	2025-03-03 15:56:59.911624948 +0100
 @@ -3,5 +3,5 @@
  
  dune_symlink_to_source_files(FILES images params.input)
@@ -9,8 +9,8 @@ diff -ruN exercises/exercise-model/CMakeLists.txt exercises/solution/exercise-mo
 +dumux_add_test(NAME exercise_nonlineardiffusion_sol
                 SOURCES main.cc)
 diff -ruN exercises/exercise-model/main.cc exercises/solution/exercise-model/main.cc
---- exercises/exercise-model/main.cc	2025-02-13 16:25:25.598470557 +0100
-+++ exercises/solution/exercise-model/main.cc	2025-02-13 16:25:25.635470145 +0100
+--- exercises/exercise-model/main.cc	2025-03-03 15:56:59.908625000 +0100
++++ exercises/solution/exercise-model/main.cc	2025-03-03 15:56:59.911624948 +0100
 @@ -29,6 +29,8 @@
  #include <dumux/nonlinear/newtonsolver.hh>
  #include <dumux/assembly/fvassembler.hh>
@@ -148,7 +148,7 @@ diff -ruN exercises/exercise-model/main.cc exercises/solution/exercise-model/mai
  }// end main
 diff -ruN exercises/exercise-model/model.hh exercises/solution/exercise-model/model.hh
 --- exercises/exercise-model/model.hh	1970-01-01 01:00:00.000000000 +0100
-+++ exercises/solution/exercise-model/model.hh	2025-02-13 16:25:25.635470145 +0100
++++ exercises/solution/exercise-model/model.hh	2025-03-03 15:56:59.911624948 +0100
 @@ -0,0 +1,210 @@
 +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
 +// vi: set et ts=4 sw=4 sts=4:
@@ -361,7 +361,7 @@ diff -ruN exercises/exercise-model/model.hh exercises/solution/exercise-model/mo
 +
 +#endif
 diff -ruN exercises/exercise-model/README.md exercises/solution/exercise-model/README.md
---- exercises/exercise-model/README.md	2025-02-27 14:59:31.698729569 +0100
+--- exercises/exercise-model/README.md	2025-03-03 15:23:33.245567666 +0100
 +++ exercises/solution/exercise-model/README.md	1970-01-01 01:00:00.000000000 +0100
 @@ -1,195 +0,0 @@
 -# Exercise Model (DuMuX course)
diff --git a/.patches/exercise-properties/exercise-properties.patch b/.patches/exercise-properties/exercise-properties.patch
index d181a5253928601f05773c8d0e02f2f964f9e3b5..8a5abd192080fbc11e6ed1065b95642b78d0b596 100644
--- a/.patches/exercise-properties/exercise-properties.patch
+++ b/.patches/exercise-properties/exercise-properties.patch
@@ -1,6 +1,6 @@
 diff -ruN exercises/exercise-properties/CMakeLists.txt exercises/solution/exercise-properties/CMakeLists.txt
---- exercises/exercise-properties/CMakeLists.txt	2024-07-17 11:27:28.798347462 +0200
-+++ exercises/solution/exercise-properties/CMakeLists.txt	2024-07-17 11:27:28.802347549 +0200
+--- exercises/exercise-properties/CMakeLists.txt	2025-03-03 15:56:59.908625000 +0100
++++ exercises/solution/exercise-properties/CMakeLists.txt	2025-03-03 15:56:59.911624948 +0100
 @@ -1,8 +1,8 @@
  # SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
  # SPDX-License-Identifier: GPL-3.0-or-later
@@ -13,8 +13,8 @@ diff -ruN exercises/exercise-properties/CMakeLists.txt exercises/solution/exerci
  
  # add a symlink for each input file
 diff -ruN exercises/exercise-properties/mylocalresidual.hh exercises/solution/exercise-properties/mylocalresidual.hh
---- exercises/exercise-properties/mylocalresidual.hh	2024-07-17 11:27:28.878349199 +0200
-+++ exercises/solution/exercise-properties/mylocalresidual.hh	2024-07-17 11:27:28.886349373 +0200
+--- exercises/exercise-properties/mylocalresidual.hh	2025-03-03 17:31:36.070153804 +0100
++++ exercises/solution/exercise-properties/mylocalresidual.hh	2025-03-03 17:31:30.340377693 +0100
 @@ -59,8 +59,6 @@
       * \note The volVars can be different to allow computing
       *       the implicit euler time derivative here
@@ -51,8 +51,8 @@ diff -ruN exercises/exercise-properties/mylocalresidual.hh exercises/solution/ex
              auto eqIdx = conti0EqIdx + phaseIdx;
              flux[eqIdx] = fluxVars.advectiveFlux(phaseIdx, upwindTerm);
 diff -ruN exercises/exercise-properties/problem.hh exercises/solution/exercise-properties/problem.hh
---- exercises/exercise-properties/problem.hh	2024-07-17 11:27:28.878349199 +0200
-+++ exercises/solution/exercise-properties/problem.hh	2024-07-17 11:27:28.886349373 +0200
+--- exercises/exercise-properties/problem.hh	2025-03-03 15:56:59.908625000 +0100
++++ exercises/solution/exercise-properties/problem.hh	2025-03-03 15:56:59.911624948 +0100
 @@ -11,6 +11,7 @@
  #ifndef DUMUX_INCOMPRESSIBLE_TWOP_TEST_PROBLEM_HH
  #define DUMUX_INCOMPRESSIBLE_TWOP_TEST_PROBLEM_HH
@@ -77,8 +77,8 @@ diff -ruN exercises/exercise-properties/problem.hh exercises/solution/exercise-p
          return values;
      }
 diff -ruN exercises/exercise-properties/properties.hh exercises/solution/exercise-properties/properties.hh
---- exercises/exercise-properties/properties.hh	2024-07-17 11:27:28.878349199 +0200
-+++ exercises/solution/exercise-properties/properties.hh	2024-07-17 11:27:28.886349373 +0200
+--- exercises/exercise-properties/properties.hh	2025-03-03 15:56:59.908625000 +0100
++++ exercises/solution/exercise-properties/properties.hh	2025-03-03 15:56:59.911624948 +0100
 @@ -27,9 +27,7 @@
  
  #include "spatialparams.hh"
@@ -103,7 +103,7 @@ diff -ruN exercises/exercise-properties/properties.hh exercises/solution/exercis
  // Set the fluid system
  template<class TypeTag>
 diff -ruN exercises/exercise-properties/README.md exercises/solution/exercise-properties/README.md
---- exercises/exercise-properties/README.md	2023-10-13 18:08:54.718521039 +0200
+--- exercises/exercise-properties/README.md	2024-07-11 13:35:11.652137556 +0200
 +++ exercises/solution/exercise-properties/README.md	1970-01-01 01:00:00.000000000 +0100
 @@ -1,75 +0,0 @@
 -# Exercise Properties (DuMuX course)
diff --git a/.patches/exercise-runtimeparams/exercise-runtimeparams.patch b/.patches/exercise-runtimeparams/exercise-runtimeparams.patch
index 4de557eb95d314a762991ab043c2542256516e34..4d90d58b681cb171c9c6142a4591c7e1626318d9 100644
--- a/.patches/exercise-runtimeparams/exercise-runtimeparams.patch
+++ b/.patches/exercise-runtimeparams/exercise-runtimeparams.patch
@@ -1,6 +1,6 @@
 diff -ruN exercises/exercise-runtimeparams/CMakeLists.txt exercises/solution/exercise-runtimeparams/CMakeLists.txt
---- exercises/exercise-runtimeparams/CMakeLists.txt	2024-07-17 13:58:18.212850366 +0200
-+++ exercises/solution/exercise-runtimeparams/CMakeLists.txt	2024-07-17 13:58:18.220850484 +0200
+--- exercises/exercise-runtimeparams/CMakeLists.txt	2025-03-03 15:56:59.908625000 +0100
++++ exercises/solution/exercise-runtimeparams/CMakeLists.txt	2025-03-03 15:56:59.911624948 +0100
 @@ -2,7 +2,7 @@
  # SPDX-License-Identifier: GPL-3.0-or-later
  
@@ -11,8 +11,8 @@ diff -ruN exercises/exercise-runtimeparams/CMakeLists.txt exercises/solution/exe
  
  # add a symlink for each input file
 diff -ruN exercises/exercise-runtimeparams/params.input exercises/solution/exercise-runtimeparams/params.input
---- exercises/exercise-runtimeparams/params.input	2024-07-17 14:07:04.624561096 +0200
-+++ exercises/solution/exercise-runtimeparams/params.input	2024-07-17 14:06:46.236292578 +0200
+--- exercises/exercise-runtimeparams/params.input	2024-07-11 13:35:11.652137556 +0200
++++ exercises/solution/exercise-runtimeparams/params.input	2025-03-03 15:23:33.247567621 +0100
 @@ -12,11 +12,12 @@
  AquiferDepth = 2700.0 # m
  InjectionDuration = 2.628e6 # in seconds, i.e. one month
@@ -28,8 +28,8 @@ diff -ruN exercises/exercise-runtimeparams/params.input exercises/solution/exerc
  Aquitard.Swr = 0.2
  Aquitard.Snr = 0.0
 diff -ruN exercises/exercise-runtimeparams/problem.hh exercises/solution/exercise-runtimeparams/problem.hh
---- exercises/exercise-runtimeparams/problem.hh	2024-07-17 13:58:18.212850366 +0200
-+++ exercises/solution/exercise-runtimeparams/problem.hh	2024-07-17 13:58:18.220850484 +0200
+--- exercises/exercise-runtimeparams/problem.hh	2025-03-03 15:56:59.909624983 +0100
++++ exercises/solution/exercise-runtimeparams/problem.hh	2025-03-03 15:56:59.911624948 +0100
 @@ -81,12 +81,16 @@
          injectionDuration_ = getParamFromGroup<Scalar>("Problem","InjectionDuration");
          // TODO: dumux-course-task 2
@@ -67,8 +67,8 @@ diff -ruN exercises/exercise-runtimeparams/problem.hh exercises/solution/exercis
  };
  
 diff -ruN exercises/exercise-runtimeparams/properties.hh exercises/solution/exercise-runtimeparams/properties.hh
---- exercises/exercise-runtimeparams/properties.hh	2024-07-17 13:58:18.212850366 +0200
-+++ exercises/solution/exercise-runtimeparams/properties.hh	2024-07-17 13:58:18.220850484 +0200
+--- exercises/exercise-runtimeparams/properties.hh	2025-03-03 15:56:59.909624983 +0100
++++ exercises/solution/exercise-runtimeparams/properties.hh	2025-03-03 15:56:59.911624948 +0100
 @@ -58,6 +58,6 @@
                                        FluidSystems::H2ON2DefaultPolicy</*fastButSimplifiedRelations=*/ true> >;
  };
@@ -78,7 +78,7 @@ diff -ruN exercises/exercise-runtimeparams/properties.hh exercises/solution/exer
  
  #endif
 diff -ruN exercises/exercise-runtimeparams/README.md exercises/solution/exercise-runtimeparams/README.md
---- exercises/exercise-runtimeparams/README.md	2024-07-17 10:58:43.901583076 +0200
+--- exercises/exercise-runtimeparams/README.md	2025-03-03 15:23:33.245567666 +0100
 +++ exercises/solution/exercise-runtimeparams/README.md	1970-01-01 01:00:00.000000000 +0100
 @@ -1,171 +0,0 @@
 -# Exercise Runtime Parameters (DuMuX course)
@@ -253,8 +253,8 @@ diff -ruN exercises/exercise-runtimeparams/README.md exercises/solution/exercise
 -
 -* > __Task 4__: Using one of the bool `hasParam` functions, place an output in the problem file to alert the user where the parameter value comes from.
 diff -ruN exercises/exercise-runtimeparams/spatialparams.hh exercises/solution/exercise-runtimeparams/spatialparams.hh
---- exercises/exercise-runtimeparams/spatialparams.hh	2024-07-17 13:58:18.212850366 +0200
-+++ exercises/solution/exercise-runtimeparams/spatialparams.hh	2024-07-17 13:58:18.220850484 +0200
+--- exercises/exercise-runtimeparams/spatialparams.hh	2025-03-03 15:56:59.909624983 +0100
++++ exercises/solution/exercise-runtimeparams/spatialparams.hh	2025-03-03 15:56:59.911624948 +0100
 @@ -12,8 +12,8 @@
   *        fully implicit model.
   */
diff --git a/exercises/exercise-properties/mylocalresidual.hh b/exercises/exercise-properties/mylocalresidual.hh
index 427a17fafffaa0f3e190b78ad9a1c264f958ac8e..7a309a9a763f8d9d9bd20d1855730bdaa4ec12d4 100644
--- a/exercises/exercise-properties/mylocalresidual.hh
+++ b/exercises/exercise-properties/mylocalresidual.hh
@@ -75,7 +75,7 @@ public:
                              * volVars.saturation(phaseIdx);
 
             //! The energy storage in the fluid phase with index phaseIdx
-            EnergyLocalResidual::fluidPhaseStorage(storage, scv, volVars, phaseIdx);
+            EnergyLocalResidual::fluidPhaseStorage(storage, problem, scv, volVars, phaseIdx);
         }
 
         //! The energy storage in the solid matrix
diff --git a/exercises/solution/exercise-properties/mylocalresidual.hh b/exercises/solution/exercise-properties/mylocalresidual.hh
index f7309208b809e046baa200b3c83205078baa07ce..937dd5e8aa80a414ad58b6f6efc07bb1a8622a71 100644
--- a/exercises/solution/exercise-properties/mylocalresidual.hh
+++ b/exercises/solution/exercise-properties/mylocalresidual.hh
@@ -72,7 +72,7 @@ public:
                              * volVars.saturation(phaseIdx);
 
             //! The energy storage in the fluid phase with index phaseIdx
-            EnergyLocalResidual::fluidPhaseStorage(storage, scv, volVars, phaseIdx);
+            EnergyLocalResidual::fluidPhaseStorage(storage, problem, scv, volVars, phaseIdx);
         }
 
         //! The energy storage in the solid matrix