Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • dumux-repositories/dumux-course
1 result
Show changes
Commits on Source (5)
Showing
with 203 additions and 203 deletions
diff -ruN exercises/exercise-basic/2pmain.cc exercises/solution/exercise-basic/2pmain.cc
--- exercises/exercise-basic/2pmain.cc 2024-07-17 13:58:18.204850249 +0200
--- 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 2024-07-17 13:58:18.212850366 +0200
+++ 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 2024-07-17 14:10:30.239561158 +0200
+++ exercises/solution/exercise-basic/CMakeLists.txt 2024-07-17 14:11:44.100637927 +0200
--- 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 2024-07-17 13:58:18.208850308 +0200
+++ exercises/solution/exercise-basic/injection2pniproblem.hh 2024-07-17 13:58:18.212850366 +0200
--- 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 2024-07-17 13:58:18.208850308 +0200
--- 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 2023-10-13 18:08:54.710521000 +0200
+++ exercises/solution/exercise-basic/params.input 2024-07-17 10:58:43.905583103 +0200
--- 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 2024-07-17 13:58:18.208850308 +0200
--- 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 2024-07-17 13:58:18.208850308 +0200
+++ exercises/solution/exercise-basic/properties2pni.hh 2024-07-17 13:58:18.212850366 +0200
--- 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 2024-07-17 14:11:07.348102188 +0200
--- 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)
......@@ -726,7 +726,7 @@ diff -ruN exercises/exercise-basic/README.md exercises/solution/exercise-basic/R
-N$_2$ is injected in an aquifer previously saturated with water with an injection rate of 0.0001 kg/(s*m$^2$).
-The aquifer is situated 2700 m below sea level and the domain size is 60 m x 40 m. It consists of two layers, a moderately permeable one ($\Omega_1$) and a lower permeable one ($\Omega_2$).
-
-<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise1_setup.png" width="1000">
-<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/slides/img/exercise_basic_setup.png" width="1000">
-
-## Preparing the exercise
-
......@@ -810,6 +810,6 @@ diff -ruN exercises/exercise-basic/README.md exercises/solution/exercise-basic/R
-
- __Boundary conditions:__ Dirichlet boundary conditions at the left boundary with the same temperature gradient as in the initial conditions. For the Neumann conditions, assign an energy flux at the injection point of N$_2$ and no-flow conditions for the energy balance to the rest of the boundaries.
-
-<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise1_nonisothermal.png" width="800">
-<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/slides/img/exercise_basic_nonisothermal.png" width="800">
-
-The non-isothermal model requires additional parameters like the thermal conductivity of the solid component. They are already implemented and set in `params.input`, you just need to _uncomment_ them.
diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/solution/exercise-biomineralization/biominproblem.hh
--- exercises/exercise-biomineralization/biominproblem.hh 2024-07-17 11:27:28.870349025 +0200
+++ exercises/solution/exercise-biomineralization/biominproblem.hh 2024-07-17 11:27:28.878349199 +0200
--- 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 2024-07-17 11:27:28.870349025 +0200
+++ exercises/solution/exercise-biomineralization/biominspatialparams.hh 2024-07-17 11:27:28.878349199 +0200
--- 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 2024-07-17 11:27:28.870349025 +0200
+++ exercises/solution/exercise-biomineralization/chemistry/simplebiominreactions.hh 2024-07-17 11:27:28.878349199 +0200
--- 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 2024-07-17 11:27:28.798347462 +0200
+++ exercises/solution/exercise-biomineralization/CMakeLists.txt 2024-07-17 11:27:28.798347462 +0200
--- 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 2024-07-17 11:27:28.870349025 +0200
+++ exercises/solution/exercise-biomineralization/components/biofilm.hh 2024-07-17 11:27:28.878349199 +0200
--- 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 2024-07-17 11:27:28.870349025 +0200
+++ exercises/solution/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh 2024-07-17 11:27:28.878349199 +0200
--- 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 2024-07-17 11:27:28.870349025 +0200
+++ exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh 2024-07-17 11:27:28.878349199 +0200
--- 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 2024-07-17 10:58:43.893583024 +0200
+++ exercises/solution/exercise-biomineralization/params.input 2024-07-17 10:58:43.905583103 +0200
--- 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 2024-07-17 11:27:28.870349025 +0200
+++ exercises/solution/exercise-biomineralization/properties.hh 2024-07-17 11:27:28.878349199 +0200
--- 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 2024-07-17 10:58:43.889582997 +0200
--- 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)
......@@ -283,7 +283,7 @@ diff -ruN exercises/exercise-biomineralization/README.md exercises/solution/exer
-
-Disclaimer: Please note, that this is not a realistic scenario. No one would think of storing gaseous CO<sub>2</sub> in this subcritical setting.
-
-![](../extradoc/exercisebiomin_setup.png)
-![](../../slides/img/exercise_biomin_setup.png)
-
-
-## Preparing the exercise
......@@ -417,7 +417,7 @@ diff -ruN exercises/exercise-biomineralization/README.md exercises/solution/exer
-
- The result for the porosity should look like this:
-
- ![](../extradoc/exercisebiomin_porosityFinal.png)
- ![](../../slides/img/exercise_biomin_porosity_final.png)
-
-### 5. CO<sub>2</sub> injection to test aquitard integrity
-
......@@ -432,7 +432,7 @@ diff -ruN exercises/exercise-biomineralization/README.md exercises/solution/exer
-```
-The result for the biomineralization process during the CO<sub>2</sub> injection should look like this:
-
-![](../extradoc/exercisebiomin_injectionFinal.png)
-![](../../slides/img/exercise_biomin_injection_final.png)
-
-### 6. Change the permeability law
-
......@@ -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 2024-07-17 11:27:28.870349025 +0200
+++ exercises/solution/exercise-biomineralization/solidsystems/biominsolidphase.hh 2024-07-17 11:27:28.878349199 +0200
--- 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 -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 -ruN exercises/exercise-fluidsystem/2p2cproblem.hh exercises/solution/exercise-fluidsystem/2p2cproblem.hh
--- exercises/exercise-fluidsystem/2p2cproblem.hh 2024-07-18 13:47:42.192717667 +0200
+++ exercises/solution/exercise-fluidsystem/2p2cproblem.hh 2024-07-18 13:47:42.192717667 +0200
--- 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 2024-07-18 14:25:25.701687082 +0200
+++ exercises/solution/exercise-fluidsystem/2pproperties.hh 2024-07-18 13:47:42.196717705 +0200
--- 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 2024-07-18 13:47:42.192717667 +0200
+++ exercises/solution/exercise-fluidsystem/aparams.input 2024-07-18 13:47:42.196717705 +0200
--- 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 2024-07-18 13:47:42.192717667 +0200
+++ exercises/solution/exercise-fluidsystem/bparams.input 2024-07-18 13:47:42.196717705 +0200
--- 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 2024-07-17 14:23:53.007057346 +0200
+++ exercises/solution/exercise-fluidsystem/CMakeLists.txt 2024-07-17 14:23:53.011057409 +0200
--- 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 2024-07-18 13:47:42.192717667 +0200
+++ exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh 2024-07-18 13:47:42.196717705 +0200
--- 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 2024-07-18 13:47:42.192717667 +0200
+++ exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh 2024-07-18 13:47:42.196717705 +0200
--- 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 2024-07-18 13:47:42.196717705 +0200
+++ 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 2024-07-18 13:47:42.192717667 +0200
+++ exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh 2024-07-18 13:47:42.196717705 +0200
--- 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 2024-07-18 13:47:42.192717667 +0200
+++ exercises/solution/exercise-fluidsystem/main.cc 2024-07-18 13:47:42.196717705 +0200
--- 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 2024-07-18 14:23:13.194674429 +0200
--- 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)
......@@ -314,7 +314,7 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f
-
-The domain has a size of 60 m x 60 m and contains two low-permeable lenses. Initially, the domain is fully water saturated and the fictitious component is injected through the middle portion of the upper boundary by means of a Neumann boundary condition. The remaining parts of the upper and the entire lower boundary are Neumann no-flow while on the two lateral sides Dirichlet boundary conditions are applied (hydrostatic conditions for the pressure and zero saturation).
-
-<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise-fluidsystem_setup.png" width="700">
-<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/slides/img/exercise_fluidsystem_setup.png" width="700">
-
-
-## Task 1: Getting familiar with the code
......@@ -460,7 +460,7 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f
-
-The saturation distribution of the nonwetting phase, here S$`_{napl}`$ (the phase consisting of our fictitious incompressible component), at the final simulation time should look like this:
-
-![](../extradoc/exercise-fluidsystem_a_solution.png)
-![](../../slides/img/exercise_fluidsystem_a_solution.png)
-
-### Task 2.2: Compressible component
-
......@@ -470,12 +470,12 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f
-
-where $`p`$ is the pressure and $`\rho_{min} = 1440.0 \, kg/m^3`$, $`\rho_{max} = 1480.0 \, kg/m^3`$ and $`k = 5 \cdot 10^{-7} `$. Also, make sure the header is included in the `2pproperties.hh` file by uncommenting the corresponding line. Furthermore, the new component has to be set as a liquid phase in the fluid system. To do so, search for `TODO: dumux-course-task 2.2`. Comment out the corresponding line and uncomment the other. The density distribution of this phase (rho$`_{napl}`$) at the final simulation time should look like this:
-
-![](../extradoc/exercise-fluidsystem_a_solution2.png)
-![](../../slides/img/exercise_fluidsystem_a_solution2.png)
-
-You can plot the density of the phase consisting of your compressible component by setting `PlotDensity` in `aparams.input` to `true` and starting the simulation again.
-Compare the gnuplot output to the following plot of the density function from above:
-
-<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise-fluidsystem_a_densityfunction.png" width="500">
-<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/slides/img/exercise_fluidsystem_a_densityfunction.png" width="500">
-
-## Task 3: Implement a new fluid system - Part b
-
......@@ -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 2024-07-18 13:47:42.192717667 +0200
+++ exercises/solution/exercise-fluidsystem/spatialparams.hh 2024-07-18 13:47:42.196717705 +0200
--- 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 -ruN exercises/exercise-fractures/CMakeLists.txt exercises/solution/exercise-fractures/CMakeLists.txt
--- exercises/exercise-fractures/CMakeLists.txt 2024-07-17 11:27:28.798347462 +0200
+++ exercises/solution/exercise-fractures/CMakeLists.txt 2024-07-17 11:27:28.798347462 +0200
--- 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 2020-11-12 12:07:04.129814352 +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 2020-11-12 12:07:04.129814352 +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 2020-11-12 12:07:04.129814352 +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 2024-07-17 11:27:28.874349112 +0200
+++ exercises/solution/exercise-fractures/fractureproblem.hh 2024-07-17 11:27:28.882349286 +0200
--- 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 2024-07-17 11:27:28.874349112 +0200
+++ exercises/solution/exercise-fractures/fracturespatialparams.hh 2024-07-17 11:27:28.886349373 +0200
--- 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 2024-07-17 11:27:28.874349112 +0200
+++ exercises/solution/exercise-fractures/main.cc 2024-07-17 11:27:28.886349373 +0200
--- 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 2024-07-17 11:27:28.874349112 +0200
+++ exercises/solution/exercise-fractures/matrixproblem.hh 2024-07-17 11:27:28.886349373 +0200
--- 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 2024-07-17 11:27:28.874349112 +0200
+++ exercises/solution/exercise-fractures/matrixspatialparams.hh 2024-07-17 11:27:28.886349373 +0200
--- 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 2023-10-13 18:08:54.714521020 +0200
+++ exercises/solution/exercise-fractures/params.input 2020-05-08 12:16:18.919855703 +0200
--- 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 2024-07-17 11:27:28.874349112 +0200
+++ exercises/solution/exercise-fractures/properties.hh 2024-07-17 11:27:28.886349373 +0200
--- 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 2023-10-13 18:08:54.714521020 +0200
--- 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)
......@@ -541,7 +541,7 @@ diff -ruN exercises/exercise-fractures/README.md exercises/solution/exercise-fra
-
-We consider a domain of 100 x 100 m with a set of ten fractures. This geometry has been taken from [Flemisch et al. (2018)](https://www.sciencedirect.com/science/article/pii/S0309170817300143), but was slightly modified to better fit to the purposes of this exercise. Apart from one fracture extending up to the top boundary, all other fractures are immersed, meaning that the fracture tips lie within the domain (see image below).
-
-![](../extradoc/exercisefractures_setup.png)
-![](../../slides/img/exercise_fractures_setup.png)
-
-In the initial setup of this exercise, we want to consider buoyancy-driven upwards migration of nitrogen (gas) in a fully water-saturated medium. Thus, as initial conditions we use hydrostatic pressure conditions and a zero nitrogen saturation. On the boundaries we apply Neumann no-flow boundary conditions on the left and right sides, while using Dirichlet boundary conditions on the top and the bottom of the domain. We set the initial conditions as boundary conditions on the Dirichlet segments, except for the middle part of the lower boundary ($`y = 0 \wedge x > 25 \wedge x < 75`$), where we set a non-zero nitrogen saturation (settable via the input file). Through this segment of the lower boundary, nitrogen can intrude the domain and flow upwards driven by buoyancy.
-
......@@ -650,7 +650,7 @@ diff -ruN exercises/exercise-fractures/README.md exercises/solution/exercise-fra
-
-Take a look at the results by opening the files `matrix.pvd` and `fractures.pvd` with _Paraview_. In order to increase the visibility of the fracture solution, you might want to apply the tube filter to it (e.g. with a tube radius of 0.2). The result should look like this:
-
-![](../extradoc/exercisefractures_initsol.png)
-![](../../slides/img/exercise_fractures_initsol.png)
-
-You can see how the fractures act as preferential flowpaths in the upwards movement of nitrogen due to their higher permeabilities. Additionally, you can observe comparatively high nitrogen saturations in the fracture tips as a result of the fractures acting as capillary traps due to the lower capillary pressures inside them. Consider turning them into capillary barriers, e.g. by setting __SpatialParams.VGAlpha = 1e-5__ in the __Fracture__ group in the input file (`params.input`). The nitrogen saturations in the fractures (especially in the fracture tips) should now be lower than in the surrounding matrix. Do not forget to reset __SpatialParams.VGAlpha = 1e-1__ in the input file after you are done.
-
......@@ -660,7 +660,7 @@ diff -ruN exercises/exercise-fractures/README.md exercises/solution/exercise-fra
-
-Furthermore, modify the function `dirichletAtPos(...)` in `matrixproblem.hh` such that an overpressure is added to the initial pressure and a non-zero saturation is applied on the right Dirichlet segment ($`x = 100 \wedge y > 75`$). For this you can use the private variables `boundaryOverPressure_` and `boundarySaturation_` which are stored in the matrix problem and are read from the input file. Compile and execute the program again. The resulting water pressure distribution should look like this:
-
-![](../extradoc/exercisefractures_a.png)
-![](../../slides/img/exercise_fractures_a.png)
-
-## Task B: Turn the fractures into barriers
-
......@@ -704,7 +704,7 @@ diff -ruN exercises/exercise-fractures/README.md exercises/solution/exercise-fra
-
-This means we have to use Neumann-type interior boundary conditions here. Change this accordingly, compile and rerun the exercise again. You should now be able to see jumps in pressure in the matrix domain with an especially prominent one across the first vertical fracture (see image below).
-
-![](../extradoc/exercisefractures_b.png)
-![](../../slides/img/exercise_fractures_b.png)
-
-### Task C: Define both open fractures and barriers
-
......
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 -ruN exercises/exercise-mainfile/CMakeLists.txt exercises/solution/exercise-mainfile/CMakeLists.txt
--- exercises/exercise-mainfile/CMakeLists.txt 2024-07-17 14:07:42.177109339 +0200
+++ exercises/solution/exercise-mainfile/CMakeLists.txt 2024-07-17 13:58:18.220850484 +0200
--- 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 2024-07-17 13:58:18.212850366 +0200
--- 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 2024-07-17 13:58:18.220850484 +0200
+++ 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 2024-07-17 13:58:18.212850366 +0200
--- 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 2024-07-17 13:58:18.212850366 +0200
--- 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 2023-10-13 18:08:54.718521039 +0200
--- 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 2024-07-17 14:08:11.237533494 +0200
+++ 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 2023-10-13 18:08:54.718521039 +0200
--- 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 2024-07-17 14:08:27.885776444 +0200
--- 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 2024-07-17 13:58:18.212850366 +0200
+++ exercises/solution/exercise-mainfile/properties.hh 2024-07-17 13:58:18.220850484 +0200
--- 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 2024-07-17 11:27:28.682344944 +0200
--- 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)
......@@ -699,7 +699,7 @@ diff -ruN exercises/exercise-mainfile/README.md exercises/solution/exercise-main
-
-The problem set-up for all three examples is always the same: It is a two dimensional problem and the domain is $1 m$ by $1 m$. It is a heterogeneous set-up with a lens in the middle of the domain which has a lower permeability ($1\cdot 10^{-12} m^2$ compared to $1\cdot 10^{-10} m^2$ in the rest of the domain).
-
-<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise1_1p_setup.png" width="1000">
-<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/slides/img/exercise_mainfile_1p_setup.png" width="1000">
-
-In the beginning, there is a uniform pressure of $1\cdot 10^5 Pa$ in the whole domain. On the top and the bottom border, dirichlet boundary conditions are set with a pressure of $1\cdot 10^5 Pa$ on top and $2 \cdot 10^5 Pa$ on the bottom. At the sides, there is no in- or outflow and there are no source terms.
-
......
diff -ruN exercises/exercise-model/CMakeLists.txt exercises/solution/exercise-model/CMakeLists.txt
--- exercises/exercise-model/CMakeLists.txt 2024-07-17 14:21:07.400210015 +0200
+++ exercises/solution/exercise-model/CMakeLists.txt 2024-07-17 14:21:07.404210034 +0200
--- 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 2024-07-17 14:21:07.400210015 +0200
+++ exercises/solution/exercise-model/main.cc 2024-07-17 14:21:07.404210034 +0200
--- 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 2024-07-18 10:07:49.719993891 +0200
+++ 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 2024-07-18 10:13:40.660815419 +0200
--- 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)
......@@ -509,7 +509,7 @@ diff -ruN exercises/exercise-model/README.md exercises/solution/exercise-model/R
-__The final result should look like this:__
-<figure>
- <center>
- <img src="../extradoc/exercisemodel_mri_denoise.gif" alt="denoising"/>
- <img src="../../slides/img/exercise_model_mri_denoise.gif" alt="denoising"/>
- <figcaption> <b> Fig.1 </b> - Denosing of MRI image using nonlinear diffusion model.</figcaption>
- </center>
-</figure>
......
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 -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.
*/
......
......@@ -5,7 +5,7 @@
N$_2$ is injected in an aquifer previously saturated with water with an injection rate of 0.0001 kg/(s*m$^2$).
The aquifer is situated 2700 m below sea level and the domain size is 60 m x 40 m. It consists of two layers, a moderately permeable one ($\Omega_1$) and a lower permeable one ($\Omega_2$).
<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise1_setup.png" width="1000">
<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/slides/img/exercise_basic_setup.png" width="1000">
## Preparing the exercise
......@@ -89,6 +89,6 @@ $\displaystyle d_\text{aquifer}=2700~\text{m}$. Additionally, add a subdomain (2
__Boundary conditions:__ Dirichlet boundary conditions at the left boundary with the same temperature gradient as in the initial conditions. For the Neumann conditions, assign an energy flux at the injection point of N$_2$ and no-flow conditions for the energy balance to the rest of the boundaries.
<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise1_nonisothermal.png" width="800">
<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/slides/img/exercise_basic_nonisothermal.png" width="800">
The non-isothermal model requires additional parameters like the thermal conductivity of the solid component. They are already implemented and set in `params.input`, you just need to _uncomment_ them.
......@@ -9,7 +9,7 @@ The domain has a size of 20 x 15 m and contains a sealing aquitard in the middle
Disclaimer: Please note, that this is not a realistic scenario. No one would think of storing gaseous CO<sub>2</sub> in this subcritical setting.
![](../extradoc/exercisebiomin_setup.png)
![](../../slides/img/exercise_biomin_setup.png)
## Preparing the exercise
......@@ -143,7 +143,7 @@ make exercise_biomin
The result for the porosity should look like this:
![](../extradoc/exercisebiomin_porosityFinal.png)
![](../../slides/img/exercise_biomin_porosity_final.png)
### 5. CO<sub>2</sub> injection to test aquitard integrity
......@@ -158,7 +158,7 @@ Run two simulations and compare them side by side by creating two input files, o
```
The result for the biomineralization process during the CO<sub>2</sub> injection should look like this:
![](../extradoc/exercisebiomin_injectionFinal.png)
![](../../slides/img/exercise_biomin_injection_final.png)
### 6. Change the permeability law
......
......@@ -3,7 +3,7 @@
In this part of the exercise, a simple coupled system consisting of a one-phase (1p) free flow and a one-phase flow in a porous medium is set up. Both subproblems have no-flow boundaries at the sides.
Currently, a velocity profile is set on the upper free flow boundary, which leads to a vertical flow into the porous medium:
![](../../extradoc/ex_ff-pm-vertical-flow.png)
![](../../../slides/img/exercise_ffpm_vertical_flow.png)
Note that we neglect the influence of gravity and only solve for the stationary problem in this exercise.
......@@ -167,7 +167,7 @@ values.setBeaversJoseph(1 - scvf.directionIndex());
Recompile and rerun to check if the final result looks something like this:
![](../../extradoc/ex_ff-pm-wave-interface.png)
![](../../../slides/img/exercise_ffpm_wave_interface.png)
*Extra Points:*
Rather than enforcing a pressure difference across the domain, an inflow velocity profile could be set.
......
......@@ -77,7 +77,7 @@ In addition to the standard variables and parameters, you can now analyze turbul
In paraview you may compare the magnitude of $`D`$ and $`D_\textrm{t}`$ to see where the transport is affected by turbulence.
The result for the turbulent diffusivity should look like this:
![](../../extradoc/ex_ff-pm-turb_diffusivity.png)
![](../../../slides/img/exercise_ffpm_turb_diffusivity.png)
### Task B: Use symmetry boundary conditions
......
......@@ -6,7 +6,7 @@ The aim of this exercise is to get familiar with the _DuMu<sup>x</sup>_ way of i
The domain has a size of 60 m x 60 m and contains two low-permeable lenses. Initially, the domain is fully water saturated and the fictitious component is injected through the middle portion of the upper boundary by means of a Neumann boundary condition. The remaining parts of the upper and the entire lower boundary are Neumann no-flow while on the two lateral sides Dirichlet boundary conditions are applied (hydrostatic conditions for the pressure and zero saturation).
<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise-fluidsystem_setup.png" width="700">
<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/slides/img/exercise_fluidsystem_setup.png" width="700">
## Task 1: Getting familiar with the code
......@@ -152,7 +152,7 @@ make exercise_fluidsystem_a
The saturation distribution of the nonwetting phase, here S$`_{napl}`$ (the phase consisting of our fictitious incompressible component), at the final simulation time should look like this:
![](../extradoc/exercise-fluidsystem_a_solution.png)
![](../../slides/img/exercise_fluidsystem_a_solution.png)
### Task 2.2: Compressible component
......@@ -162,12 +162,12 @@ $`\displaystyle \rho_{MyComp} = \rho_{min} + \frac{ \rho_{max} - \rho_{min} }{ 1
where $`p`$ is the pressure and $`\rho_{min} = 1440.0 \, kg/m^3`$, $`\rho_{max} = 1480.0 \, kg/m^3`$ and $`k = 5 \cdot 10^{-7} `$. Also, make sure the header is included in the `2pproperties.hh` file by uncommenting the corresponding line. Furthermore, the new component has to be set as a liquid phase in the fluid system. To do so, search for `TODO: dumux-course-task 2.2`. Comment out the corresponding line and uncomment the other. The density distribution of this phase (rho$`_{napl}`$) at the final simulation time should look like this:
![](../extradoc/exercise-fluidsystem_a_solution2.png)
![](../../slides/img/exercise_fluidsystem_a_solution2.png)
You can plot the density of the phase consisting of your compressible component by setting `PlotDensity` in `aparams.input` to `true` and starting the simulation again.
Compare the gnuplot output to the following plot of the density function from above:
<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise-fluidsystem_a_densityfunction.png" width="500">
<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/slides/img/exercise_fluidsystem_a_densityfunction.png" width="500">
## Task 3: Implement a new fluid system - Part b
......
......@@ -6,7 +6,7 @@ In this exercise we are going to use the _DuMuX multidomain_ framework, and in p
We consider a domain of 100 x 100 m with a set of ten fractures. This geometry has been taken from [Flemisch et al. (2018)](https://www.sciencedirect.com/science/article/pii/S0309170817300143), but was slightly modified to better fit to the purposes of this exercise. Apart from one fracture extending up to the top boundary, all other fractures are immersed, meaning that the fracture tips lie within the domain (see image below).
![](../extradoc/exercisefractures_setup.png)
![](../../slides/img/exercise_fractures_setup.png)
In the initial setup of this exercise, we want to consider buoyancy-driven upwards migration of nitrogen (gas) in a fully water-saturated medium. Thus, as initial conditions we use hydrostatic pressure conditions and a zero nitrogen saturation. On the boundaries we apply Neumann no-flow boundary conditions on the left and right sides, while using Dirichlet boundary conditions on the top and the bottom of the domain. We set the initial conditions as boundary conditions on the Dirichlet segments, except for the middle part of the lower boundary ($`y = 0 \wedge x > 25 \wedge x < 75`$), where we set a non-zero nitrogen saturation (settable via the input file). Through this segment of the lower boundary, nitrogen can intrude the domain and flow upwards driven by buoyancy.
......@@ -115,7 +115,7 @@ make exercise_fractures
Take a look at the results by opening the files `matrix.pvd` and `fractures.pvd` with _Paraview_. In order to increase the visibility of the fracture solution, you might want to apply the tube filter to it (e.g. with a tube radius of 0.2). The result should look like this:
![](../extradoc/exercisefractures_initsol.png)
![](../../slides/img/exercise_fractures_initsol.png)
You can see how the fractures act as preferential flowpaths in the upwards movement of nitrogen due to their higher permeabilities. Additionally, you can observe comparatively high nitrogen saturations in the fracture tips as a result of the fractures acting as capillary traps due to the lower capillary pressures inside them. Consider turning them into capillary barriers, e.g. by setting __SpatialParams.VGAlpha = 1e-5__ in the __Fracture__ group in the input file (`params.input`). The nitrogen saturations in the fractures (especially in the fracture tips) should now be lower than in the surrounding matrix. Do not forget to reset __SpatialParams.VGAlpha = 1e-1__ in the input file after you are done.
......@@ -125,7 +125,7 @@ In order for the influence of the fractures to be more visible in the resulting
Furthermore, modify the function `dirichletAtPos(...)` in `matrixproblem.hh` such that an overpressure is added to the initial pressure and a non-zero saturation is applied on the right Dirichlet segment ($`x = 100 \wedge y > 75`$). For this you can use the private variables `boundaryOverPressure_` and `boundarySaturation_` which are stored in the matrix problem and are read from the input file. Compile and execute the program again. The resulting water pressure distribution should look like this:
![](../extradoc/exercisefractures_a.png)
![](../../slides/img/exercise_fractures_a.png)
## Task B: Turn the fractures into barriers
......@@ -169,7 +169,7 @@ To summarize: when using Neumann-type interior boundary conditions, flux continu
This means we have to use Neumann-type interior boundary conditions here. Change this accordingly, compile and rerun the exercise again. You should now be able to see jumps in pressure in the matrix domain with an especially prominent one across the first vertical fracture (see image below).
![](../extradoc/exercisefractures_b.png)
![](../../slides/img/exercise_fractures_b.png)
### Task C: Define both open fractures and barriers
......
......@@ -15,7 +15,7 @@ To summarize, the problems differ in:
The problem set-up for all three examples is always the same: It is a two dimensional problem and the domain is $1 m$ by $1 m$. It is a heterogeneous set-up with a lens in the middle of the domain which has a lower permeability ($1\cdot 10^{-12} m^2$ compared to $1\cdot 10^{-10} m^2$ in the rest of the domain).
<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise1_1p_setup.png" width="1000">
<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/slides/img/exercise_mainfile_1p_setup.png" width="1000">
In the beginning, there is a uniform pressure of $1\cdot 10^5 Pa$ in the whole domain. On the top and the bottom border, dirichlet boundary conditions are set with a pressure of $1\cdot 10^5 Pa$ on top and $2 \cdot 10^5 Pa$ on the bottom. At the sides, there is no in- or outflow and there are no source terms.
......
......@@ -143,7 +143,7 @@ are preserved. The conductance acts as a threshold for the image intensity gradi
__The final result should look like this:__
<figure>
<center>
<img src="../extradoc/exercisemodel_mri_denoise.gif" alt="denoising"/>
<img src="../../slides/img/exercise_model_mri_denoise.gif" alt="denoising"/>
<figcaption> <b> Fig.1 </b> - Denosing of MRI image using nonlinear diffusion model.</figcaption>
</center>
</figure>
......
......@@ -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
......