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 (10)
Showing
with 362 additions and 337 deletions
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
...@@ -50,4 +50,4 @@ then ...@@ -50,4 +50,4 @@ then
done done
fi fi
diff -ruN exercises/$exerciseName/ exercises/solution/$exerciseName > .patches/$exerciseName/$exerciseName.patch diff -ruN exercises/$exerciseName/ exercises/solution/$exerciseName > .patches/$exerciseName/$exerciseName.patch
\ No newline at end of file
...@@ -6,8 +6,7 @@ This README provides instructions on how to handle changing exercises and their ...@@ -6,8 +6,7 @@ This README provides instructions on how to handle changing exercises and their
The Gitlab CI now also includes a check to ensure that the stored patches, located in .patches/, match the current exercises and their respective solutions. Each exercise has one associated patch that maps it to its respective solution. If you change an exercise without updating the patch, the CI will complain that the exercise and solution are out of sync. Keep in mind, that this is only a reminder to update the respective solution once you changed an exercise. Of course, you do not have to adapt the solution if it is not necessary. But in any case, whether changing the exercise, the solution or both, you always need to update the respective patch before pushing the remote repository. The Gitlab CI now also includes a check to ensure that the stored patches, located in .patches/, match the current exercises and their respective solutions. Each exercise has one associated patch that maps it to its respective solution. If you change an exercise without updating the patch, the CI will complain that the exercise and solution are out of sync. Keep in mind, that this is only a reminder to update the respective solution once you changed an exercise. Of course, you do not have to adapt the solution if it is not necessary. But in any case, whether changing the exercise, the solution or both, you always need to update the respective patch before pushing the remote repository.
To this end, there are two possible ways of generating the patch: To this end, you can generate the patches as follows:
1. In the root folder of dumux-course, there is the hidden script `.create_all_patches.sh` (can show it in terminal via `ls -a`). You can simply run `./.create_all_patches.sh` which will create patches for all exercises. However, this might be prone to errors, if you changed other exercises too by accident. In the root folder of dumux-course, there is a hidden script `.create_single_patch.sh` (can show it in terminal via `ls -a`). For this script, you need to provide a specific exercise name for which you want to generate the patch. As an example, for generating the patch for the exercise exercise-basic, you would need to run: `./.create_single_patch.sh -x exercise-basic` in the root folder of dumux-course.
2. In the root folder of dumux-course, there is another hidden script `.create_single_patch.sh` (can show it in terminal via `ls -a`). For this script, you need to provide a specific exercise name for which you want to generate the patch. As an example, for generating the patch for the exercise exercise-basic, you would need to run: `./.create_single_patch.sh -x exercise-basic` in the root folder of dumux-course.
TLDR: Before pushing to the remote repository, always generate a new patch, when changing an exercise and/or a solution by using one of the scripts. TLDR: Before pushing to the remote repository, always generate a new patch, when changing an exercise and/or a solution by using one of the scripts.
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: CC0-1.0 # SPDX-License-Identifier: CC0-1.0
*.pptx filter=lfs diff=lfs merge=lfs -text *.pptx filter=lfs diff=lfs merge=lfs -text
......
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: CC0-1.0 # SPDX-License-Identifier: CC0-1.0
# build system clutter # build system clutter
......
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
stages: stages:
...@@ -63,4 +63,4 @@ pages: ...@@ -63,4 +63,4 @@ pages:
paths: paths:
- public - public
only: only:
- master - master
\ No newline at end of file
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
default: default:
......
#!/bin/bash #!/bin/bash
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
...@@ -23,7 +23,7 @@ do ...@@ -23,7 +23,7 @@ do
then then
echo "The solution for $exerciseName seems to be up to date." echo "The solution for $exerciseName seems to be up to date."
else else
echo "You forgot to update the exercise or the solution for $exerciseName! Please look at the scripts `.create_all_patches.sh` or `.create_single_patch.sh` and their respective instructions to update the patches which map the exercise state to the solution state. These two shell scripts are hidden files located in the root folder of dumux-course." echo "You forgot to update the exercise or the solution for $exerciseName! Please look at the script `.create_single_patch.sh` and its respective instructions to update the patches which map the exercise state to the solution state. This shell script is a hidden file located in the root folder of dumux-course."
exit 1 exit 1
fi fi
done done
diff -ruN exercises/exercise-basic/2pmain.cc exercises/solution/exercise-basic/2pmain.cc diff -ruN exercises/exercise-basic/2pmain.cc exercises/solution/exercise-basic/2pmain.cc
--- exercises/exercise-basic/2pmain.cc 2025-03-03 15:56:59.902625104 +0100 --- exercises/exercise-basic/2pmain.cc 2025-03-07 11:30:34.870192062 +0100
+++ exercises/solution/exercise-basic/2pmain.cc 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-basic/2pmain.cc 1970-01-01 01:00:00.000000000 +0100
@@ -1,145 +0,0 @@ @@ -1,153 +0,0 @@
-// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
-// vi: set et ts=4 sw=4 sts=4: -// vi: set et ts=4 sw=4 sts=4:
-// -//
-// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder -// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
-// SPDX-License-Identifier: GPL-3.0-or-later -// SPDX-License-Identifier: GPL-3.0-or-later
-// -//
-/*! -/*!
...@@ -31,6 +31,10 @@ diff -ruN exercises/exercise-basic/2pmain.cc exercises/solution/exercise-basic/2 ...@@ -31,6 +31,10 @@ diff -ruN exercises/exercise-basic/2pmain.cc exercises/solution/exercise-basic/2
-#include <dumux/io/vtkoutputmodule.hh> -#include <dumux/io/vtkoutputmodule.hh>
-#include <dumux/io/grid/gridmanager_yasp.hh> -#include <dumux/io/grid/gridmanager_yasp.hh>
- -
-/*!
- * TODO: dumux-course-task 3:
- * In 2pnimain.cc include the correct properties headerfile
- */
-// The properties file, where the compile time options are defined -// The properties file, where the compile time options are defined
-#include "properties2p.hh" -#include "properties2p.hh"
- -
...@@ -40,7 +44,11 @@ diff -ruN exercises/exercise-basic/2pmain.cc exercises/solution/exercise-basic/2 ...@@ -40,7 +44,11 @@ diff -ruN exercises/exercise-basic/2pmain.cc exercises/solution/exercise-basic/2
-int main(int argc, char** argv) -int main(int argc, char** argv)
-{ -{
- using namespace Dumux; - using namespace Dumux;
- -
- /*!
- * TODO: dumux-course-task 3:
- * In 2pnimain.cc change the type tag for the new injection problem
- */
- // define the type tag for this problem - // define the type tag for this problem
- using TypeTag = Properties::TTag::Injection2pCC; - using TypeTag = Properties::TTag::Injection2pCC;
- -
...@@ -149,12 +157,12 @@ diff -ruN exercises/exercise-basic/2pmain.cc exercises/solution/exercise-basic/2 ...@@ -149,12 +157,12 @@ diff -ruN exercises/exercise-basic/2pmain.cc exercises/solution/exercise-basic/2
-} // end main -} // end main
diff -ruN exercises/exercise-basic/2pnimain.cc exercises/solution/exercise-basic/2pnimain.cc 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/exercise-basic/2pnimain.cc 1970-01-01 01:00:00.000000000 +0100
+++ exercises/solution/exercise-basic/2pnimain.cc 2025-03-03 15:56:59.909624983 +0100 +++ exercises/solution/exercise-basic/2pnimain.cc 2025-03-07 10:42:02.617882948 +0100
@@ -0,0 +1,138 @@ @@ -0,0 +1,138 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4: +// vi: set et ts=4 sw=4 sts=4:
+// +//
+// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder +// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
+// SPDX-License-Identifier: GPL-3.0-or-later +// SPDX-License-Identifier: GPL-3.0-or-later
+// +//
+/*! +/*!
...@@ -290,17 +298,17 @@ diff -ruN exercises/exercise-basic/2pnimain.cc exercises/solution/exercise-basic ...@@ -290,17 +298,17 @@ diff -ruN exercises/exercise-basic/2pnimain.cc exercises/solution/exercise-basic
+ return 0; + return 0;
+} // end main +} // end main
diff -ruN exercises/exercise-basic/CMakeLists.txt exercises/solution/exercise-basic/CMakeLists.txt diff -ruN exercises/exercise-basic/CMakeLists.txt exercises/solution/exercise-basic/CMakeLists.txt
--- exercises/exercise-basic/CMakeLists.txt 2025-03-03 15:56:59.902625104 +0100 --- exercises/exercise-basic/CMakeLists.txt 2025-03-07 11:30:34.870192062 +0100
+++ exercises/solution/exercise-basic/CMakeLists.txt 2025-03-03 15:56:59.909624983 +0100 +++ exercises/solution/exercise-basic/CMakeLists.txt 2025-03-07 10:42:02.617882948 +0100
@@ -1,12 +1,9 @@ @@ -1,12 +1,9 @@
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
-# the immiscible two-phase simulation program -# the immiscible two-phase simulation program
-dumux_add_test(NAME exercise_basic_2p -dumux_add_test(NAME exercise_basic_2p
- SOURCES 2pmain.cc) - SOURCES 2pmain.cc)
- -
-# here, add the two-phase non-isothermal simulation program -# TODO: dumux-course-task 3: add the two-phase non-isothermal simulation program
- -
+# the two-phase non-isothermal simulation program +# the two-phase non-isothermal simulation program
+dumux_add_test(NAME exercise_basic_2pni_solution +dumux_add_test(NAME exercise_basic_2pni_solution
...@@ -309,8 +317,8 @@ diff -ruN exercises/exercise-basic/CMakeLists.txt exercises/solution/exercise-ba ...@@ -309,8 +317,8 @@ diff -ruN exercises/exercise-basic/CMakeLists.txt exercises/solution/exercise-ba
# add a symlink for each input file # add a symlink for each input file
add_input_file_links() add_input_file_links()
diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/exercise-basic/injection2pniproblem.hh diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/exercise-basic/injection2pniproblem.hh
--- exercises/exercise-basic/injection2pniproblem.hh 2025-03-03 15:56:59.902625104 +0100 --- exercises/exercise-basic/injection2pniproblem.hh 2025-03-07 11:30:34.871192055 +0100
+++ exercises/solution/exercise-basic/injection2pniproblem.hh 2025-03-03 15:56:59.909624983 +0100 +++ exercises/solution/exercise-basic/injection2pniproblem.hh 2025-03-07 10:42:02.617882948 +0100
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
/*! /*!
* \file * \file
...@@ -334,7 +342,7 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex ...@@ -334,7 +342,7 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex
bcTypes.setAllNeumann(); bcTypes.setAllNeumann();
- /*! - /*!
- * TODO:dumux-course-task 4: - * TODO: dumux-course-task 4:
- * Set Dirichlet conditions for the energy equation on the left boundary - * Set Dirichlet conditions for the energy equation on the left boundary
- * and Neumann everywhere else. - * and Neumann everywhere else.
- * Think about: is there anything necessary to do here? - * Think about: is there anything necessary to do here?
...@@ -349,7 +357,7 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex ...@@ -349,7 +357,7 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex
return initialAtPos(globalPos); return initialAtPos(globalPos);
- -
- /*! - /*!
- * TODO:dumux-course-task 4: - * TODO: dumux-course-task 4:
- * Set Dirichlet conditions for the energy equation on the left boundary. - * Set Dirichlet conditions for the energy equation on the left boundary.
- * Think about: is there anything necessary to do here? - * Think about: is there anything necessary to do here?
- */ - */
...@@ -369,7 +377,7 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex ...@@ -369,7 +377,7 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex
values[Indices::conti0EqIdx + FluidSystem::H2OIdx] = 0.0; values[Indices::conti0EqIdx + FluidSystem::H2OIdx] = 0.0;
- /*! - /*!
- * TODO:dumux-course-task 4: - * TODO: dumux-course-task 4:
- * Set Neumann noflow conditions for the energy equation everywhere else except the left boundary. - * Set Neumann noflow conditions for the energy equation everywhere else except the left boundary.
- * Additionally, consider the energy flux at the injection point which is equal to the product of the respective mass flux and the matching enthalpy. Use the function `gasEnthalpy(temperature,pressure)` from the N2 component to access the necessary enthalpy. - * Additionally, consider the energy flux at the injection point which is equal to the product of the respective mass flux and the matching enthalpy. Use the function `gasEnthalpy(temperature,pressure)` from the N2 component to access the necessary enthalpy.
- * hint: use `Indices::energyEqIdx` to access the entry belonging to the energy flux. - * hint: use `Indices::energyEqIdx` to access the entry belonging to the energy flux.
...@@ -387,7 +395,7 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex ...@@ -387,7 +395,7 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex
values[Indices::saturationIdx] = 0.0; values[Indices::saturationIdx] = 0.0;
- /*! - /*!
- * TODO:dumux-course-task 4: - * TODO: dumux-course-task 4:
- * Set a temperature gradient of 0.03 K per m beginning at 283 K here. - * Set a temperature gradient of 0.03 K per m beginning at 283 K here.
- * Hint: you can use aquiferDepth_ and the globalPos similar to the pressure gradient. - * Hint: you can use aquiferDepth_ and the globalPos similar to the pressure gradient.
- * Use globalPos[0] and globalPos[1] to implement the high temperature lens with 380 K - * Use globalPos[0] and globalPos[1] to implement the high temperature lens with 380 K
...@@ -401,13 +409,13 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex ...@@ -401,13 +409,13 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex
} }
diff -ruN exercises/exercise-basic/injection2pproblem.hh exercises/solution/exercise-basic/injection2pproblem.hh diff -ruN exercises/exercise-basic/injection2pproblem.hh exercises/solution/exercise-basic/injection2pproblem.hh
--- exercises/exercise-basic/injection2pproblem.hh 2025-03-03 15:56:59.902625104 +0100 --- exercises/exercise-basic/injection2pproblem.hh 2025-03-07 10:42:02.607883011 +0100
+++ exercises/solution/exercise-basic/injection2pproblem.hh 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-basic/injection2pproblem.hh 1970-01-01 01:00:00.000000000 +0100
@@ -1,211 +0,0 @@ @@ -1,211 +0,0 @@
-// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
-// vi: set et ts=4 sw=4 sts=4: -// vi: set et ts=4 sw=4 sts=4:
-// -//
-// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder -// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
-// SPDX-License-Identifier: GPL-3.0-or-later -// SPDX-License-Identifier: GPL-3.0-or-later
-// -//
-/*! -/*!
...@@ -616,28 +624,30 @@ diff -ruN exercises/exercise-basic/injection2pproblem.hh exercises/solution/exer ...@@ -616,28 +624,30 @@ diff -ruN exercises/exercise-basic/injection2pproblem.hh exercises/solution/exer
- -
-#endif -#endif
diff -ruN exercises/exercise-basic/params.input exercises/solution/exercise-basic/params.input diff -ruN exercises/exercise-basic/params.input exercises/solution/exercise-basic/params.input
--- exercises/exercise-basic/params.input 2024-07-11 13:35:11.644137283 +0200 --- exercises/exercise-basic/params.input 2025-03-07 11:30:34.871192055 +0100
+++ exercises/solution/exercise-basic/params.input 2025-03-03 15:23:33.246567644 +0100 +++ exercises/solution/exercise-basic/params.input 2025-02-26 11:38:46.841816361 +0100
@@ -24,7 +24,7 @@ @@ -23,8 +23,8 @@
Aquifer.Swr = 0.2
Aquifer.Snr = 0.0 Aquifer.Snr = 0.0
# these parameters are only used in the nonisothermal model. Uncomment them for that -# TODO: dumux-course-task 4: these parameters are only used in the nonisothermal model. Uncomment them for that
-#[Component] -#[Component]
-#SolidDensity = 2700 # solid density of granite -#SolidDensity = 2700 # solid density of granite
-#SolidThermalConductivity = 2.8 # solid thermal conducitivity of granite -#SolidThermalConductivity = 2.8 # solid thermal conducitivity of granite
-#SolidHeatCapacity = 790 # solid heat capacity of granite -#SolidHeatCapacity = 790 # solid heat capacity of granite
+# these parameters are only used in the nonisothermal model. Uncomment them for that
+[Component] +[Component]
+SolidDensity = 2700 # solid density of granite +SolidDensity = 2700 # solid density of granite
+SolidThermalConductivity = 2.8 # solid thermal conducitivity of granite +SolidThermalConductivity = 2.8 # solid thermal conducitivity of granite
+SolidHeatCapacity = 790 # solid heat capacity of granite +SolidHeatCapacity = 790 # solid heat capacity of granite
diff -ruN exercises/exercise-basic/properties2p.hh exercises/solution/exercise-basic/properties2p.hh diff -ruN exercises/exercise-basic/properties2p.hh exercises/solution/exercise-basic/properties2p.hh
--- exercises/exercise-basic/properties2p.hh 2025-03-03 15:56:59.902625104 +0100 --- exercises/exercise-basic/properties2p.hh 2025-03-07 10:42:02.608883005 +0100
+++ exercises/solution/exercise-basic/properties2p.hh 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-basic/properties2p.hh 1970-01-01 01:00:00.000000000 +0100
@@ -1,63 +0,0 @@ @@ -1,63 +0,0 @@
-// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
-// vi: set et ts=4 sw=4 sts=4: -// vi: set et ts=4 sw=4 sts=4:
-// -//
-// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder -// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
-// SPDX-License-Identifier: GPL-3.0-or-later -// SPDX-License-Identifier: GPL-3.0-or-later
-// -//
-/*! -/*!
...@@ -698,14 +708,14 @@ diff -ruN exercises/exercise-basic/properties2p.hh exercises/solution/exercise-b ...@@ -698,14 +708,14 @@ diff -ruN exercises/exercise-basic/properties2p.hh exercises/solution/exercise-b
- -
-#endif -#endif
diff -ruN exercises/exercise-basic/properties2pni.hh exercises/solution/exercise-basic/properties2pni.hh diff -ruN exercises/exercise-basic/properties2pni.hh exercises/solution/exercise-basic/properties2pni.hh
--- exercises/exercise-basic/properties2pni.hh 2025-03-03 15:56:59.902625104 +0100 --- exercises/exercise-basic/properties2pni.hh 2025-03-07 11:30:34.871192055 +0100
+++ exercises/solution/exercise-basic/properties2pni.hh 2025-03-03 15:56:59.909624983 +0100 +++ exercises/solution/exercise-basic/properties2pni.hh 2025-03-07 10:42:02.617882948 +0100
@@ -24,13 +24,9 @@ @@ -24,13 +24,9 @@
namespace Dumux::Properties { namespace Dumux::Properties {
- /*! - /*!
-* TODO:dumux-course-task 4 -* TODO: dumux-course-task 4:
-* Inherit from the TwoPNI model instead of TwoP here -* Inherit from the TwoPNI model instead of TwoP here
-*/ -*/
// Create new type tags // Create new type tags
...@@ -716,7 +726,7 @@ diff -ruN exercises/exercise-basic/properties2pni.hh exercises/solution/exercise ...@@ -716,7 +726,7 @@ diff -ruN exercises/exercise-basic/properties2pni.hh exercises/solution/exercise
} // end namespace TTag } // end namespace TTag
diff -ruN exercises/exercise-basic/README.md exercises/solution/exercise-basic/README.md diff -ruN exercises/exercise-basic/README.md exercises/solution/exercise-basic/README.md
--- exercises/exercise-basic/README.md 2025-03-03 15:23:33.239567801 +0100 --- exercises/exercise-basic/README.md 2025-03-07 10:34:20.577090067 +0100
+++ exercises/solution/exercise-basic/README.md 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-basic/README.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,94 +0,0 @@ @@ -1,94 +0,0 @@
-# Exercise Basics (DuMuX course) -# Exercise Basics (DuMuX course)
......
diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/solution/exercise-biomineralization/biominproblem.hh diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/solution/exercise-biomineralization/biominproblem.hh
--- exercises/exercise-biomineralization/biominproblem.hh 2025-03-03 15:56:59.902625104 +0100 --- exercises/exercise-biomineralization/biominproblem.hh 2025-03-07 11:30:34.871192055 +0100
+++ exercises/solution/exercise-biomineralization/biominproblem.hh 2025-03-03 15:56:59.909624983 +0100 +++ exercises/solution/exercise-biomineralization/biominproblem.hh 2025-03-07 11:30:34.877192015 +0100
@@ -19,10 +19,12 @@ @@ -19,10 +19,12 @@
// TODO: dumux-course-task // TODO: dumux-course-task 3:
// include chemistry file here // include chemistry file here
+#include "chemistry/simplebiominreactions.hh" // chemical reactions +#include "chemistry/simplebiominreactions.hh" // chemical reactions
...@@ -16,7 +16,7 @@ diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/soluti ...@@ -16,7 +16,7 @@ diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/soluti
template <class TypeTag> template <class TypeTag>
@@ -53,6 +55,7 @@ @@ -53,6 +55,7 @@
using SubControlVolume = typename FVElementGeometry::SubControlVolume; using SubControlVolume = typename FVElementGeometry::SubControlVolume;
// TODO: dumux-course-task // TODO: dumux-course-task 3:
// set the chemistry TypeTag // set the chemistry TypeTag
+ using Chemistry = typename Dumux::SimpleBiominReactions<NumEqVector, VolumeVariables>; + using Chemistry = typename Dumux::SimpleBiominReactions<NumEqVector, VolumeVariables>;
...@@ -39,7 +39,7 @@ diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/soluti ...@@ -39,7 +39,7 @@ diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/soluti
{ {
@@ -185,6 +188,13 @@ @@ -185,6 +188,13 @@
} }
// TODO: dumux-course-task // TODO: dumux-course-task 5:
// Set CO2 injection below aquitard after the injBioTime // Set CO2 injection below aquitard after the injBioTime
+ if(globalPos[0] < eps_ + if(globalPos[0] < eps_
+ && globalPos[1] > 2.0 + eps_ + && globalPos[1] > 2.0 + eps_
...@@ -53,7 +53,7 @@ diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/soluti ...@@ -53,7 +53,7 @@ diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/soluti
} }
@@ -247,14 +257,15 @@ @@ -247,14 +257,15 @@
// TODO: dumux-course-task // TODO: dumux-course-task 3:
// set Chemistry // set Chemistry
-// Chemistry chemistry; -// Chemistry chemistry;
+ Chemistry chemistry; + Chemistry chemistry;
...@@ -70,11 +70,11 @@ diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/soluti ...@@ -70,11 +70,11 @@ diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/soluti
{ {
return Kxx_; return Kxx_;
diff -ruN exercises/exercise-biomineralization/biominspatialparams.hh exercises/solution/exercise-biomineralization/biominspatialparams.hh diff -ruN exercises/exercise-biomineralization/biominspatialparams.hh exercises/solution/exercise-biomineralization/biominspatialparams.hh
--- exercises/exercise-biomineralization/biominspatialparams.hh 2025-03-03 15:56:59.902625104 +0100 --- exercises/exercise-biomineralization/biominspatialparams.hh 2025-03-07 11:30:34.871192055 +0100
+++ exercises/solution/exercise-biomineralization/biominspatialparams.hh 2025-03-03 15:56:59.909624983 +0100 +++ exercises/solution/exercise-biomineralization/biominspatialparams.hh 2025-03-07 11:30:34.877192015 +0100
@@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
#include <dumux/material/fluidmatrixinteractions/porosityprecipitation.hh> #include <dumux/material/fluidmatrixinteractions/porosityprecipitation.hh>
// TODO: dumux-course-task // TODO: dumux-course-task 6:
// include the new permeability law (power law) instead of Kozeny-Carman // include the new permeability law (power law) instead of Kozeny-Carman
-#include <dumux/material/fluidmatrixinteractions/permeabilitykozenycarman.hh> -#include <dumux/material/fluidmatrixinteractions/permeabilitykozenycarman.hh>
+#include "fluidmatrixinteractions/permeabilitypowerlaw.hh" //the power-law porosity-permeability relation +#include "fluidmatrixinteractions/permeabilitypowerlaw.hh" //the power-law porosity-permeability relation
...@@ -83,7 +83,7 @@ diff -ruN exercises/exercise-biomineralization/biominspatialparams.hh exercises/ ...@@ -83,7 +83,7 @@ diff -ruN exercises/exercise-biomineralization/biominspatialparams.hh exercises/
@@ -273,7 +273,7 @@ @@ -273,7 +273,7 @@
// TODO: dumux-course-task // TODO: dumux-course-task 6:
// define the power law as the permeability law // define the power law as the permeability law
- PermeabilityKozenyCarman<PermeabilityType> permLaw_; - PermeabilityKozenyCarman<PermeabilityType> permLaw_;
+ PermeabilityPowerLaw<PermeabilityType> permLaw_; + PermeabilityPowerLaw<PermeabilityType> permLaw_;
...@@ -91,9 +91,9 @@ diff -ruN exercises/exercise-biomineralization/biominspatialparams.hh exercises/ ...@@ -91,9 +91,9 @@ diff -ruN exercises/exercise-biomineralization/biominspatialparams.hh exercises/
Scalar initialPorosity_; Scalar initialPorosity_;
diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.hh exercises/solution/exercise-biomineralization/chemistry/simplebiominreactions.hh diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.hh exercises/solution/exercise-biomineralization/chemistry/simplebiominreactions.hh
--- exercises/exercise-biomineralization/chemistry/simplebiominreactions.hh 2025-03-03 15:56:59.902625104 +0100 --- exercises/exercise-biomineralization/chemistry/simplebiominreactions.hh 2025-03-07 11:30:34.872192048 +0100
+++ exercises/solution/exercise-biomineralization/chemistry/simplebiominreactions.hh 2025-03-03 15:56:59.909624983 +0100 +++ exercises/solution/exercise-biomineralization/chemistry/simplebiominreactions.hh 2025-03-07 11:30:34.877192015 +0100
@@ -73,24 +73,26 @@ @@ -73,24 +73,27 @@
// define and compute some parameters for convenience: // define and compute some parameters for convenience:
const Scalar xwCa = volVars.moleFraction(liquidPhaseIdx,CaIdx); const Scalar xwCa = volVars.moleFraction(liquidPhaseIdx,CaIdx);
const Scalar densityBiofilm = volVars.solidComponentDensity(BiofilmPhaseIdx); const Scalar densityBiofilm = volVars.solidComponentDensity(BiofilmPhaseIdx);
...@@ -102,7 +102,7 @@ diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.h ...@@ -102,7 +102,7 @@ diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.h
const Scalar volFracBiofilm = max(volVars.solidVolumeFraction(BiofilmPhaseIdx),0.0); const Scalar volFracBiofilm = max(volVars.solidVolumeFraction(BiofilmPhaseIdx),0.0);
+ +
// TODO: dumux-course-task // TODO: dumux-course-task 2:
// implement mass of biofilm // implement mass of biofilm
- const Scalar massBiofilm = 0.0; - const Scalar massBiofilm = 0.0;
+ const Scalar massBiofilm = densityBiofilm * volFracBiofilm; + const Scalar massBiofilm = densityBiofilm * volFracBiofilm;
...@@ -111,7 +111,7 @@ diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.h ...@@ -111,7 +111,7 @@ diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.h
xwCa, xwCa,
volVars.moleFraction(liquidPhaseIdx,CO2Idx)); // [mol_urea/kg_H2O] volVars.moleFraction(liquidPhaseIdx,CO2Idx)); // [mol_urea/kg_H2O]
// TODO: dumux-course-task // TODO: dumux-course-task 2:
- // compute rate of ureolysis by implementing Zub and rurea - // compute rate of ureolysis by implementing Zub and rurea
- const Scalar Zub = 0.0; - const Scalar Zub = 0.0;
- const Scalar rurea = 0.0; - const Scalar rurea = 0.0;
...@@ -119,14 +119,14 @@ diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.h ...@@ -119,14 +119,14 @@ diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.h
+ const Scalar Zub = kub_ * massBiofilm; // [kg urease/m³] + const Scalar Zub = kub_ * massBiofilm; // [kg urease/m³]
+ const Scalar rurea = kUrease_ * Zub * molalityUrea / (kUrea_ + molalityUrea); // [mol/m³s] + const Scalar rurea = kUrease_ * Zub * molalityUrea / (kUrea_ + molalityUrea); // [mol/m³s]
- // TODO: dumux-course-task // TODO: dumux-course-task 2:
// compute/set dissolution and precipitation rate of calcite // compute/set dissolution and precipitation rate of calcite
- const Scalar rprec = 0.0; - const Scalar rprec = 0.0;
+ const Scalar rprec = rurea; + const Scalar rprec = rurea;
// set source terms // set source terms
// TODO: dumux-course-task // TODO: dumux-course-task 2:
@@ -98,11 +100,11 @@ @@ -98,11 +101,11 @@
// Hint: Ammonium occurs in the reaction equation, but is not accounted for in this simplified setup. // Hint: Ammonium occurs in the reaction equation, but is not accounted for in this simplified setup.
// Additionally, the consumption of water by the reaction may be neglected, as water is present in excess. // Additionally, the consumption of water by the reaction may be neglected, as water is present in excess.
q[H2OIdx] += 0.0; q[H2OIdx] += 0.0;
...@@ -143,8 +143,8 @@ diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.h ...@@ -143,8 +143,8 @@ diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.h
private: private:
diff -ruN exercises/exercise-biomineralization/CMakeLists.txt exercises/solution/exercise-biomineralization/CMakeLists.txt diff -ruN exercises/exercise-biomineralization/CMakeLists.txt exercises/solution/exercise-biomineralization/CMakeLists.txt
--- exercises/exercise-biomineralization/CMakeLists.txt 2025-03-03 15:56:59.902625104 +0100 --- exercises/exercise-biomineralization/CMakeLists.txt 2025-03-07 10:42:02.608883005 +0100
+++ exercises/solution/exercise-biomineralization/CMakeLists.txt 2025-03-03 15:56:59.909624983 +0100 +++ exercises/solution/exercise-biomineralization/CMakeLists.txt 2025-03-07 10:42:02.617882948 +0100
@@ -2,9 +2,9 @@ @@ -2,9 +2,9 @@
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
...@@ -158,8 +158,8 @@ diff -ruN exercises/exercise-biomineralization/CMakeLists.txt exercises/solution ...@@ -158,8 +158,8 @@ diff -ruN exercises/exercise-biomineralization/CMakeLists.txt exercises/solution
# add a symlink for each input file # add a symlink for each input file
add_input_file_links() add_input_file_links()
diff -ruN exercises/exercise-biomineralization/components/biofilm.hh exercises/solution/exercise-biomineralization/components/biofilm.hh diff -ruN exercises/exercise-biomineralization/components/biofilm.hh exercises/solution/exercise-biomineralization/components/biofilm.hh
--- exercises/exercise-biomineralization/components/biofilm.hh 2025-03-03 15:56:59.902625104 +0100 --- exercises/exercise-biomineralization/components/biofilm.hh 2025-03-07 10:42:02.608883005 +0100
+++ exercises/solution/exercise-biomineralization/components/biofilm.hh 2025-03-03 15:56:59.909624983 +0100 +++ exercises/solution/exercise-biomineralization/components/biofilm.hh 2025-03-07 10:42:02.617882948 +0100
@@ -12,9 +12,10 @@ @@ -12,9 +12,10 @@
#ifndef DUMUX_BIOFILM_HH #ifndef DUMUX_BIOFILM_HH
#define DUMUX_BIOFILM_HH #define DUMUX_BIOFILM_HH
...@@ -173,15 +173,15 @@ diff -ruN exercises/exercise-biomineralization/components/biofilm.hh exercises/s ...@@ -173,15 +173,15 @@ diff -ruN exercises/exercise-biomineralization/components/biofilm.hh exercises/s
namespace Dumux::Components { namespace Dumux::Components {
diff -ruN exercises/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh exercises/solution/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh diff -ruN exercises/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh exercises/solution/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh
--- exercises/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh 2025-03-03 15:56:59.903625087 +0100 --- exercises/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh 2025-03-07 11:30:34.872192048 +0100
+++ exercises/solution/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh 2025-03-03 15:56:59.909624983 +0100 +++ exercises/solution/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh 2025-03-07 11:30:34.877192015 +0100
@@ -41,10 +41,11 @@ @@ -41,10 +41,11 @@
using std::pow; using std::pow;
// TODO: dumux-course-task // TODO: dumux-course-task 6:
// read the exponent for the power law from the input file // read the exponent for the power law from the input file
+ const Scalar exponent = getParam<Scalar>("PowerLaw.Exponent", 5.0); + const Scalar exponent = getParam<Scalar>("PowerLaw.Exponent", 5.0);
// TODO: dumux-course-task // TODO: dumux-course-task 6:
// return the updated permeability according to K=K_0*(poro/refPoro)^exponent // return the updated permeability according to K=K_0*(poro/refPoro)^exponent
- return refPerm; - return refPerm;
+ return refPerm * pow(poro/refPoro, exponent); + return refPerm * pow(poro/refPoro, exponent);
...@@ -189,8 +189,8 @@ diff -ruN exercises/exercise-biomineralization/fluidmatrixinteractions/permeabil ...@@ -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 diff -ruN exercises/exercise-biomineralization/fluidsystems/biomin.hh exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh
--- exercises/exercise-biomineralization/fluidsystems/biomin.hh 2025-03-03 15:56:59.903625087 +0100 --- exercises/exercise-biomineralization/fluidsystems/biomin.hh 2025-03-07 10:42:02.608883005 +0100
+++ exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh 2025-03-03 15:56:59.909624983 +0100 +++ exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh 2025-03-07 10:42:02.617882948 +0100
@@ -219,7 +219,7 @@ @@ -219,7 +219,7 @@
static void init() static void init()
{ {
...@@ -201,9 +201,9 @@ diff -ruN exercises/exercise-biomineralization/fluidsystems/biomin.hh exercises/ ...@@ -201,9 +201,9 @@ diff -ruN exercises/exercise-biomineralization/fluidsystems/biomin.hh exercises/
} }
diff -ruN exercises/exercise-biomineralization/params.input exercises/solution/exercise-biomineralization/params.input diff -ruN exercises/exercise-biomineralization/params.input exercises/solution/exercise-biomineralization/params.input
--- exercises/exercise-biomineralization/params.input 2025-03-03 15:23:33.241567756 +0100 --- exercises/exercise-biomineralization/params.input 2025-03-07 11:30:34.872192048 +0100
+++ exercises/solution/exercise-biomineralization/params.input 2025-03-03 15:23:33.246567644 +0100 +++ exercises/solution/exercise-biomineralization/params.input 2025-03-07 11:30:34.877192015 +0100
@@ -16,10 +16,10 @@ @@ -18,10 +18,10 @@
InitBiofilm = 0.05 # [-] initial volumefraction biofilm InitBiofilm = 0.05 # [-] initial volumefraction biofilm
[Injection] [Injection]
...@@ -217,7 +217,7 @@ diff -ruN exercises/exercise-biomineralization/params.input exercises/solution/e ...@@ -217,7 +217,7 @@ diff -ruN exercises/exercise-biomineralization/params.input exercises/solution/e
ConcCa = 40 # [kg/m³] injected calcium concentration (max: 50) ConcCa = 40 # [kg/m³] injected calcium concentration (max: 50)
ConcUrea = 60 # [kg/m³] injected urea concentration, should be 1.5 times ConcCa (max: 80) ConcUrea = 60 # [kg/m³] injected urea concentration, should be 1.5 times ConcCa (max: 80)
@@ -35,7 +35,6 @@ @@ -37,7 +37,6 @@
Aquitard.Swr = 0.0 Aquitard.Swr = 0.0
Aquitard.Snr = 0.0 Aquitard.Snr = 0.0
...@@ -225,23 +225,23 @@ diff -ruN exercises/exercise-biomineralization/params.input exercises/solution/e ...@@ -225,23 +225,23 @@ diff -ruN exercises/exercise-biomineralization/params.input exercises/solution/e
[BioCoefficients] [BioCoefficients]
RhoBiofilm = 6.9 # [kg/m³] density of biofilm RhoBiofilm = 6.9 # [kg/m³] density of biofilm
@@ -48,4 +47,6 @@ @@ -50,4 +49,6 @@
Salinity = 0.1 Salinity = 0.1
#TODO: dumux-course-task # TODO: dumux-course-task 6:
-# add the power law's exponent parameter PowerLaw.Exponent = 5.0 -# add the power law's exponent parameter PowerLaw.Exponent = 5.0
+# add the power law's exponent parameter PowerLaw.Exponent = 5 +# add the power law's exponent parameter PowerLaw.Exponent = 5
+[PowerLaw] +[PowerLaw]
+Exponent = 5.0 +Exponent = 5.0
diff -ruN exercises/exercise-biomineralization/properties.hh exercises/solution/exercise-biomineralization/properties.hh diff -ruN exercises/exercise-biomineralization/properties.hh exercises/solution/exercise-biomineralization/properties.hh
--- exercises/exercise-biomineralization/properties.hh 2025-03-03 15:56:59.903625087 +0100 --- exercises/exercise-biomineralization/properties.hh 2025-03-07 11:30:34.872192048 +0100
+++ exercises/solution/exercise-biomineralization/properties.hh 2025-03-03 15:56:59.909624983 +0100 +++ exercises/solution/exercise-biomineralization/properties.hh 2025-03-07 11:30:34.878192008 +0100
@@ -18,17 +18,20 @@ @@ -18,17 +18,20 @@
#include <dumux/discretization/cctpfa.hh> #include <dumux/discretization/cctpfa.hh>
#include <dumux/porousmediumflow/2pncmin/model.hh> #include <dumux/porousmediumflow/2pncmin/model.hh>
#include <dumux/porousmediumflow/problem.hh> #include <dumux/porousmediumflow/problem.hh>
-#include <dumux/material/components/simpleco2.hh> //!< Simplified CO2 component based on ideal gas law -#include <dumux/material/components/simpleco2.hh> //!< Simplified CO2 component based on ideal gas law
// TODO: dumux-course-task // TODO: dumux-course-task 7:
// include the CO2 component and tabulated values from DuMux // include the CO2 component and tabulated values from DuMux
-#include "solidsystems/biominsolidphase.hh" // The biomineralization solid system -#include "solidsystems/biominsolidphase.hh" // The biomineralization solid system
+#include <dumux/material/components/co2.hh> //!< CO2 component for use with tabulated values +#include <dumux/material/components/co2.hh> //!< CO2 component for use with tabulated values
...@@ -261,7 +261,7 @@ diff -ruN exercises/exercise-biomineralization/properties.hh exercises/solution/ ...@@ -261,7 +261,7 @@ diff -ruN exercises/exercise-biomineralization/properties.hh exercises/solution/
//! Create new type tag for the problem //! Create new type tag for the problem
@@ -54,7 +57,7 @@ @@ -54,7 +57,7 @@
using Scalar = GetPropType<TypeTag, Properties::Scalar>; using Scalar = GetPropType<TypeTag, Properties::Scalar>;
// TODO: dumux-course-task // TODO: dumux-course-task 7:
// use the CO2 component with tabulated values // use the CO2 component with tabulated values
- using CO2Impl = Components::SimpleCO2<Scalar>; - using CO2Impl = Components::SimpleCO2<Scalar>;
+ using CO2Impl = Components::CO2<Scalar, GeneratedCO2Tables::CO2Tables>; + using CO2Impl = Components::CO2<Scalar, GeneratedCO2Tables::CO2Tables>;
...@@ -269,7 +269,7 @@ diff -ruN exercises/exercise-biomineralization/properties.hh exercises/solution/ ...@@ -269,7 +269,7 @@ diff -ruN exercises/exercise-biomineralization/properties.hh exercises/solution/
public: public:
using type = FluidSystems::BioMin<Scalar, CO2Impl, H2OType>; using type = FluidSystems::BioMin<Scalar, CO2Impl, H2OType>;
diff -ruN exercises/exercise-biomineralization/README.md exercises/solution/exercise-biomineralization/README.md diff -ruN exercises/exercise-biomineralization/README.md exercises/solution/exercise-biomineralization/README.md
--- exercises/exercise-biomineralization/README.md 2025-03-03 15:23:33.240567779 +0100 --- exercises/exercise-biomineralization/README.md 2025-03-07 10:34:20.578090053 +0100
+++ exercises/solution/exercise-biomineralization/README.md 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-biomineralization/README.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,257 +0,0 @@ @@ -1,257 +0,0 @@
-# Exercise Biomineralization (DuMuX Course) -# Exercise Biomineralization (DuMuX Course)
...@@ -530,8 +530,8 @@ diff -ruN exercises/exercise-biomineralization/README.md exercises/solution/exer ...@@ -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'); -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 diff -ruN exercises/exercise-biomineralization/solidsystems/biominsolidphase.hh exercises/solution/exercise-biomineralization/solidsystems/biominsolidphase.hh
--- exercises/exercise-biomineralization/solidsystems/biominsolidphase.hh 2025-03-03 15:56:59.903625087 +0100 --- exercises/exercise-biomineralization/solidsystems/biominsolidphase.hh 2025-03-07 10:42:02.609882998 +0100
+++ exercises/solution/exercise-biomineralization/solidsystems/biominsolidphase.hh 2025-03-03 15:56:59.909624983 +0100 +++ exercises/solution/exercise-biomineralization/solidsystems/biominsolidphase.hh 2025-03-07 10:42:02.618882942 +0100
@@ -15,12 +15,12 @@ @@ -15,12 +15,12 @@
#include <string> #include <string>
#include <dune/common/exceptions.hh> #include <dune/common/exceptions.hh>
......
diff -ruN exercises/exercise-dunemodule/README.md exercises/solution/exercise-dunemodule/README.md diff -ruN exercises/exercise-dunemodule/README.md exercises/solution/exercise-dunemodule/README.md
--- exercises/exercise-dunemodule/README.md 2025-03-03 15:23:33.243567711 +0100 --- exercises/exercise-dunemodule/README.md 2025-02-26 11:38:46.805818009 +0100
+++ exercises/solution/exercise-dunemodule/README.md 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-dunemodule/README.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,114 +0,0 @@ @@ -1,114 +0,0 @@
-# Exercise New Dune Module (DuMuX course) -# Exercise New Dune Module (DuMuX course)
......
diff -ruN exercises/exercise-fluidsystem/2p2cproblem.hh exercises/solution/exercise-fluidsystem/2p2cproblem.hh diff -ruN exercises/exercise-fluidsystem/2p2cproblem.hh exercises/solution/exercise-fluidsystem/2p2cproblem.hh
--- exercises/exercise-fluidsystem/2p2cproblem.hh 2025-03-03 15:56:59.905625052 +0100 --- exercises/exercise-fluidsystem/2p2cproblem.hh 2025-03-07 10:42:02.611882986 +0100
+++ exercises/solution/exercise-fluidsystem/2p2cproblem.hh 2025-03-03 15:56:59.910624965 +0100 +++ exercises/solution/exercise-fluidsystem/2p2cproblem.hh 2025-03-07 10:42:02.619882935 +0100
@@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
#ifndef DUMUX_EXERCISE_FLUIDSYSTEM_B_PROBLEM_HH #ifndef DUMUX_EXERCISE_FLUIDSYSTEM_B_PROBLEM_HH
#define 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 ...@@ -11,8 +11,8 @@ diff -ruN exercises/exercise-fluidsystem/2p2cproblem.hh exercises/solution/exerc
#include <dumux/common/boundarytypes.hh> #include <dumux/common/boundarytypes.hh>
#include <dumux/common/properties.hh> #include <dumux/common/properties.hh>
diff -ruN exercises/exercise-fluidsystem/2pproperties.hh exercises/solution/exercise-fluidsystem/2pproperties.hh diff -ruN exercises/exercise-fluidsystem/2pproperties.hh exercises/solution/exercise-fluidsystem/2pproperties.hh
--- exercises/exercise-fluidsystem/2pproperties.hh 2025-03-03 15:56:59.905625052 +0100 --- exercises/exercise-fluidsystem/2pproperties.hh 2025-03-07 10:42:02.612882979 +0100
+++ exercises/solution/exercise-fluidsystem/2pproperties.hh 2025-03-03 15:56:59.910624965 +0100 +++ exercises/solution/exercise-fluidsystem/2pproperties.hh 2025-03-07 10:42:02.619882935 +0100
@@ -25,15 +25,13 @@ @@ -25,15 +25,13 @@
#include "spatialparams.hh" #include "spatialparams.hh"
...@@ -52,8 +52,8 @@ diff -ruN exercises/exercise-fluidsystem/2pproperties.hh exercises/solution/exer ...@@ -52,8 +52,8 @@ diff -ruN exercises/exercise-fluidsystem/2pproperties.hh exercises/solution/exer
public: public:
using type = typename FluidSystems::TwoPImmiscible<Scalar, LiquidWaterPhase, LiquidMyComponentPhase>; using type = typename FluidSystems::TwoPImmiscible<Scalar, LiquidWaterPhase, LiquidMyComponentPhase>;
diff -ruN exercises/exercise-fluidsystem/aparams.input exercises/solution/exercise-fluidsystem/aparams.input diff -ruN exercises/exercise-fluidsystem/aparams.input exercises/solution/exercise-fluidsystem/aparams.input
--- exercises/exercise-fluidsystem/aparams.input 2025-03-03 15:23:33.243567711 +0100 --- exercises/exercise-fluidsystem/aparams.input 2025-03-07 11:30:34.874192035 +0100
+++ exercises/solution/exercise-fluidsystem/aparams.input 2025-03-03 15:23:33.246567644 +0100 +++ exercises/solution/exercise-fluidsystem/aparams.input 2025-02-26 11:38:46.843816269 +0100
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
DtInitial = 10 # initial time step size [s] DtInitial = 10 # initial time step size [s]
...@@ -63,15 +63,16 @@ diff -ruN exercises/exercise-fluidsystem/aparams.input exercises/solution/exerci ...@@ -63,15 +63,16 @@ diff -ruN exercises/exercise-fluidsystem/aparams.input exercises/solution/exerci
[SpatialParams] [SpatialParams]
BrooksCoreyPcEntry = 5.0e2 # [Pa] BrooksCoreyPcEntry = 5.0e2 # [Pa]
@@ -20,4 +20,4 @@ @@ -20,5 +20,4 @@
Cells = 60 60 # x-/y-resolution of the grid Cells = 60 60 # x-/y-resolution of the grid
[Output] [Output]
-# TODO: dumux-course-task 2.2: set the plot density to true
-PlotDensity = false # plot density over pressure for your component -PlotDensity = false # plot density over pressure for your component
+PlotDensity = true # 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 diff -ruN exercises/exercise-fluidsystem/bparams.input exercises/solution/exercise-fluidsystem/bparams.input
--- exercises/exercise-fluidsystem/bparams.input 2025-03-03 15:23:33.243567711 +0100 --- exercises/exercise-fluidsystem/bparams.input 2025-02-26 11:38:46.806817963 +0100
+++ exercises/solution/exercise-fluidsystem/bparams.input 2025-03-03 15:23:33.246567644 +0100 +++ exercises/solution/exercise-fluidsystem/bparams.input 2025-02-26 11:38:46.844816223 +0100
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
DtInitial = 10 # initial time step size [s] DtInitial = 10 # initial time step size [s]
...@@ -82,8 +83,8 @@ diff -ruN exercises/exercise-fluidsystem/bparams.input exercises/solution/exerci ...@@ -82,8 +83,8 @@ diff -ruN exercises/exercise-fluidsystem/bparams.input exercises/solution/exerci
[SpatialParams] [SpatialParams]
BrooksCoreyPcEntry = 5.0e2 # [Pa] BrooksCoreyPcEntry = 5.0e2 # [Pa]
diff -ruN exercises/exercise-fluidsystem/CMakeLists.txt exercises/solution/exercise-fluidsystem/CMakeLists.txt diff -ruN exercises/exercise-fluidsystem/CMakeLists.txt exercises/solution/exercise-fluidsystem/CMakeLists.txt
--- exercises/exercise-fluidsystem/CMakeLists.txt 2025-03-03 15:56:59.905625052 +0100 --- exercises/exercise-fluidsystem/CMakeLists.txt 2025-03-07 10:42:02.612882979 +0100
+++ exercises/solution/exercise-fluidsystem/CMakeLists.txt 2025-03-03 15:56:59.910624965 +0100 +++ exercises/solution/exercise-fluidsystem/CMakeLists.txt 2025-03-07 10:42:02.619882935 +0100
@@ -3,18 +3,16 @@ @@ -3,18 +3,16 @@
# executables for exercise part a & b # executables for exercise part a & b
...@@ -110,8 +111,8 @@ diff -ruN exercises/exercise-fluidsystem/CMakeLists.txt exercises/solution/exerc ...@@ -110,8 +111,8 @@ diff -ruN exercises/exercise-fluidsystem/CMakeLists.txt exercises/solution/exerc
-# add a symlink for the grids folder -# add a symlink for the grids folder
-dune_symlink_to_source_files(FILES grids) -dune_symlink_to_source_files(FILES grids)
diff -ruN exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh diff -ruN exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh
--- exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh 2025-03-03 15:56:59.906625035 +0100 --- exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh 2025-03-07 10:42:02.612882979 +0100
+++ exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh 2025-03-03 15:56:59.910624965 +0100 +++ exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh 2025-03-07 10:42:02.620882929 +0100
@@ -38,7 +38,7 @@ @@ -38,7 +38,7 @@
static std::string name() static std::string name()
{ return "MyCompressibleComponent"; } { return "MyCompressibleComponent"; }
...@@ -173,8 +174,8 @@ diff -ruN exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh e ...@@ -173,8 +174,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 diff -ruN exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh
--- exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh 2025-03-03 15:56:59.906625035 +0100 --- exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh 2025-03-07 10:42:02.612882979 +0100
+++ exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh 2025-03-03 15:56:59.910624965 +0100 +++ exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh 2025-03-07 10:42:02.620882929 +0100
@@ -48,10 +48,7 @@ @@ -48,10 +48,7 @@
*/ */
static Scalar molarMass() static Scalar molarMass()
...@@ -213,10 +214,10 @@ diff -ruN exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh ...@@ -213,10 +214,10 @@ diff -ruN exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh
diff -ruN exercises/exercise-fluidsystem/components/plotdensityfunction.py exercises/solution/exercise-fluidsystem/components/plotdensityfunction.py 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/exercise-fluidsystem/components/plotdensityfunction.py 1970-01-01 01:00:00.000000000 +0100
+++ exercises/solution/exercise-fluidsystem/components/plotdensityfunction.py 2025-03-03 15:56:59.910624965 +0100 +++ exercises/solution/exercise-fluidsystem/components/plotdensityfunction.py 2025-03-07 10:42:02.620882929 +0100
@@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
+#!usr/bin/env python +#!usr/bin/env python
+# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder +# SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
+# SPDX-License-Identifier: GPL-3.0-or-later +# SPDX-License-Identifier: GPL-3.0-or-later
+ +
+import numpy as np +import numpy as np
...@@ -238,8 +239,8 @@ diff -ruN exercises/exercise-fluidsystem/components/plotdensityfunction.py exerc ...@@ -238,8 +239,8 @@ diff -ruN exercises/exercise-fluidsystem/components/plotdensityfunction.py exerc
+plt.semilogx(p, r) +plt.semilogx(p, r)
+plt.show() +plt.show()
diff -ruN exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh diff -ruN exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh
--- exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh 2025-03-03 15:56:59.906625035 +0100 --- exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh 2025-03-07 10:42:02.612882979 +0100
+++ exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh 2025-03-03 15:56:59.910624965 +0100 +++ exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh 2025-03-07 10:42:02.620882929 +0100
@@ -20,10 +20,10 @@ @@ -20,10 +20,10 @@
#include <dumux/material/fluidsystems/base.hh> #include <dumux/material/fluidsystems/base.hh>
...@@ -276,8 +277,8 @@ diff -ruN exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent ...@@ -276,8 +277,8 @@ diff -ruN exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent
else else
{ {
diff -ruN exercises/exercise-fluidsystem/main.cc exercises/solution/exercise-fluidsystem/main.cc diff -ruN exercises/exercise-fluidsystem/main.cc exercises/solution/exercise-fluidsystem/main.cc
--- exercises/exercise-fluidsystem/main.cc 2025-03-03 15:56:59.906625035 +0100 --- exercises/exercise-fluidsystem/main.cc 2025-03-07 10:42:02.612882979 +0100
+++ exercises/solution/exercise-fluidsystem/main.cc 2025-03-03 15:56:59.910624965 +0100 +++ exercises/solution/exercise-fluidsystem/main.cc 2025-03-07 10:42:02.620882929 +0100
@@ -36,7 +36,7 @@ @@ -36,7 +36,7 @@
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
...@@ -303,7 +304,7 @@ diff -ruN exercises/exercise-fluidsystem/main.cc exercises/solution/exercise-flu ...@@ -303,7 +304,7 @@ diff -ruN exercises/exercise-fluidsystem/main.cc exercises/solution/exercise-flu
using IOFields = GetPropType<TypeTag, Properties::IOFields>; using IOFields = GetPropType<TypeTag, Properties::IOFields>;
VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name()); VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-fluidsystem/README.md diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-fluidsystem/README.md
--- exercises/exercise-fluidsystem/README.md 2025-03-03 15:23:33.243567711 +0100 --- exercises/exercise-fluidsystem/README.md 2025-03-07 10:34:20.584089967 +0100
+++ exercises/solution/exercise-fluidsystem/README.md 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-fluidsystem/README.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,265 +0,0 @@ @@ -1,265 +0,0 @@
-# Exercise Fluidsystem (DuMuX Course) -# Exercise Fluidsystem (DuMuX Course)
...@@ -572,8 +573,8 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f ...@@ -572,8 +573,8 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f
-./exercise_fluidsystem_b bparams.input -./exercise_fluidsystem_b bparams.input
-``` -```
diff -ruN exercises/exercise-fluidsystem/spatialparams.hh exercises/solution/exercise-fluidsystem/spatialparams.hh diff -ruN exercises/exercise-fluidsystem/spatialparams.hh exercises/solution/exercise-fluidsystem/spatialparams.hh
--- exercises/exercise-fluidsystem/spatialparams.hh 2025-03-03 15:56:59.906625035 +0100 --- exercises/exercise-fluidsystem/spatialparams.hh 2025-03-07 10:42:02.612882979 +0100
+++ exercises/solution/exercise-fluidsystem/spatialparams.hh 2025-03-03 15:56:59.910624965 +0100 +++ exercises/solution/exercise-fluidsystem/spatialparams.hh 2025-03-07 10:42:02.620882929 +0100
@@ -113,13 +113,17 @@ @@ -113,13 +113,17 @@
template<class FluidSystem> template<class FluidSystem>
int wettingPhaseAtPos(const GlobalPosition& globalPos) const int wettingPhaseAtPos(const GlobalPosition& globalPos) const
......
diff -ruN exercises/exercise-fractures/CMakeLists.txt exercises/solution/exercise-fractures/CMakeLists.txt diff -ruN exercises/exercise-fractures/CMakeLists.txt exercises/solution/exercise-fractures/CMakeLists.txt
--- exercises/exercise-fractures/CMakeLists.txt 2025-03-03 15:56:59.906625035 +0100 --- exercises/exercise-fractures/CMakeLists.txt 2025-03-07 10:42:02.612882979 +0100
+++ exercises/solution/exercise-fractures/CMakeLists.txt 2025-03-03 15:56:59.910624965 +0100 +++ exercises/solution/exercise-fractures/CMakeLists.txt 2025-03-07 10:42:02.620882929 +0100
@@ -1,9 +1,26 @@ @@ -1,9 +1,26 @@
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
-dumux_add_test(NAME exercise_fractures -dumux_add_test(NAME exercise_fractures
...@@ -32,7 +32,7 @@ diff -ruN exercises/exercise-fractures/CMakeLists.txt exercises/solution/exercis ...@@ -32,7 +32,7 @@ diff -ruN exercises/exercise-fractures/CMakeLists.txt exercises/solution/exercis
add_input_file_links() add_input_file_links()
diff -ruN exercises/exercise-fractures/exercise_fractures_solution_a.input exercises/solution/exercise-fractures/exercise_fractures_solution_a.input 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/exercise-fractures/exercise_fractures_solution_a.input 1970-01-01 01:00:00.000000000 +0100
+++ exercises/solution/exercise-fractures/exercise_fractures_solution_a.input 2024-07-11 13:35:11.680138513 +0200 +++ exercises/solution/exercise-fractures/exercise_fractures_solution_a.input 2025-02-26 11:38:46.844816223 +0100
@@ -0,0 +1,41 @@ @@ -0,0 +1,41 @@
+[TimeLoop] +[TimeLoop]
+TEnd = 30000 # [s] +TEnd = 30000 # [s]
...@@ -77,7 +77,7 @@ diff -ruN exercises/exercise-fractures/exercise_fractures_solution_a.input exerc ...@@ -77,7 +77,7 @@ diff -ruN exercises/exercise-fractures/exercise_fractures_solution_a.input exerc
+SpatialParams.Barrier.Swr = 0.0 +SpatialParams.Barrier.Swr = 0.0
diff -ruN exercises/exercise-fractures/exercise_fractures_solution_b.input exercises/solution/exercise-fractures/exercise_fractures_solution_b.input 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/exercise-fractures/exercise_fractures_solution_b.input 1970-01-01 01:00:00.000000000 +0100
+++ exercises/solution/exercise-fractures/exercise_fractures_solution_b.input 2024-07-11 13:35:11.680138513 +0200 +++ exercises/solution/exercise-fractures/exercise_fractures_solution_b.input 2025-02-26 11:38:46.844816223 +0100
@@ -0,0 +1,41 @@ @@ -0,0 +1,41 @@
+[TimeLoop] +[TimeLoop]
+TEnd = 30000 # [s] +TEnd = 30000 # [s]
...@@ -122,7 +122,7 @@ diff -ruN exercises/exercise-fractures/exercise_fractures_solution_b.input exerc ...@@ -122,7 +122,7 @@ diff -ruN exercises/exercise-fractures/exercise_fractures_solution_b.input exerc
+SpatialParams.Barrier.Swr = 0.0 +SpatialParams.Barrier.Swr = 0.0
diff -ruN exercises/exercise-fractures/exercise_fractures_solution_c.input exercises/solution/exercise-fractures/exercise_fractures_solution_c.input 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/exercise-fractures/exercise_fractures_solution_c.input 1970-01-01 01:00:00.000000000 +0100
+++ exercises/solution/exercise-fractures/exercise_fractures_solution_c.input 2024-07-11 13:35:11.680138513 +0200 +++ exercises/solution/exercise-fractures/exercise_fractures_solution_c.input 2025-02-26 11:38:46.844816223 +0100
@@ -0,0 +1,41 @@ @@ -0,0 +1,41 @@
+[TimeLoop] +[TimeLoop]
+TEnd = 30000 # [s] +TEnd = 30000 # [s]
...@@ -166,8 +166,8 @@ diff -ruN exercises/exercise-fractures/exercise_fractures_solution_c.input exerc ...@@ -166,8 +166,8 @@ diff -ruN exercises/exercise-fractures/exercise_fractures_solution_c.input exerc
+SpatialParams.Barrier.Snr = 0.0 +SpatialParams.Barrier.Snr = 0.0
+SpatialParams.Barrier.Swr = 0.0 +SpatialParams.Barrier.Swr = 0.0
diff -ruN exercises/exercise-fractures/fractureproblem.hh exercises/solution/exercise-fractures/fractureproblem.hh diff -ruN exercises/exercise-fractures/fractureproblem.hh exercises/solution/exercise-fractures/fractureproblem.hh
--- exercises/exercise-fractures/fractureproblem.hh 2025-03-03 15:56:59.906625035 +0100 --- exercises/exercise-fractures/fractureproblem.hh 2025-03-07 11:30:34.874192035 +0100
+++ exercises/solution/exercise-fractures/fractureproblem.hh 2025-03-03 15:56:59.910624965 +0100 +++ exercises/solution/exercise-fractures/fractureproblem.hh 2025-03-07 10:42:02.620882929 +0100
@@ -59,6 +59,10 @@ @@ -59,6 +59,10 @@
std::shared_ptr<typename ParentType::SpatialParams> spatialParams, std::shared_ptr<typename ParentType::SpatialParams> spatialParams,
const std::string& paramGroup) const std::string& paramGroup)
...@@ -185,7 +185,7 @@ diff -ruN exercises/exercise-fractures/fractureproblem.hh exercises/solution/exe ...@@ -185,7 +185,7 @@ diff -ruN exercises/exercise-fractures/fractureproblem.hh exercises/solution/exe
- // However, there is one fracture reaching the top boundary. For this - // However, there is one fracture reaching the top boundary. For this
- // fracture tip we set Dirichlet Bcs as in the matrix domain - // fracture tip we set Dirichlet Bcs as in the matrix domain
- // TODO dumux-course-task A - // TODO: dumux-course-task A:
- // Change boundary conditions - // Change boundary conditions
- if (globalPos[1] > this->gridGeometry().bBoxMax()[1] - 1e-6) - if (globalPos[1] > this->gridGeometry().bBoxMax()[1] - 1e-6)
- values.setAllDirichlet(); - values.setAllDirichlet();
...@@ -199,8 +199,8 @@ diff -ruN exercises/exercise-fractures/fractureproblem.hh exercises/solution/exe ...@@ -199,8 +199,8 @@ diff -ruN exercises/exercise-fractures/fractureproblem.hh exercises/solution/exe
return values; return values;
} }
diff -ruN exercises/exercise-fractures/fracturespatialparams.hh exercises/solution/exercise-fractures/fracturespatialparams.hh diff -ruN exercises/exercise-fractures/fracturespatialparams.hh exercises/solution/exercise-fractures/fracturespatialparams.hh
--- exercises/exercise-fractures/fracturespatialparams.hh 2025-03-03 15:56:59.906625035 +0100 --- exercises/exercise-fractures/fracturespatialparams.hh 2025-03-07 11:30:34.874192035 +0100
+++ exercises/solution/exercise-fractures/fracturespatialparams.hh 2025-03-03 15:56:59.910624965 +0100 +++ exercises/solution/exercise-fractures/fracturespatialparams.hh 2025-03-07 10:42:02.620882929 +0100
@@ -41,6 +41,7 @@ @@ -41,6 +41,7 @@
using Element = typename GridView::template Codim<0>::Entity; using Element = typename GridView::template Codim<0>::Entity;
using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
...@@ -226,7 +226,7 @@ diff -ruN exercises/exercise-fractures/fracturespatialparams.hh exercises/soluti ...@@ -226,7 +226,7 @@ diff -ruN exercises/exercise-fractures/fracturespatialparams.hh exercises/soluti
const SubControlVolume& scv, const SubControlVolume& scv,
const ElementSolution& elemSol) const const ElementSolution& elemSol) const
{ {
- // TODO dumux-course-task B - // TODO: dumux-course-task B/C:
- // Change fracture properties - // Change fracture properties
- return permeability_; - return permeability_;
+ // in the unmodified state and exercise part a return the non-barrier parameters + // in the unmodified state and exercise part a return the non-barrier parameters
...@@ -252,7 +252,7 @@ diff -ruN exercises/exercise-fractures/fracturespatialparams.hh exercises/soluti ...@@ -252,7 +252,7 @@ diff -ruN exercises/exercise-fractures/fracturespatialparams.hh exercises/soluti
const SubControlVolume& scv, const SubControlVolume& scv,
const ElementSolution& elemSol) const const ElementSolution& elemSol) const
{ {
- // TODO dumux-course-task B - // TODO: dumux-course-task B/C:
- // Change fracture properties - // Change fracture properties
- return porosity_; - return porosity_;
+ // in the unmodified state and exercise part a return the non-barrier parameters + // in the unmodified state and exercise part a return the non-barrier parameters
...@@ -278,7 +278,7 @@ diff -ruN exercises/exercise-fractures/fracturespatialparams.hh exercises/soluti ...@@ -278,7 +278,7 @@ diff -ruN exercises/exercise-fractures/fracturespatialparams.hh exercises/soluti
const SubControlVolume& scv, const SubControlVolume& scv,
const ElementSolution& elemSol) const const ElementSolution& elemSol) const
{ {
- // TODO dumux-course-task B - // TODO: dumux-course-task B/C:
- // Change fracture properties - // Change fracture properties
- return makeFluidMatrixInteraction(pcKrSwCurve_); - return makeFluidMatrixInteraction(pcKrSwCurve_);
+ // in the unmodified state and exercise part a return the non-barrier parameters + // in the unmodified state and exercise part a return the non-barrier parameters
...@@ -322,8 +322,8 @@ diff -ruN exercises/exercise-fractures/fracturespatialparams.hh exercises/soluti ...@@ -322,8 +322,8 @@ diff -ruN exercises/exercise-fractures/fracturespatialparams.hh exercises/soluti
} // end namespace Dumux } // end namespace Dumux
diff -ruN exercises/exercise-fractures/main.cc exercises/solution/exercise-fractures/main.cc diff -ruN exercises/exercise-fractures/main.cc exercises/solution/exercise-fractures/main.cc
--- exercises/exercise-fractures/main.cc 2025-03-03 15:56:59.906625035 +0100 --- exercises/exercise-fractures/main.cc 2025-03-07 10:42:02.613882973 +0100
+++ exercises/solution/exercise-fractures/main.cc 2025-03-03 15:56:59.910624965 +0100 +++ exercises/solution/exercise-fractures/main.cc 2025-03-07 10:42:02.620882929 +0100
@@ -245,4 +245,5 @@ @@ -245,4 +245,5 @@
Parameters::print(); Parameters::print();
...@@ -331,8 +331,8 @@ diff -ruN exercises/exercise-fractures/main.cc exercises/solution/exercise-fract ...@@ -331,8 +331,8 @@ diff -ruN exercises/exercise-fractures/main.cc exercises/solution/exercise-fract
+ +
}// end main }// end main
diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exercise-fractures/matrixproblem.hh diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exercise-fractures/matrixproblem.hh
--- exercises/exercise-fractures/matrixproblem.hh 2025-03-03 15:56:59.907625017 +0100 --- exercises/exercise-fractures/matrixproblem.hh 2025-03-07 11:30:34.875192028 +0100
+++ exercises/solution/exercise-fractures/matrixproblem.hh 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-fractures/matrixproblem.hh 2025-03-07 10:42:02.621882923 +0100
@@ -65,11 +65,18 @@ @@ -65,11 +65,18 @@
: ParentType(gridGeometry, spatialParams, paramGroup) : ParentType(gridGeometry, spatialParams, paramGroup)
, boundaryOverPressure_(getParamFromGroup<Scalar>(paramGroup, "Problem.BoundaryOverPressure")) , boundaryOverPressure_(getParamFromGroup<Scalar>(paramGroup, "Problem.BoundaryOverPressure"))
...@@ -358,7 +358,7 @@ diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exerc ...@@ -358,7 +358,7 @@ diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exerc
- // we consider buoancy-driven upwards migration of nitrogen and set - // we consider buoancy-driven upwards migration of nitrogen and set
- // Dirichlet BCs on the top and bottom boundary - // Dirichlet BCs on the top and bottom boundary
- // TODO dumux-course-task A - // TODO: dumux-course-task A:
- // Change boundary conditions and Dirichlet values! - // Change boundary conditions and Dirichlet values!
- values.setAllNeumann(); - values.setAllNeumann();
- if (globalPos[1] < 1e-6 || globalPos[1] > this->gridGeometry().bBoxMax()[1] - 1e-6) - if (globalPos[1] < 1e-6 || globalPos[1] > this->gridGeometry().bBoxMax()[1] - 1e-6)
...@@ -383,14 +383,16 @@ diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exerc ...@@ -383,14 +383,16 @@ diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exerc
return values; return values;
} }
@@ -107,10 +124,30 @@ @@ -107,12 +124,29 @@
// the interior boundary conditions to Dirichlet. // the interior boundary conditions to Dirichlet.
// IMPORTANT: Note that you will never be asked to set any values at the interior boundaries! // IMPORTANT: Note that you will never be asked to set any values at the interior boundaries!
// This simply chooses a different interface condition! // This simply chooses a different interface condition!
- // TODO dumux-course-task C - // TODO: dumux-course-task B:
- // Change coupling conditions! - // Change coupling conditions!
values.setAllDirichlet(); values.setAllDirichlet();
- // TODO: dumux-course-task additional task:
- // Set interior boundary condition depending on the domain marker of the fracture domain elements!
+ if (isExercisePartB_) + if (isExercisePartB_)
+ values.setAllNeumann(); + values.setAllNeumann();
+ else if (isExercisePartC_) + else if (isExercisePartC_)
...@@ -412,16 +414,15 @@ diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exerc ...@@ -412,16 +414,15 @@ diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exerc
+ if (fractureElementMarker == 2) + if (fractureElementMarker == 2)
+ values.setAllNeumann(); + values.setAllNeumann();
+ } + }
+
return values; return values;
} }
@@ -123,11 +157,23 @@
@@ -120,11 +157,23 @@
// initialize values with the initial conditions // initialize values with the initial conditions
auto values = initialAtPos(globalPos); auto values = initialAtPos(globalPos);
- // nitrogen is in contact with the domain on the center half of the lower boundary - // nitrogen is in contact with the domain on the center half of the lower boundary
- // TODO dumux-course-task A - // TODO: dumux-course-task A:
- // Change boundary conditions and Dirichlet values! - // Change boundary conditions and Dirichlet values!
- if (globalPos[1] < 1e-6 && globalPos[0] > 25.0 && globalPos[0] < 75.0) - if (globalPos[1] < 1e-6 && globalPos[0] > 25.0 && globalPos[0] < 75.0)
- values[saturationIdx] = boundarySaturation_; - values[saturationIdx] = boundarySaturation_;
...@@ -445,7 +446,7 @@ diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exerc ...@@ -445,7 +446,7 @@ diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exerc
return values; return values;
} }
@@ -158,6 +207,9 @@ @@ -161,6 +207,9 @@
Scalar boundaryOverPressure_; Scalar boundaryOverPressure_;
Scalar boundarySaturation_; Scalar boundarySaturation_;
...@@ -456,8 +457,8 @@ diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exerc ...@@ -456,8 +457,8 @@ diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exerc
} // end namespace Dumux } // end namespace Dumux
diff -ruN exercises/exercise-fractures/matrixspatialparams.hh exercises/solution/exercise-fractures/matrixspatialparams.hh diff -ruN exercises/exercise-fractures/matrixspatialparams.hh exercises/solution/exercise-fractures/matrixspatialparams.hh
--- exercises/exercise-fractures/matrixspatialparams.hh 2025-03-03 15:56:59.907625017 +0100 --- exercises/exercise-fractures/matrixspatialparams.hh 2025-03-07 10:42:02.613882973 +0100
+++ exercises/solution/exercise-fractures/matrixspatialparams.hh 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-fractures/matrixspatialparams.hh 2025-03-07 10:42:02.621882923 +0100
@@ -40,6 +40,7 @@ @@ -40,6 +40,7 @@
using Element = typename GridView::template Codim<0>::Entity; using Element = typename GridView::template Codim<0>::Entity;
using GlobalPosition = typename Element::Geometry::GlobalCoordinate; using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
...@@ -467,11 +468,13 @@ diff -ruN exercises/exercise-fractures/matrixspatialparams.hh exercises/solution ...@@ -467,11 +468,13 @@ diff -ruN exercises/exercise-fractures/matrixspatialparams.hh exercises/solution
public: public:
diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise-fractures/params.input diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise-fractures/params.input
--- exercises/exercise-fractures/params.input 2024-07-11 13:35:11.652137556 +0200 --- exercises/exercise-fractures/params.input 2025-03-07 11:30:34.875192028 +0100
+++ exercises/solution/exercise-fractures/params.input 2024-07-11 13:35:11.680138513 +0200 +++ exercises/solution/exercise-fractures/params.input 2025-02-26 11:38:46.845816177 +0100
@@ -5,6 +5,9 @@ @@ -4,8 +4,10 @@
MaxTimeStepSize = 2500 # [s]
[Problem] [Problem]
-# TODO: dumux-course-task A: switch off gravity
EnableGravity = true EnableGravity = true
+IsExercisePartA = false +IsExercisePartA = false
+IsExercisePartB = false +IsExercisePartB = false
...@@ -479,7 +482,7 @@ diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise- ...@@ -479,7 +482,7 @@ diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise-
[Grid] [Grid]
File = ./grids/complex.msh File = ./grids/complex.msh
@@ -16,8 +19,8 @@ @@ -17,8 +19,8 @@
Problem.BoundarySaturation = 0.5 Problem.BoundarySaturation = 0.5
SpatialParams.Permeability = 1e-12 SpatialParams.Permeability = 1e-12
SpatialParams.Porosity = 0.1 SpatialParams.Porosity = 0.1
...@@ -490,10 +493,11 @@ diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise- ...@@ -490,10 +493,11 @@ diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise-
SpatialParams.Snr = 0.0 SpatialParams.Snr = 0.0
SpatialParams.Swr = 0.0 SpatialParams.Swr = 0.0
@@ -28,11 +31,11 @@ @@ -29,12 +31,11 @@
SpatialParams.PermeabilityBarrier = 1e-16 SpatialParams.PermeabilityBarrier = 1e-16
SpatialParams.Porosity = 0.85 SpatialParams.Porosity = 0.85
SpatialParams.PorosityBarrier = 0.05 SpatialParams.PorosityBarrier = 0.05
-# TODO: dumux-course-task: set the VGAlpha parameter e.g. to 1e.5 and examine the nitrogen saturation in the fracture tips (then reset to 1e-1 again)
-SpatialParams.VanGenuchtenAlpha = 1e-1 -SpatialParams.VanGenuchtenAlpha = 1e-1
-SpatialParams.VanGenuchtenN = 2 -SpatialParams.VanGenuchtenN = 2
-SpatialParams.Swr = 0.0 -SpatialParams.Swr = 0.0
...@@ -510,8 +514,8 @@ diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise- ...@@ -510,8 +514,8 @@ diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise-
+SpatialParams.Swr = 0.0 +SpatialParams.Swr = 0.0
+SpatialParams.SwrBarrier = 0.0 +SpatialParams.SwrBarrier = 0.0
diff -ruN exercises/exercise-fractures/properties.hh exercises/solution/exercise-fractures/properties.hh diff -ruN exercises/exercise-fractures/properties.hh exercises/solution/exercise-fractures/properties.hh
--- exercises/exercise-fractures/properties.hh 2025-03-03 15:56:59.907625017 +0100 --- exercises/exercise-fractures/properties.hh 2025-03-07 10:42:02.613882973 +0100
+++ exercises/solution/exercise-fractures/properties.hh 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-fractures/properties.hh 2025-03-07 10:42:02.621882923 +0100
@@ -45,6 +45,7 @@ @@ -45,6 +45,7 @@
// with tpfa. // with tpfa.
#include <dumux/multidomain/facet/cellcentered/tpfa/properties.hh> #include <dumux/multidomain/facet/cellcentered/tpfa/properties.hh>
...@@ -530,7 +534,7 @@ diff -ruN exercises/exercise-fractures/properties.hh exercises/solution/exercise ...@@ -530,7 +534,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>; }; struct Grid<TypeTag, TTag::MatrixProblem> { using type = Dune::ALUGrid<2, 2, Dune::simplex, Dune::conforming>; };
template<class TypeTag> template<class TypeTag>
diff -ruN exercises/exercise-fractures/README.md exercises/solution/exercise-fractures/README.md diff -ruN exercises/exercise-fractures/README.md exercises/solution/exercise-fractures/README.md
--- exercises/exercise-fractures/README.md 2025-03-03 15:23:33.244567689 +0100 --- exercises/exercise-fractures/README.md 2025-03-07 11:30:34.874192035 +0100
+++ exercises/solution/exercise-fractures/README.md 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-fractures/README.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,216 +0,0 @@ @@ -1,216 +0,0 @@
-# Exercise Discrete Fractures (DuMuX Course) -# Exercise Discrete Fractures (DuMuX Course)
...@@ -692,7 +696,7 @@ diff -ruN exercises/exercise-fractures/README.md exercises/solution/exercise-fra ...@@ -692,7 +696,7 @@ diff -ruN exercises/exercise-fractures/README.md exercises/solution/exercise-fra
- // the interior boundary conditions to Dirichlet. - // the interior boundary conditions to Dirichlet.
- // IMPORTANT: Note that you will never be asked to set any values at the interior boundaries! - // IMPORTANT: Note that you will never be asked to set any values at the interior boundaries!
- // This simply chooses a different interface condition! - // This simply chooses a different interface condition!
- // TODO dumux-course-task C - // TODO: dumux-course-task B:
- // Change coupling conditions! - // Change coupling conditions!
- values.setAllDirichlet(); - values.setAllDirichlet();
- -
......
diff -ruN exercises/exercise-grids/CMakeLists.txt exercises/solution/exercise-grids/CMakeLists.txt diff -ruN exercises/exercise-grids/CMakeLists.txt exercises/solution/exercise-grids/CMakeLists.txt
--- exercises/exercise-grids/CMakeLists.txt 2025-03-03 15:56:59.907625017 +0100 --- exercises/exercise-grids/CMakeLists.txt 2025-03-07 10:42:02.613882973 +0100
+++ exercises/solution/exercise-grids/CMakeLists.txt 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-grids/CMakeLists.txt 2025-03-07 10:42:02.621882923 +0100
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
...@@ -11,7 +11,7 @@ diff -ruN exercises/exercise-grids/CMakeLists.txt exercises/solution/exercise-gr ...@@ -11,7 +11,7 @@ diff -ruN exercises/exercise-grids/CMakeLists.txt exercises/solution/exercise-gr
# add a symlink for each input file # add a symlink for each input file
diff -ruN exercises/exercise-grids/grids/grid_structured.dgf exercises/solution/exercise-grids/grids/grid_structured.dgf diff -ruN exercises/exercise-grids/grids/grid_structured.dgf exercises/solution/exercise-grids/grids/grid_structured.dgf
--- exercises/exercise-grids/grids/grid_structured.dgf 2024-07-11 13:35:11.652137556 +0200 --- exercises/exercise-grids/grids/grid_structured.dgf 2025-02-26 11:38:46.808817872 +0100
+++ exercises/solution/exercise-grids/grids/grid_structured.dgf 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-grids/grids/grid_structured.dgf 1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +0,0 @@ @@ -1,6 +0,0 @@
-DGF -DGF
...@@ -21,7 +21,7 @@ diff -ruN exercises/exercise-grids/grids/grid_structured.dgf exercises/solution/ ...@@ -21,7 +21,7 @@ diff -ruN exercises/exercise-grids/grids/grid_structured.dgf exercises/solution/
-30 20 % cells in x and y direction -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 diff -ruN exercises/exercise-grids/grids/grid_structured.geo exercises/solution/exercise-grids/grids/grid_structured.geo
--- exercises/exercise-grids/grids/grid_structured.geo 2024-07-11 13:35:11.652137556 +0200 --- exercises/exercise-grids/grids/grid_structured.geo 2025-02-26 11:38:46.808817872 +0100
+++ exercises/solution/exercise-grids/grids/grid_structured.geo 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-grids/grids/grid_structured.geo 1970-01-01 01:00:00.000000000 +0100
@@ -1,30 +0,0 @@ @@ -1,30 +0,0 @@
-X = 60; -X = 60;
...@@ -55,8 +55,8 @@ diff -ruN exercises/exercise-grids/grids/grid_structured.geo exercises/solution/ ...@@ -55,8 +55,8 @@ diff -ruN exercises/exercise-grids/grids/grid_structured.geo exercises/solution/
-Transfinite Volume "*"; -Transfinite Volume "*";
- -
diff -ruN exercises/exercise-grids/main.cc exercises/solution/exercise-grids/main.cc diff -ruN exercises/exercise-grids/main.cc exercises/solution/exercise-grids/main.cc
--- exercises/exercise-grids/main.cc 2025-03-03 15:56:59.907625017 +0100 --- exercises/exercise-grids/main.cc 2025-03-07 10:42:02.614882967 +0100
+++ exercises/solution/exercise-grids/main.cc 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-grids/main.cc 2025-03-07 10:42:02.621882923 +0100
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
// //
/*! /*!
...@@ -67,8 +67,8 @@ diff -ruN exercises/exercise-grids/main.cc exercises/solution/exercise-grids/mai ...@@ -67,8 +67,8 @@ diff -ruN exercises/exercise-grids/main.cc exercises/solution/exercise-grids/mai
#include <config.h> #include <config.h>
diff -ruN exercises/exercise-grids/params.input exercises/solution/exercise-grids/params.input diff -ruN exercises/exercise-grids/params.input exercises/solution/exercise-grids/params.input
--- exercises/exercise-grids/params.input 2025-03-03 15:23:33.244567689 +0100 --- exercises/exercise-grids/params.input 2025-03-07 11:30:34.875192028 +0100
+++ exercises/solution/exercise-grids/params.input 2024-07-11 13:35:11.680138513 +0200 +++ exercises/solution/exercise-grids/params.input 2025-03-07 11:30:34.878192008 +0100
@@ -3,13 +3,34 @@ @@ -3,13 +3,34 @@
TEnd = 3.154e9 # in seconds, i.e ten years TEnd = 3.154e9 # in seconds, i.e ten years
...@@ -78,11 +78,11 @@ diff -ruN exercises/exercise-grids/params.input exercises/solution/exercise-grid ...@@ -78,11 +78,11 @@ diff -ruN exercises/exercise-grids/params.input exercises/solution/exercise-grid
+# UpperRight = 60 40 +# UpperRight = 60 40
+# Cells = 24 16 +# Cells = 24 16
+ +
# TODO: Task 1: Globally refine your grid # TODO: dumux-course-task 1: Globally refine your grid
-# TODO: Task 2: Develop grid input parameters that can be split into zones -# TODO: dumux-course-task 2: Develop grid input parameters that can be split into zones
+# Refinement = 2 +# Refinement = 2
+ +
+# TODO: Task 2: Develop even grid input parameters that can be split into zones +# TODO: dumux-course-task 2: Develop even grid input parameters that can be split into zones
+# Positions0 = 0 60 +# Positions0 = 0 60
+# Positions1 = 0 40 +# Positions1 = 0 40
+# Cells0 = 24 +# Cells0 = 24
...@@ -90,9 +90,9 @@ diff -ruN exercises/exercise-grids/params.input exercises/solution/exercise-grid ...@@ -90,9 +90,9 @@ diff -ruN exercises/exercise-grids/params.input exercises/solution/exercise-grid
+# Grading0 = 1.0 +# Grading0 = 1.0
+# Grading1 = 1.0 +# Grading1 = 1.0
+ +
# TODO: Task 3: Using the zoning and grading parameters, redevelop your grid to optimize your refinement in the areas that matter. # TODO: dumux-course-task 3: Using the zoning and grading parameters, redevelop your grid to optimize your refinement in the areas that matter.
-# TODO: Task 4: Run your simulation with the provided structured grid file ./grids/grid_structured.msh -# TODO: dumux-course-task 4: Run your simulation with the provided structured grid file ./grids/grid_structured.msh
-# TODO: Task 5: Run your simulation with the provided unstructured grid file ./grids/grid_unstructured.msh -# TODO: dumux-course-task 5: Run your simulation with the provided unstructured grid file ./grids/grid_unstructured.msh
+Positions0 = 0 40 60 +Positions0 = 0 40 60
+Positions1 = 0 25 30 35 40 +Positions1 = 0 25 30 35 40
+Cells0 = 10 14 +Cells0 = 10 14
...@@ -100,18 +100,18 @@ diff -ruN exercises/exercise-grids/params.input exercises/solution/exercise-grid ...@@ -100,18 +100,18 @@ diff -ruN exercises/exercise-grids/params.input exercises/solution/exercise-grid
+Grading0 = 1.0 -1.25 +Grading0 = 1.0 -1.25
+Grading1 = 1.0 -1.2 1.2 1.0 +Grading1 = 1.0 -1.2 1.2 1.0
+ +
+# TODO: Task 4: Run your simulation the provided structured grid file ./grids/grid_structured.msh +# TODO: dumux-course-task 4: Run your simulation the provided structured grid file ./grids/grid_structured.msh
+# File = ./grids/grid_structured.msh +# File = ./grids/grid_structured.msh
+# File = ./grids/grid_structured.dgf +# File = ./grids/grid_structured.dgf
+ +
+# TODO: Task 5: Run your simulation the provided structured grid file ./grids/grid_unstructured.msh +# TODO: dumux-course-task 5: Run your simulation the provided structured grid file ./grids/grid_unstructured.msh
+#File = ./grids/grid_unstructured.msh +#File = ./grids/grid_unstructured.msh
[Problem] [Problem]
Name = grid_exercise Name = grid_exercise
diff -ruN exercises/exercise-grids/properties.hh exercises/solution/exercise-grids/properties.hh diff -ruN exercises/exercise-grids/properties.hh exercises/solution/exercise-grids/properties.hh
--- exercises/exercise-grids/properties.hh 2025-03-03 15:56:59.907625017 +0100 --- exercises/exercise-grids/properties.hh 2025-03-07 11:30:34.875192028 +0100
+++ exercises/solution/exercise-grids/properties.hh 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-grids/properties.hh 2025-03-07 11:30:34.878192008 +0100
@@ -5,9 +5,9 @@ @@ -5,9 +5,9 @@
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// //
...@@ -140,30 +140,30 @@ diff -ruN exercises/exercise-grids/properties.hh exercises/solution/exercise-gri ...@@ -140,30 +140,30 @@ diff -ruN exercises/exercise-grids/properties.hh exercises/solution/exercise-gri
+//Set the grid type +//Set the grid type
+// template<class TypeTag> +// template<class TypeTag>
+// struct Grid<TypeTag, TTag::Injection2p> { using type = Dune::YaspGrid<2>; }; +// struct Grid<TypeTag, TTag::Injection2p> { using type = Dune::YaspGrid<2>; };
+// TODO: Task 2: Replace the above Grid Property definition with a more flexible grid (Use Dune::TensorProductCoordinates) +// TODO: dumux-course-task 2: Replace the above Grid Property definition with a more flexible grid (Use Dune::TensorProductCoordinates)
template<class TypeTag> template<class TypeTag>
-struct Grid<TypeTag, TTag::Injection2p> { using type = Dune::YaspGrid<2>; }; -struct Grid<TypeTag, TTag::Injection2p> { using type = Dune::YaspGrid<2>; };
-// TODO: dumux-course-task 2 -// TODO: dumux-course-task 2:
-//Replace the above Grid Property definition with a more flexible grid (Use Dune::TensorProductCoordinates) -//Replace the above Grid Property definition with a more flexible grid (Use Dune::TensorProductCoordinates)
- -
-// TODO: dumux-course-task 4 -// TODO: dumux-course-task 4:
-// Replace the above Grid Property definition to read in a external structured grid via a .msh file (Use Dune::ALUGrid and Dune:cube) -// Replace the above Grid Property definition to read in a external structured grid via a .msh file (Use Dune::ALUGrid and Dune:cube)
+struct Grid<TypeTag, TTag::Injection2p> { using type = Dune::YaspGrid<2, Dune::TensorProductCoordinates<double, 2> >; }; +struct Grid<TypeTag, TTag::Injection2p> { using type = Dune::YaspGrid<2, Dune::TensorProductCoordinates<double, 2> >; };
-// TODO: dumux-course-task 5 -// TODO: dumux-course-task 5:
-// Replace the above Grid Property definition to read in a external unstructured grid via a .msh file (Use Dune::ALUGrid and Dune::simplex) -// Replace the above Grid Property definition to read in a external unstructured grid via a .msh file (Use Dune::ALUGrid and Dune::simplex)
+// TODO: Task 4: Replace the above Grid Property definition to read in a external structured grid via a .msh file (Use Dune::ALUGrid and Dune:cube) +// TODO: dumux-course-task 4: Replace the above Grid Property definition to read in a external structured grid via a .msh file (Use Dune::ALUGrid and Dune:cube)
+// template<class TypeTag> +// template<class TypeTag>
+// struct Grid<TypeTag, TTag::Injection2p> { using type = Dune::ALUGrid<2, 2, Dune::cube, Dune::nonconforming>; }; +// struct Grid<TypeTag, TTag::Injection2p> { using type = Dune::ALUGrid<2, 2, Dune::cube, Dune::nonconforming>; };
+ +
+// TODO: Task 5: Replace the above Grid Property definition to read in a external unstructured grid via a .msh file (Use Dune::ALUGrid and Dune::simplex) +// TODO: dumux-course-task 5: Replace the above Grid Property definition to read in a external unstructured grid via a .msh file (Use Dune::ALUGrid and Dune::simplex)
+// template<class TypeTag> +// template<class TypeTag>
+// struct Grid<TypeTag, TTag::Injection2p> { using type = Dune::ALUGrid<2, 2, Dune::simplex, Dune::nonconforming>; }; +// struct Grid<TypeTag, TTag::Injection2p> { using type = Dune::ALUGrid<2, 2, Dune::simplex, Dune::nonconforming>; };
// Set the problem property // Set the problem property
template<class TypeTag> template<class TypeTag>
diff -ruN exercises/exercise-grids/README.md exercises/solution/exercise-grids/README.md diff -ruN exercises/exercise-grids/README.md exercises/solution/exercise-grids/README.md
--- exercises/exercise-grids/README.md 2025-03-03 15:23:33.244567689 +0100 --- exercises/exercise-grids/README.md 2025-02-26 11:38:46.808817872 +0100
+++ exercises/solution/exercise-grids/README.md 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-grids/README.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,159 +0,0 @@ @@ -1,159 +0,0 @@
-# Exercise Grids (DuMuX course) -# Exercise Grids (DuMuX course)
......
diff -ruN exercises/exercise-mainfile/CMakeLists.txt exercises/solution/exercise-mainfile/CMakeLists.txt diff -ruN exercises/exercise-mainfile/CMakeLists.txt exercises/solution/exercise-mainfile/CMakeLists.txt
--- exercises/exercise-mainfile/CMakeLists.txt 2025-03-03 15:56:59.907625017 +0100 --- exercises/exercise-mainfile/CMakeLists.txt 2025-03-07 10:42:02.614882967 +0100
+++ exercises/solution/exercise-mainfile/CMakeLists.txt 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-mainfile/CMakeLists.txt 2025-03-07 10:42:02.621882923 +0100
@@ -2,14 +2,9 @@ @@ -2,14 +2,9 @@
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
...@@ -18,17 +18,15 @@ diff -ruN exercises/exercise-mainfile/CMakeLists.txt exercises/solution/exercise ...@@ -18,17 +18,15 @@ diff -ruN exercises/exercise-mainfile/CMakeLists.txt exercises/solution/exercise
+ COMPILE_DEFINITIONS TYPETAG=OnePIncompressible) + COMPILE_DEFINITIONS TYPETAG=OnePIncompressible)
# add a symlink for each input file # add a symlink for each input file
-add_input_file_links() add_input_file_links()
+add_input_file_links()
\ No newline at end of file
diff -ruN exercises/exercise-mainfile/exercise1pamain.cc exercises/solution/exercise-mainfile/exercise1pamain.cc diff -ruN exercises/exercise-mainfile/exercise1pamain.cc exercises/solution/exercise-mainfile/exercise1pamain.cc
--- exercises/exercise-mainfile/exercise1pamain.cc 2025-03-03 15:56:59.907625017 +0100 --- exercises/exercise-mainfile/exercise1pamain.cc 2025-03-07 11:30:34.875192028 +0100
+++ exercises/solution/exercise-mainfile/exercise1pamain.cc 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-mainfile/exercise1pamain.cc 1970-01-01 01:00:00.000000000 +0100
@@ -1,130 +0,0 @@ @@ -1,130 +0,0 @@
-// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
-// vi: set et ts=4 sw=4 sts=4: -// vi: set et ts=4 sw=4 sts=4:
-// -//
-// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder -// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
-// SPDX-License-Identifier: GPL-3.0-or-later -// SPDX-License-Identifier: GPL-3.0-or-later
-// -//
-/*! -/*!
...@@ -114,7 +112,7 @@ diff -ruN exercises/exercise-mainfile/exercise1pamain.cc exercises/solution/exer ...@@ -114,7 +112,7 @@ diff -ruN exercises/exercise-mainfile/exercise1pamain.cc exercises/solution/exer
- -
- Dune::Timer timer; - Dune::Timer timer;
- -
- // TODO: dumux-course-task 3 - // TODO: dumux-course-task 3:
- // Change the differentiation method to analytic by changing from DiffMethod::numeric to DiffMethod::analytic - // Change the differentiation method to analytic by changing from DiffMethod::numeric to DiffMethod::analytic
- -
- // the assembler for stationary problems - // the assembler for stationary problems
...@@ -157,12 +155,12 @@ diff -ruN exercises/exercise-mainfile/exercise1pamain.cc exercises/solution/exer ...@@ -157,12 +155,12 @@ diff -ruN exercises/exercise-mainfile/exercise1pamain.cc exercises/solution/exer
-}// end main -}// end main
diff -ruN exercises/exercise-mainfile/exercise1pa_solution_main.cc exercises/solution/exercise-mainfile/exercise1pa_solution_main.cc 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/exercise-mainfile/exercise1pa_solution_main.cc 1970-01-01 01:00:00.000000000 +0100
+++ exercises/solution/exercise-mainfile/exercise1pa_solution_main.cc 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-mainfile/exercise1pa_solution_main.cc 2025-03-07 11:30:34.878192008 +0100
@@ -0,0 +1,130 @@ @@ -0,0 +1,130 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4: +// vi: set et ts=4 sw=4 sts=4:
+// +//
+// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder +// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
+// SPDX-License-Identifier: GPL-3.0-or-later +// SPDX-License-Identifier: GPL-3.0-or-later
+// +//
+/*! +/*!
...@@ -248,7 +246,7 @@ diff -ruN exercises/exercise-mainfile/exercise1pa_solution_main.cc exercises/sol ...@@ -248,7 +246,7 @@ diff -ruN exercises/exercise-mainfile/exercise1pa_solution_main.cc exercises/sol
+ +
+ Dune::Timer timer; + Dune::Timer timer;
+ +
+ // TODO: dumux-course-task 3 + // TODO: dumux-course-task 3:
+ // Change the differentiation method to analytic by changing from DiffMethod::numeric to DiffMethod::analytic + // Change the differentiation method to analytic by changing from DiffMethod::numeric to DiffMethod::analytic
+ +
+ // the assembler for stationary problems + // the assembler for stationary problems
...@@ -290,13 +288,13 @@ diff -ruN exercises/exercise-mainfile/exercise1pa_solution_main.cc exercises/sol ...@@ -290,13 +288,13 @@ diff -ruN exercises/exercise-mainfile/exercise1pa_solution_main.cc exercises/sol
+ +
+}// end main +}// end main
diff -ruN exercises/exercise-mainfile/exercise1pbmain.cc exercises/solution/exercise-mainfile/exercise1pbmain.cc diff -ruN exercises/exercise-mainfile/exercise1pbmain.cc exercises/solution/exercise-mainfile/exercise1pbmain.cc
--- exercises/exercise-mainfile/exercise1pbmain.cc 2025-03-03 15:56:59.907625017 +0100 --- exercises/exercise-mainfile/exercise1pbmain.cc 2025-03-07 10:42:02.614882967 +0100
+++ exercises/solution/exercise-mainfile/exercise1pbmain.cc 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-mainfile/exercise1pbmain.cc 1970-01-01 01:00:00.000000000 +0100
@@ -1,120 +0,0 @@ @@ -1,120 +0,0 @@
-// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
-// vi: set et ts=4 sw=4 sts=4: -// vi: set et ts=4 sw=4 sts=4:
-// -//
-// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder -// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
-// SPDX-License-Identifier: GPL-3.0-or-later -// SPDX-License-Identifier: GPL-3.0-or-later
-// -//
-/*! -/*!
...@@ -414,13 +412,13 @@ diff -ruN exercises/exercise-mainfile/exercise1pbmain.cc exercises/solution/exer ...@@ -414,13 +412,13 @@ diff -ruN exercises/exercise-mainfile/exercise1pbmain.cc exercises/solution/exer
- -
-}// end main -}// end main
diff -ruN exercises/exercise-mainfile/exercise1pcmain.cc exercises/solution/exercise-mainfile/exercise1pcmain.cc diff -ruN exercises/exercise-mainfile/exercise1pcmain.cc exercises/solution/exercise-mainfile/exercise1pcmain.cc
--- exercises/exercise-mainfile/exercise1pcmain.cc 2025-03-03 15:56:59.908625000 +0100 --- exercises/exercise-mainfile/exercise1pcmain.cc 2025-03-07 10:42:02.614882967 +0100
+++ exercises/solution/exercise-mainfile/exercise1pcmain.cc 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-mainfile/exercise1pcmain.cc 1970-01-01 01:00:00.000000000 +0100
@@ -1,146 +0,0 @@ @@ -1,146 +0,0 @@
-// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
-// vi: set et ts=4 sw=4 sts=4: -// vi: set et ts=4 sw=4 sts=4:
-// -//
-// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder -// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
-// SPDX-License-Identifier: GPL-3.0-or-later -// SPDX-License-Identifier: GPL-3.0-or-later
-// -//
-/*! -/*!
...@@ -564,9 +562,9 @@ diff -ruN exercises/exercise-mainfile/exercise1pcmain.cc exercises/solution/exer ...@@ -564,9 +562,9 @@ diff -ruN exercises/exercise-mainfile/exercise1pcmain.cc exercises/solution/exer
- -
-}// end main -}// end main
diff -ruN exercises/exercise-mainfile/exercise_mainfile_a.input exercises/solution/exercise-mainfile/exercise_mainfile_a.input diff -ruN exercises/exercise-mainfile/exercise_mainfile_a.input exercises/solution/exercise-mainfile/exercise_mainfile_a.input
--- exercises/exercise-mainfile/exercise_mainfile_a.input 2024-07-11 13:35:11.652137556 +0200 --- exercises/exercise-mainfile/exercise_mainfile_a.input 2025-03-07 11:30:34.875192028 +0100
+++ exercises/solution/exercise-mainfile/exercise_mainfile_a.input 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-mainfile/exercise_mainfile_a.input 1970-01-01 01:00:00.000000000 +0100
@@ -1,18 +0,0 @@ @@ -1,19 +0,0 @@
-[Grid] -[Grid]
-LowerLeft = 0 0 -LowerLeft = 0 0
-UpperRight = 1 1 -UpperRight = 1 1
...@@ -584,10 +582,11 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_a.input exercises/soluti ...@@ -584,10 +582,11 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_a.input exercises/soluti
- -
-[Assembly.NumericDifference] -[Assembly.NumericDifference]
-PriVarMagnitude = 1e5 -PriVarMagnitude = 1e5
-# TODO: dumux-course-task 3: Change BaseEpsilon to a smaller value 1e-15
-BaseEpsilon = 1e-10 -BaseEpsilon = 1e-10
diff -ruN exercises/exercise-mainfile/exercise_mainfile_a_solution.input exercises/solution/exercise-mainfile/exercise_mainfile_a_solution.input 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/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-03-03 15:23:33.247567621 +0100 +++ exercises/solution/exercise-mainfile/exercise_mainfile_a_solution.input 2025-02-26 11:38:46.847816086 +0100
@@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
+[Grid] +[Grid]
+LowerLeft = 0 0 +LowerLeft = 0 0
...@@ -608,7 +607,7 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_a_solution.input exercis ...@@ -608,7 +607,7 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_a_solution.input exercis
+PriVarMagnitude = 1e5 +PriVarMagnitude = 1e5
+BaseEpsilon = 1e-10 +BaseEpsilon = 1e-10
diff -ruN exercises/exercise-mainfile/exercise_mainfile_b.input exercises/solution/exercise-mainfile/exercise_mainfile_b.input diff -ruN exercises/exercise-mainfile/exercise_mainfile_b.input exercises/solution/exercise-mainfile/exercise_mainfile_b.input
--- exercises/exercise-mainfile/exercise_mainfile_b.input 2024-07-11 13:35:11.652137556 +0200 --- exercises/exercise-mainfile/exercise_mainfile_b.input 2025-02-26 11:38:46.810817780 +0100
+++ exercises/solution/exercise-mainfile/exercise_mainfile_b.input 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-mainfile/exercise_mainfile_b.input 1970-01-01 01:00:00.000000000 +0100
@@ -1,17 +0,0 @@ @@ -1,17 +0,0 @@
-[Grid] -[Grid]
...@@ -629,7 +628,7 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_b.input exercises/soluti ...@@ -629,7 +628,7 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_b.input exercises/soluti
-[Assembly.NumericDifference] -[Assembly.NumericDifference]
-PriVarMagnitude = 1e5 -PriVarMagnitude = 1e5
diff -ruN exercises/exercise-mainfile/exercise_mainfile_c.input exercises/solution/exercise-mainfile/exercise_mainfile_c.input 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-03-03 15:23:33.245567666 +0100 --- exercises/exercise-mainfile/exercise_mainfile_c.input 2025-02-26 11:38:46.810817780 +0100
+++ exercises/solution/exercise-mainfile/exercise_mainfile_c.input 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-mainfile/exercise_mainfile_c.input 1970-01-01 01:00:00.000000000 +0100
@@ -1,21 +0,0 @@ @@ -1,21 +0,0 @@
-[TimeLoop] -[TimeLoop]
...@@ -654,12 +653,12 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_c.input exercises/soluti ...@@ -654,12 +653,12 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_c.input exercises/soluti
-[Assembly.NumericDifference] -[Assembly.NumericDifference]
-PriVarMagnitude = 1e5 -PriVarMagnitude = 1e5
diff -ruN exercises/exercise-mainfile/properties.hh exercises/solution/exercise-mainfile/properties.hh diff -ruN exercises/exercise-mainfile/properties.hh exercises/solution/exercise-mainfile/properties.hh
--- exercises/exercise-mainfile/properties.hh 2025-03-03 15:56:59.908625000 +0100 --- exercises/exercise-mainfile/properties.hh 2025-03-07 11:30:34.875192028 +0100
+++ exercises/solution/exercise-mainfile/properties.hh 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-mainfile/properties.hh 2025-03-07 11:30:34.878192008 +0100
@@ -25,8 +25,8 @@ @@ -25,8 +25,8 @@
#include <dumux/porousmediumflow/1p/model.hh> #include <dumux/porousmediumflow/1p/model.hh>
// TODO: dumux-course-task 3 // TODO: dumux-course-task 3:
-// uncomment the incompressiblelocalresidual which is a specialization of the standard immiscible localresidual for one phase incompressible cases and provides an analytic jacobian. -// uncomment the incompressiblelocalresidual which is a specialization of the standard immiscible localresidual for one phase incompressible cases and provides an analytic jacobian.
-// #include <dumux/porousmediumflow/1p/incompressiblelocalresidual.hh> -// #include <dumux/porousmediumflow/1p/incompressiblelocalresidual.hh>
+// uncomment the incompressiblelocalresidual which is a specialization of the standard immisible localresidual for one phase incompressible cases and provides an analytic jacobian. +// uncomment the incompressiblelocalresidual which is a specialization of the standard immisible localresidual for one phase incompressible cases and provides an analytic jacobian.
...@@ -669,7 +668,7 @@ diff -ruN exercises/exercise-mainfile/properties.hh exercises/solution/exercise- ...@@ -669,7 +668,7 @@ diff -ruN exercises/exercise-mainfile/properties.hh exercises/solution/exercise-
#include "1pproblem.hh" #include "1pproblem.hh"
@@ -68,8 +68,8 @@ @@ -68,8 +68,8 @@
// TODO: dumux-course-task 3 // TODO: dumux-course-task 3:
// set the OneP Incompressible local residual for the OnePIncompressible type tag. This provides an analytic jacobian to be used for the analytic solution. Change that by setting: // set the OneP Incompressible local residual for the OnePIncompressible type tag. This provides an analytic jacobian to be used for the analytic solution. Change that by setting:
-// template<class TypeTag> -// template<class TypeTag>
-// struct LocalResidual<TypeTag, TTag::OnePIncompressible> { using type = OnePIncompressibleLocalResidual<TypeTag>; }; -// struct LocalResidual<TypeTag, TTag::OnePIncompressible> { using type = OnePIncompressibleLocalResidual<TypeTag>; };
...@@ -679,7 +678,7 @@ diff -ruN exercises/exercise-mainfile/properties.hh exercises/solution/exercise- ...@@ -679,7 +678,7 @@ diff -ruN exercises/exercise-mainfile/properties.hh exercises/solution/exercise-
// the fluid system for compressible tests // the fluid system for compressible tests
diff -ruN exercises/exercise-mainfile/README.md exercises/solution/exercise-mainfile/README.md diff -ruN exercises/exercise-mainfile/README.md exercises/solution/exercise-mainfile/README.md
--- exercises/exercise-mainfile/README.md 2025-03-03 15:23:33.245567666 +0100 --- exercises/exercise-mainfile/README.md 2025-03-07 10:34:20.586089939 +0100
+++ exercises/solution/exercise-mainfile/README.md 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-mainfile/README.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,196 +0,0 @@ @@ -1,196 +0,0 @@
-# Exercise Mainfiles (DuMuX course) -# Exercise Mainfiles (DuMuX course)
......
diff -ruN exercises/exercise-model/CMakeLists.txt exercises/solution/exercise-model/CMakeLists.txt diff -ruN exercises/exercise-model/CMakeLists.txt exercises/solution/exercise-model/CMakeLists.txt
--- exercises/exercise-model/CMakeLists.txt 2025-03-03 15:56:59.908625000 +0100 --- exercises/exercise-model/CMakeLists.txt 2025-03-07 10:42:02.615882961 +0100
+++ exercises/solution/exercise-model/CMakeLists.txt 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-model/CMakeLists.txt 2025-03-07 10:42:02.621882923 +0100
@@ -3,5 +3,5 @@ @@ -3,5 +3,5 @@
dune_symlink_to_source_files(FILES images params.input) dune_symlink_to_source_files(FILES images params.input)
...@@ -9,31 +9,31 @@ diff -ruN exercises/exercise-model/CMakeLists.txt exercises/solution/exercise-mo ...@@ -9,31 +9,31 @@ diff -ruN exercises/exercise-model/CMakeLists.txt exercises/solution/exercise-mo
+dumux_add_test(NAME exercise_nonlineardiffusion_sol +dumux_add_test(NAME exercise_nonlineardiffusion_sol
SOURCES main.cc) SOURCES main.cc)
diff -ruN exercises/exercise-model/main.cc exercises/solution/exercise-model/main.cc diff -ruN exercises/exercise-model/main.cc exercises/solution/exercise-model/main.cc
--- exercises/exercise-model/main.cc 2025-03-03 15:56:59.908625000 +0100 --- exercises/exercise-model/main.cc 2025-03-07 11:30:34.876192021 +0100
+++ exercises/solution/exercise-model/main.cc 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-model/main.cc 2025-03-07 11:30:34.878192008 +0100
@@ -29,6 +29,8 @@ @@ -30,6 +30,7 @@
#include <dumux/nonlinear/newtonsolver.hh>
#include <dumux/assembly/fvassembler.hh> #include <dumux/assembly/fvassembler.hh>
// TODO: dumux-course-task 3.1: include the header model.hh
+#include "model.hh" +#include "model.hh"
+
/*! /*!
* \ingroup NonlinearDiffusion * \ingroup NonlinearDiffusion
* \brief Test problem for image denoising using a nonlinear diffusion model @@ -79,8 +80,8 @@
@@ -78,7 +80,7 @@
struct NonlinearDiffusionTest struct NonlinearDiffusionTest
{ {
// TODO: We need to set our model by replacing ModelTypeTag - // TODO: dumux-course-task 3.1: we need to set our model by replacing ModelTypeTag
- using InheritsFrom = std::tuple</*ModelTypeTag,*/BoxModel>; - using InheritsFrom = std::tuple</*ModelTypeTag,*/BoxModel>;
+ // TODO: dumux-course-task 3.1: We need to set our model by replacing ModelTypeTag
+ using InheritsFrom = std::tuple<NonlinearDiffusionModel, BoxModel>; + using InheritsFrom = std::tuple<NonlinearDiffusionModel, BoxModel>;
using Scalar = double; using Scalar = double;
using Grid = Dune::YaspGrid<2>; using Grid = Dune::YaspGrid<2>;
@@ -136,63 +138,62 @@ @@ -139,62 +140,62 @@
// the problem for the boundary conditions, a solution vector and a grid variables instance.
auto gridGeometry = std::make_shared<GridGeometry>(gridManager.grid().leafGridView()); auto gridGeometry = std::make_shared<GridGeometry>(gridManager.grid().leafGridView());
- // TODO: Uncomment when the model is implemented // TODO: dumux-course-task 3.2: uncomment when the model is implemented
- // using Scalar = GetPropType<TypeTag, Properties::Scalar>; - // using Scalar = GetPropType<TypeTag, Properties::Scalar>;
- // using Problem = GetPropType<TypeTag, Properties::Problem>; - // using Problem = GetPropType<TypeTag, Properties::Problem>;
- // using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>; - // using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
...@@ -148,12 +148,12 @@ diff -ruN exercises/exercise-model/main.cc exercises/solution/exercise-model/mai ...@@ -148,12 +148,12 @@ diff -ruN exercises/exercise-model/main.cc exercises/solution/exercise-model/mai
}// end main }// end main
diff -ruN exercises/exercise-model/model.hh exercises/solution/exercise-model/model.hh 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/exercise-model/model.hh 1970-01-01 01:00:00.000000000 +0100
+++ exercises/solution/exercise-model/model.hh 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-model/model.hh 2025-03-07 10:42:02.622882916 +0100
@@ -0,0 +1,210 @@ @@ -0,0 +1,210 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4: +// vi: set et ts=4 sw=4 sts=4:
+// +//
+// SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder +// SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
+// SPDX-License-Identifier: GPL-3.0-or-later +// SPDX-License-Identifier: GPL-3.0-or-later
+// +//
+ +
...@@ -361,7 +361,7 @@ diff -ruN exercises/exercise-model/model.hh exercises/solution/exercise-model/mo ...@@ -361,7 +361,7 @@ diff -ruN exercises/exercise-model/model.hh exercises/solution/exercise-model/mo
+ +
+#endif +#endif
diff -ruN exercises/exercise-model/README.md exercises/solution/exercise-model/README.md diff -ruN exercises/exercise-model/README.md exercises/solution/exercise-model/README.md
--- exercises/exercise-model/README.md 2025-03-03 15:23:33.245567666 +0100 --- exercises/exercise-model/README.md 2025-03-07 11:30:34.876192021 +0100
+++ exercises/solution/exercise-model/README.md 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-model/README.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,195 +0,0 @@ @@ -1,195 +0,0 @@
-# Exercise Model (DuMuX course) -# Exercise Model (DuMuX course)
...@@ -451,7 +451,7 @@ diff -ruN exercises/exercise-model/README.md exercises/solution/exercise-model/R ...@@ -451,7 +451,7 @@ diff -ruN exercises/exercise-model/README.md exercises/solution/exercise-model/R
- -
-struct NonlinearDiffusionTest -struct NonlinearDiffusionTest
-{ -{
- // TODO: Set new model by replacing ModelTypeTag - // TODO: dumux-course-task 3.1: Set new model by replacing ModelTypeTag
- using InheritsFrom = std::tuple</*ModelTypeTag,*/BoxModel>; - using InheritsFrom = std::tuple</*ModelTypeTag,*/BoxModel>;
- -
- // Further property definitions - // Further property definitions
......
diff -ruN exercises/exercise-properties/CMakeLists.txt exercises/solution/exercise-properties/CMakeLists.txt diff -ruN exercises/exercise-properties/CMakeLists.txt exercises/solution/exercise-properties/CMakeLists.txt
--- exercises/exercise-properties/CMakeLists.txt 2025-03-03 15:56:59.908625000 +0100 --- exercises/exercise-properties/CMakeLists.txt 2025-03-07 10:42:02.615882961 +0100
+++ exercises/solution/exercise-properties/CMakeLists.txt 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-properties/CMakeLists.txt 2025-03-07 10:42:02.622882916 +0100
@@ -1,8 +1,8 @@ @@ -1,8 +1,8 @@
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
-# the property exercise simulation program -# the property exercise simulation program
...@@ -13,13 +13,13 @@ diff -ruN exercises/exercise-properties/CMakeLists.txt exercises/solution/exerci ...@@ -13,13 +13,13 @@ diff -ruN exercises/exercise-properties/CMakeLists.txt exercises/solution/exerci
# add a symlink for each input file # add a symlink for each input file
diff -ruN exercises/exercise-properties/mylocalresidual.hh exercises/solution/exercise-properties/mylocalresidual.hh diff -ruN exercises/exercise-properties/mylocalresidual.hh exercises/solution/exercise-properties/mylocalresidual.hh
--- exercises/exercise-properties/mylocalresidual.hh 2025-03-03 17:31:36.070153804 +0100 --- exercises/exercise-properties/mylocalresidual.hh 2025-03-07 11:30:34.876192021 +0100
+++ exercises/solution/exercise-properties/mylocalresidual.hh 2025-03-03 17:31:30.340377693 +0100 +++ exercises/solution/exercise-properties/mylocalresidual.hh 2025-03-07 10:42:02.622882916 +0100
@@ -59,8 +59,6 @@ @@ -59,8 +59,6 @@
* \note The volVars can be different to allow computing * \note The volVars can be different to allow computing
* the implicit euler time derivative here * the implicit euler time derivative here
*/ */
- // TODO: dumux-course-task 3 - // TODO: dumux-course-task 3:
- // Eliminate density from the storage term - // Eliminate density from the storage term
NumEqVector computeStorage(const Problem& problem, NumEqVector computeStorage(const Problem& problem,
const SubControlVolume& scv, const SubControlVolume& scv,
...@@ -36,7 +36,7 @@ diff -ruN exercises/exercise-properties/mylocalresidual.hh exercises/solution/ex ...@@ -36,7 +36,7 @@ diff -ruN exercises/exercise-properties/mylocalresidual.hh exercises/solution/ex
* \param scvf The sub control volume face to compute the flux on * \param scvf The sub control volume face to compute the flux on
* \param elemFluxVarsCache The cache related to flux computation * \param elemFluxVarsCache The cache related to flux computation
*/ */
- // TODO: dumux-course-task - // TODO: dumux-course-task 3:
- // Eliminate the density from the flux term - // Eliminate the density from the flux term
NumEqVector computeFlux(const Problem& problem, NumEqVector computeFlux(const Problem& problem,
const Element& element, const Element& element,
...@@ -51,8 +51,8 @@ diff -ruN exercises/exercise-properties/mylocalresidual.hh exercises/solution/ex ...@@ -51,8 +51,8 @@ diff -ruN exercises/exercise-properties/mylocalresidual.hh exercises/solution/ex
auto eqIdx = conti0EqIdx + phaseIdx; auto eqIdx = conti0EqIdx + phaseIdx;
flux[eqIdx] = fluxVars.advectiveFlux(phaseIdx, upwindTerm); flux[eqIdx] = fluxVars.advectiveFlux(phaseIdx, upwindTerm);
diff -ruN exercises/exercise-properties/problem.hh exercises/solution/exercise-properties/problem.hh diff -ruN exercises/exercise-properties/problem.hh exercises/solution/exercise-properties/problem.hh
--- exercises/exercise-properties/problem.hh 2025-03-03 15:56:59.908625000 +0100 --- exercises/exercise-properties/problem.hh 2025-03-07 11:30:34.876192021 +0100
+++ exercises/solution/exercise-properties/problem.hh 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-properties/problem.hh 2025-03-07 10:42:02.622882916 +0100
@@ -11,6 +11,7 @@ @@ -11,6 +11,7 @@
#ifndef DUMUX_INCOMPRESSIBLE_TWOP_TEST_PROBLEM_HH #ifndef DUMUX_INCOMPRESSIBLE_TWOP_TEST_PROBLEM_HH
#define DUMUX_INCOMPRESSIBLE_TWOP_TEST_PROBLEM_HH #define DUMUX_INCOMPRESSIBLE_TWOP_TEST_PROBLEM_HH
...@@ -65,7 +65,7 @@ diff -ruN exercises/exercise-properties/problem.hh exercises/solution/exercise-p ...@@ -65,7 +65,7 @@ diff -ruN exercises/exercise-properties/problem.hh exercises/solution/exercise-p
*/ */
NumEqVector neumannAtPos(const GlobalPosition &globalPos) const NumEqVector neumannAtPos(const GlobalPosition &globalPos) const
{ {
-// TODO: reformulate the neumann boundary condition's values in terms of volume instead of mass injected per meter and second -// TODO: dumux-course-task 3: reformulate the neumann boundary condition's values in terms of volume instead of mass injected per meter and second
NumEqVector values(0.0); NumEqVector values(0.0);
if (onInlet_(globalPos)) if (onInlet_(globalPos))
- values[contiDNAPLEqIdx] = -0.04; // kg / (m * s) - values[contiDNAPLEqIdx] = -0.04; // kg / (m * s)
...@@ -77,14 +77,14 @@ diff -ruN exercises/exercise-properties/problem.hh exercises/solution/exercise-p ...@@ -77,14 +77,14 @@ diff -ruN exercises/exercise-properties/problem.hh exercises/solution/exercise-p
return values; return values;
} }
diff -ruN exercises/exercise-properties/properties.hh exercises/solution/exercise-properties/properties.hh diff -ruN exercises/exercise-properties/properties.hh exercises/solution/exercise-properties/properties.hh
--- exercises/exercise-properties/properties.hh 2025-03-03 15:56:59.908625000 +0100 --- exercises/exercise-properties/properties.hh 2025-03-07 11:30:34.876192021 +0100
+++ exercises/solution/exercise-properties/properties.hh 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-properties/properties.hh 2025-03-07 10:42:02.622882916 +0100
@@ -27,9 +27,7 @@ @@ -27,9 +27,7 @@
#include "spatialparams.hh" #include "spatialparams.hh"
#include "problem.hh" #include "problem.hh"
- -
-// TODO: dumux-course-task 3 -// TODO: dumux-course-task 3:
-// Include the local residual header -// Include the local residual header
+#include "mylocalresidual.hh" +#include "mylocalresidual.hh"
...@@ -94,7 +94,7 @@ diff -ruN exercises/exercise-properties/properties.hh exercises/solution/exercis ...@@ -94,7 +94,7 @@ diff -ruN exercises/exercise-properties/properties.hh exercises/solution/exercis
template<class TypeTag> template<class TypeTag>
struct Problem<TypeTag, TTag::TwoPIncompressible> { using type = TwoPTestProblem<TypeTag>; }; struct Problem<TypeTag, TTag::TwoPIncompressible> { using type = TwoPTestProblem<TypeTag>; };
-// TODO: dumux-course-task 3 -// TODO: dumux-course-task 3:
-// Use MyLocalResidual as LocalResidual -// Use MyLocalResidual as LocalResidual
- -
+template<class TypeTag> +template<class TypeTag>
...@@ -103,7 +103,7 @@ diff -ruN exercises/exercise-properties/properties.hh exercises/solution/exercis ...@@ -103,7 +103,7 @@ diff -ruN exercises/exercise-properties/properties.hh exercises/solution/exercis
// Set the fluid system // Set the fluid system
template<class TypeTag> template<class TypeTag>
diff -ruN exercises/exercise-properties/README.md exercises/solution/exercise-properties/README.md diff -ruN exercises/exercise-properties/README.md exercises/solution/exercise-properties/README.md
--- exercises/exercise-properties/README.md 2024-07-11 13:35:11.652137556 +0200 --- exercises/exercise-properties/README.md 2025-02-26 11:38:46.811817734 +0100
+++ exercises/solution/exercise-properties/README.md 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-properties/README.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,75 +0,0 @@ @@ -1,75 +0,0 @@
-# Exercise Properties (DuMuX course) -# Exercise Properties (DuMuX course)
......
diff -ruN exercises/exercise-runtimeparams/CMakeLists.txt exercises/solution/exercise-runtimeparams/CMakeLists.txt diff -ruN exercises/exercise-runtimeparams/CMakeLists.txt exercises/solution/exercise-runtimeparams/CMakeLists.txt
--- exercises/exercise-runtimeparams/CMakeLists.txt 2025-03-03 15:56:59.908625000 +0100 --- exercises/exercise-runtimeparams/CMakeLists.txt 2025-03-07 10:42:02.616882954 +0100
+++ exercises/solution/exercise-runtimeparams/CMakeLists.txt 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-runtimeparams/CMakeLists.txt 2025-03-07 10:42:02.622882916 +0100
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
...@@ -11,36 +11,37 @@ diff -ruN exercises/exercise-runtimeparams/CMakeLists.txt exercises/solution/exe ...@@ -11,36 +11,37 @@ diff -ruN exercises/exercise-runtimeparams/CMakeLists.txt exercises/solution/exe
# add a symlink for each input file # add a symlink for each input file
diff -ruN exercises/exercise-runtimeparams/params.input exercises/solution/exercise-runtimeparams/params.input diff -ruN exercises/exercise-runtimeparams/params.input exercises/solution/exercise-runtimeparams/params.input
--- exercises/exercise-runtimeparams/params.input 2024-07-11 13:35:11.652137556 +0200 --- exercises/exercise-runtimeparams/params.input 2025-03-07 11:30:34.876192021 +0100
+++ exercises/solution/exercise-runtimeparams/params.input 2025-03-03 15:23:33.247567621 +0100 +++ exercises/solution/exercise-runtimeparams/params.input 2025-03-07 11:30:34.878192008 +0100
@@ -12,11 +12,12 @@ @@ -12,12 +12,12 @@
AquiferDepth = 2700.0 # m AquiferDepth = 2700.0 # m
InjectionDuration = 2.628e6 # in seconds, i.e. one month InjectionDuration = 2.628e6 # in seconds, i.e. one month
# TODO: Task 2: Create a parameter called "TotalAreaSpecificInflow" # TODO: dumux-course-task 2: Create a parameter called "TotalAreaSpecificInflow"
-# TODO: dumux-course-task 3: Run the case with and without a provided value in the input file for "TotalAreaSpecificInflow"
+TotalAreaSpecificInflow = -1e-4 # kg/(s m^2) +TotalAreaSpecificInflow = -1e-4 # kg/(s m^2)
[SpatialParams] [SpatialParams]
PermeabilityAquitard = 1e-15 # m^2 PermeabilityAquitard = 1e-15 # m^2
# TODO: Task 1: Change the Aquitard's Entry Pressure # TODO: dumux-course-task 1: Change the Aquitard's Entry Pressure
-Aquitard.BrooksCoreyPcEntry = 4.5e4 # Pa -Aquitard.BrooksCoreyPcEntry = 4.5e4 # Pa
+Aquitard.BrooksCoreyPcEntry = 4.5e3 # Pa +Aquitard.BrooksCoreyPcEntry = 4.5e3 # Pa
Aquitard.BrooksCoreyLambda = 2.0 Aquitard.BrooksCoreyLambda = 2.0
Aquitard.Swr = 0.2 Aquitard.Swr = 0.2
Aquitard.Snr = 0.0 Aquitard.Snr = 0.0
diff -ruN exercises/exercise-runtimeparams/problem.hh exercises/solution/exercise-runtimeparams/problem.hh diff -ruN exercises/exercise-runtimeparams/problem.hh exercises/solution/exercise-runtimeparams/problem.hh
--- exercises/exercise-runtimeparams/problem.hh 2025-03-03 15:56:59.909624983 +0100 --- exercises/exercise-runtimeparams/problem.hh 2025-03-07 11:30:34.877192015 +0100
+++ exercises/solution/exercise-runtimeparams/problem.hh 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-runtimeparams/problem.hh 2025-03-07 11:30:34.879192001 +0100
@@ -81,12 +81,16 @@ @@ -81,12 +81,16 @@
injectionDuration_ = getParamFromGroup<Scalar>("Problem","InjectionDuration"); injectionDuration_ = getParamFromGroup<Scalar>("Problem","InjectionDuration");
// TODO: dumux-course-task 2 // TODO: dumux-course-task 2:
// Set a variable "TotalAreaSpecificInflow" to read in a value from the parameter tree via the input file // Set a variable "TotalAreaSpecificInflow" to read in a value from the parameter tree via the input file
- -
+ totalAreaSpecificInflow_ = getParam<Scalar>("Problem.TotalAreaSpecificInflow"); + totalAreaSpecificInflow_ = getParam<Scalar>("Problem.TotalAreaSpecificInflow");
// TODO: dumux-course-task 3 // TODO: dumux-course-task 3:
// Set a default value for the above parameter. // Set a default value for the above parameter.
- -
+ // totalAreaSpecificInflow_ = getParam<Scalar>("Problem.TotalAreaSpecificInflow", -1e-4); + // totalAreaSpecificInflow_ = getParam<Scalar>("Problem.TotalAreaSpecificInflow", -1e-4);
// TODO: dumux-course-task 4 // TODO: dumux-course-task 4:
// Provide output describing where the parameter value comes from using parameter bool functions. // Provide output describing where the parameter value comes from using parameter bool functions.
+ // if (hasParamInGroup("Problem","TotalAreaSpecificInflow")) + // if (hasParamInGroup("Problem","TotalAreaSpecificInflow"))
+ // std::cout << "Parameter value is read from the input file." << std::endl; + // std::cout << "Parameter value is read from the input file." << std::endl;
...@@ -51,7 +52,7 @@ diff -ruN exercises/exercise-runtimeparams/problem.hh exercises/solution/exercis ...@@ -51,7 +52,7 @@ diff -ruN exercises/exercise-runtimeparams/problem.hh exercises/solution/exercis
@@ -149,7 +153,7 @@ @@ -149,7 +153,7 @@
// units kg/(s*m^2) // units kg/(s*m^2)
// TODO: dumux-course-task 2 // TODO: dumux-course-task 2:
// Incorporate "totalAreaSpecificInflow_" into the injection boundary condition // Incorporate "totalAreaSpecificInflow_" into the injection boundary condition
- values[Indices::conti0EqIdx + FluidSystem::N2Idx]= -1e-4; - values[Indices::conti0EqIdx + FluidSystem::N2Idx]= -1e-4;
+ values[Indices::conti0EqIdx + FluidSystem::N2Idx] = totalAreaSpecificInflow_; + values[Indices::conti0EqIdx + FluidSystem::N2Idx] = totalAreaSpecificInflow_;
...@@ -60,15 +61,15 @@ diff -ruN exercises/exercise-runtimeparams/problem.hh exercises/solution/exercis ...@@ -60,15 +61,15 @@ diff -ruN exercises/exercise-runtimeparams/problem.hh exercises/solution/exercis
@@ -204,6 +208,7 @@ @@ -204,6 +208,7 @@
Scalar injectionDuration_; //! Duration of the injection in seconds Scalar injectionDuration_; //! Duration of the injection in seconds
// TODO: dumux-course-task 2 // TODO: dumux-course-task 2:
// Set a variable "totalAreaSpecificInflow_" to read in a value from the parameter tree via the input file // Set a variable "totalAreaSpecificInflow_" to read in a value from the parameter tree via the input file
+ Scalar totalAreaSpecificInflow_; //! Rate of the Injection in kg/(s m^2) + Scalar totalAreaSpecificInflow_; //! Rate of the Injection in kg/(s m^2)
Scalar time_; Scalar time_;
}; };
diff -ruN exercises/exercise-runtimeparams/properties.hh exercises/solution/exercise-runtimeparams/properties.hh diff -ruN exercises/exercise-runtimeparams/properties.hh exercises/solution/exercise-runtimeparams/properties.hh
--- exercises/exercise-runtimeparams/properties.hh 2025-03-03 15:56:59.909624983 +0100 --- exercises/exercise-runtimeparams/properties.hh 2025-03-07 10:42:02.616882954 +0100
+++ exercises/solution/exercise-runtimeparams/properties.hh 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-runtimeparams/properties.hh 2025-03-07 10:42:02.623882910 +0100
@@ -58,6 +58,6 @@ @@ -58,6 +58,6 @@
FluidSystems::H2ON2DefaultPolicy</*fastButSimplifiedRelations=*/ true> >; FluidSystems::H2ON2DefaultPolicy</*fastButSimplifiedRelations=*/ true> >;
}; };
...@@ -78,7 +79,7 @@ diff -ruN exercises/exercise-runtimeparams/properties.hh exercises/solution/exer ...@@ -78,7 +79,7 @@ diff -ruN exercises/exercise-runtimeparams/properties.hh exercises/solution/exer
#endif #endif
diff -ruN exercises/exercise-runtimeparams/README.md exercises/solution/exercise-runtimeparams/README.md diff -ruN exercises/exercise-runtimeparams/README.md exercises/solution/exercise-runtimeparams/README.md
--- exercises/exercise-runtimeparams/README.md 2025-03-03 15:23:33.245567666 +0100 --- exercises/exercise-runtimeparams/README.md 2025-02-26 11:38:46.811817734 +0100
+++ exercises/solution/exercise-runtimeparams/README.md 1970-01-01 01:00:00.000000000 +0100 +++ exercises/solution/exercise-runtimeparams/README.md 1970-01-01 01:00:00.000000000 +0100
@@ -1,171 +0,0 @@ @@ -1,171 +0,0 @@
-# Exercise Runtime Parameters (DuMuX course) -# Exercise Runtime Parameters (DuMuX course)
...@@ -253,8 +254,8 @@ diff -ruN exercises/exercise-runtimeparams/README.md exercises/solution/exercise ...@@ -253,8 +254,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. -* > __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 diff -ruN exercises/exercise-runtimeparams/spatialparams.hh exercises/solution/exercise-runtimeparams/spatialparams.hh
--- exercises/exercise-runtimeparams/spatialparams.hh 2025-03-03 15:56:59.909624983 +0100 --- exercises/exercise-runtimeparams/spatialparams.hh 2025-03-07 10:42:02.616882954 +0100
+++ exercises/solution/exercise-runtimeparams/spatialparams.hh 2025-03-03 15:56:59.911624948 +0100 +++ exercises/solution/exercise-runtimeparams/spatialparams.hh 2025-03-07 10:42:02.623882910 +0100
@@ -12,8 +12,8 @@ @@ -12,8 +12,8 @@
* fully implicit model. * fully implicit model.
*/ */
......
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
cmake_minimum_required(VERSION 3.16) cmake_minimum_required(VERSION 3.16)
......
# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder
# SPDX-License-Identifier: CC0-1.0 # SPDX-License-Identifier: CC0-1.0
GXX_RELEASE_WARNING_OPTS=" \ GXX_RELEASE_WARNING_OPTS=" \
......