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
# 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
......@@ -50,4 +50,4 @@ then
done
fi
diff -ruN exercises/$exerciseName/ exercises/solution/$exerciseName > .patches/$exerciseName/$exerciseName.patch
\ No newline at end of file
diff -ruN exercises/$exerciseName/ exercises/solution/$exerciseName > .patches/$exerciseName/$exerciseName.patch
......@@ -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.
To this end, there are two possible ways of generating the patch:
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.
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.
To this end, you can generate the patches as follows:
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.
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
*.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
# 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
stages:
......@@ -63,4 +63,4 @@ pages:
paths:
- public
only:
- master
\ No newline at end of file
- master
# 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
default:
......
#!/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
......@@ -23,7 +23,7 @@ do
then
echo "The solution for $exerciseName seems to be up to date."
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
fi
done
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
@@ -1,145 +0,0 @@
@@ -1,153 +0,0 @@
-// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 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
-//
-/*!
......@@ -31,6 +31,10 @@ diff -ruN exercises/exercise-basic/2pmain.cc exercises/solution/exercise-basic/2
-#include <dumux/io/vtkoutputmodule.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
-#include "properties2p.hh"
-
......@@ -40,7 +44,11 @@ diff -ruN exercises/exercise-basic/2pmain.cc exercises/solution/exercise-basic/2
-int main(int argc, char** argv)
-{
- 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
- using TypeTag = Properties::TTag::Injection2pCC;
-
......@@ -149,12 +157,12 @@ diff -ruN exercises/exercise-basic/2pmain.cc exercises/solution/exercise-basic/2
-} // end main
diff -ruN exercises/exercise-basic/2pnimain.cc exercises/solution/exercise-basic/2pnimain.cc
--- exercises/exercise-basic/2pnimain.cc 1970-01-01 01:00:00.000000000 +0100
+++ exercises/solution/exercise-basic/2pnimain.cc 2025-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 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 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
+//
+/*!
......@@ -290,17 +298,17 @@ diff -ruN exercises/exercise-basic/2pnimain.cc exercises/solution/exercise-basic
+ return 0;
+} // end main
diff -ruN exercises/exercise-basic/CMakeLists.txt exercises/solution/exercise-basic/CMakeLists.txt
--- exercises/exercise-basic/CMakeLists.txt 2025-03-03 15:56:59.902625104 +0100
+++ exercises/solution/exercise-basic/CMakeLists.txt 2025-03-03 15:56:59.909624983 +0100
--- exercises/exercise-basic/CMakeLists.txt 2025-03-07 11:30:34.870192062 +0100
+++ exercises/solution/exercise-basic/CMakeLists.txt 2025-03-07 10:42:02.617882948 +0100
@@ -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
-# the immiscible two-phase simulation program
-dumux_add_test(NAME exercise_basic_2p
- 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
+dumux_add_test(NAME exercise_basic_2pni_solution
......@@ -309,8 +317,8 @@ diff -ruN exercises/exercise-basic/CMakeLists.txt exercises/solution/exercise-ba
# add a symlink for each input file
add_input_file_links()
diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/exercise-basic/injection2pniproblem.hh
--- exercises/exercise-basic/injection2pniproblem.hh 2025-03-03 15:56:59.902625104 +0100
+++ exercises/solution/exercise-basic/injection2pniproblem.hh 2025-03-03 15:56:59.909624983 +0100
--- exercises/exercise-basic/injection2pniproblem.hh 2025-03-07 11:30:34.871192055 +0100
+++ exercises/solution/exercise-basic/injection2pniproblem.hh 2025-03-07 10:42:02.617882948 +0100
@@ -7,7 +7,7 @@
/*!
* \file
......@@ -334,7 +342,7 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex
bcTypes.setAllNeumann();
- /*!
- * TODO:dumux-course-task 4:
- * TODO: dumux-course-task 4:
- * Set Dirichlet conditions for the energy equation on the left boundary
- * and Neumann everywhere else.
- * Think about: is there anything necessary to do here?
......@@ -349,7 +357,7 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex
return initialAtPos(globalPos);
-
- /*!
- * TODO:dumux-course-task 4:
- * TODO: dumux-course-task 4:
- * Set Dirichlet conditions for the energy equation on the left boundary.
- * Think about: is there anything necessary to do here?
- */
......@@ -369,7 +377,7 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex
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.
- * 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.
......@@ -387,7 +395,7 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex
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.
- * 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
......@@ -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
--- 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
@@ -1,211 +0,0 @@
-// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 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
-//
-/*!
......@@ -616,28 +624,30 @@ diff -ruN exercises/exercise-basic/injection2pproblem.hh exercises/solution/exer
-
-#endif
diff -ruN exercises/exercise-basic/params.input exercises/solution/exercise-basic/params.input
--- exercises/exercise-basic/params.input 2024-07-11 13:35:11.644137283 +0200
+++ exercises/solution/exercise-basic/params.input 2025-03-03 15:23:33.246567644 +0100
@@ -24,7 +24,7 @@
--- exercises/exercise-basic/params.input 2025-03-07 11:30:34.871192055 +0100
+++ exercises/solution/exercise-basic/params.input 2025-02-26 11:38:46.841816361 +0100
@@ -23,8 +23,8 @@
Aquifer.Swr = 0.2
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]
-#SolidDensity = 2700 # solid density of granite
-#SolidThermalConductivity = 2.8 # solid thermal conducitivity of granite
-#SolidHeatCapacity = 790 # solid heat capacity of granite
+# these parameters are only used in the nonisothermal model. Uncomment them for that
+[Component]
+SolidDensity = 2700 # solid density of granite
+SolidThermalConductivity = 2.8 # solid thermal conducitivity of granite
+SolidHeatCapacity = 790 # solid heat capacity of granite
diff -ruN exercises/exercise-basic/properties2p.hh exercises/solution/exercise-basic/properties2p.hh
--- exercises/exercise-basic/properties2p.hh 2025-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
@@ -1,63 +0,0 @@
-// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 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
-//
-/*!
......@@ -698,14 +708,14 @@ diff -ruN exercises/exercise-basic/properties2p.hh exercises/solution/exercise-b
-
-#endif
diff -ruN exercises/exercise-basic/properties2pni.hh exercises/solution/exercise-basic/properties2pni.hh
--- exercises/exercise-basic/properties2pni.hh 2025-03-03 15:56:59.902625104 +0100
+++ exercises/solution/exercise-basic/properties2pni.hh 2025-03-03 15:56:59.909624983 +0100
--- exercises/exercise-basic/properties2pni.hh 2025-03-07 11:30:34.871192055 +0100
+++ exercises/solution/exercise-basic/properties2pni.hh 2025-03-07 10:42:02.617882948 +0100
@@ -24,13 +24,9 @@
namespace Dumux::Properties {
- /*!
-* TODO:dumux-course-task 4
-* TODO: dumux-course-task 4:
-* Inherit from the TwoPNI model instead of TwoP here
-*/
// Create new type tags
......@@ -716,7 +726,7 @@ diff -ruN exercises/exercise-basic/properties2pni.hh exercises/solution/exercise
} // end namespace TTag
diff -ruN exercises/exercise-basic/README.md exercises/solution/exercise-basic/README.md
--- exercises/exercise-basic/README.md 2025-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
@@ -1,94 +0,0 @@
-# Exercise Basics (DuMuX course)
......
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/solution/exercise-biomineralization/biominproblem.hh 2025-03-03 15:56:59.909624983 +0100
--- exercises/exercise-biomineralization/biominproblem.hh 2025-03-07 11:30:34.871192055 +0100
+++ exercises/solution/exercise-biomineralization/biominproblem.hh 2025-03-07 11:30:34.877192015 +0100
@@ -19,10 +19,12 @@
// TODO: dumux-course-task
// TODO: dumux-course-task 3:
// include chemistry file here
+#include "chemistry/simplebiominreactions.hh" // chemical reactions
......@@ -16,7 +16,7 @@ diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/soluti
template <class TypeTag>
@@ -53,6 +55,7 @@
using SubControlVolume = typename FVElementGeometry::SubControlVolume;
// TODO: dumux-course-task
// TODO: dumux-course-task 3:
// set the chemistry TypeTag
+ using Chemistry = typename Dumux::SimpleBiominReactions<NumEqVector, VolumeVariables>;
......@@ -39,7 +39,7 @@ diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/soluti
{
@@ -185,6 +188,13 @@
}
// TODO: dumux-course-task
// TODO: dumux-course-task 5:
// Set CO2 injection below aquitard after the injBioTime
+ if(globalPos[0] < eps_
+ && globalPos[1] > 2.0 + eps_
......@@ -53,7 +53,7 @@ diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/soluti
}
@@ -247,14 +257,15 @@
// TODO: dumux-course-task
// TODO: dumux-course-task 3:
// set Chemistry
-// Chemistry chemistry;
+ Chemistry chemistry;
......@@ -70,11 +70,11 @@ diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/soluti
{
return Kxx_;
diff -ruN exercises/exercise-biomineralization/biominspatialparams.hh exercises/solution/exercise-biomineralization/biominspatialparams.hh
--- exercises/exercise-biomineralization/biominspatialparams.hh 2025-03-03 15:56:59.902625104 +0100
+++ exercises/solution/exercise-biomineralization/biominspatialparams.hh 2025-03-03 15:56:59.909624983 +0100
--- exercises/exercise-biomineralization/biominspatialparams.hh 2025-03-07 11:30:34.871192055 +0100
+++ exercises/solution/exercise-biomineralization/biominspatialparams.hh 2025-03-07 11:30:34.877192015 +0100
@@ -18,7 +18,7 @@
#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 <dumux/material/fluidmatrixinteractions/permeabilitykozenycarman.hh>
+#include "fluidmatrixinteractions/permeabilitypowerlaw.hh" //the power-law porosity-permeability relation
......@@ -83,7 +83,7 @@ diff -ruN exercises/exercise-biomineralization/biominspatialparams.hh exercises/
@@ -273,7 +273,7 @@
// TODO: dumux-course-task
// TODO: dumux-course-task 6:
// define the power law as the permeability law
- PermeabilityKozenyCarman<PermeabilityType> permLaw_;
+ PermeabilityPowerLaw<PermeabilityType> permLaw_;
......@@ -91,9 +91,9 @@ diff -ruN exercises/exercise-biomineralization/biominspatialparams.hh exercises/
Scalar initialPorosity_;
diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.hh exercises/solution/exercise-biomineralization/chemistry/simplebiominreactions.hh
--- exercises/exercise-biomineralization/chemistry/simplebiominreactions.hh 2025-03-03 15:56:59.902625104 +0100
+++ exercises/solution/exercise-biomineralization/chemistry/simplebiominreactions.hh 2025-03-03 15:56:59.909624983 +0100
@@ -73,24 +73,26 @@
--- exercises/exercise-biomineralization/chemistry/simplebiominreactions.hh 2025-03-07 11:30:34.872192048 +0100
+++ exercises/solution/exercise-biomineralization/chemistry/simplebiominreactions.hh 2025-03-07 11:30:34.877192015 +0100
@@ -73,24 +73,27 @@
// define and compute some parameters for convenience:
const Scalar xwCa = volVars.moleFraction(liquidPhaseIdx,CaIdx);
const Scalar densityBiofilm = volVars.solidComponentDensity(BiofilmPhaseIdx);
......@@ -102,7 +102,7 @@ diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.h
const Scalar volFracBiofilm = max(volVars.solidVolumeFraction(BiofilmPhaseIdx),0.0);
+
// TODO: dumux-course-task
// TODO: dumux-course-task 2:
// implement mass of biofilm
- const Scalar massBiofilm = 0.0;
+ const Scalar massBiofilm = densityBiofilm * volFracBiofilm;
......@@ -111,7 +111,7 @@ diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.h
xwCa,
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
- const Scalar Zub = 0.0;
- const Scalar rurea = 0.0;
......@@ -119,14 +119,14 @@ diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.h
+ const Scalar Zub = kub_ * massBiofilm; // [kg urease/m³]
+ 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
- const Scalar rprec = 0.0;
+ const Scalar rprec = rurea;
// set source terms
// TODO: dumux-course-task
@@ -98,11 +100,11 @@
// TODO: dumux-course-task 2:
@@ -98,11 +101,11 @@
// 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.
q[H2OIdx] += 0.0;
......@@ -143,8 +143,8 @@ diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.h
private:
diff -ruN exercises/exercise-biomineralization/CMakeLists.txt exercises/solution/exercise-biomineralization/CMakeLists.txt
--- exercises/exercise-biomineralization/CMakeLists.txt 2025-03-03 15:56:59.902625104 +0100
+++ exercises/solution/exercise-biomineralization/CMakeLists.txt 2025-03-03 15:56:59.909624983 +0100
--- exercises/exercise-biomineralization/CMakeLists.txt 2025-03-07 10:42:02.608883005 +0100
+++ exercises/solution/exercise-biomineralization/CMakeLists.txt 2025-03-07 10:42:02.617882948 +0100
@@ -2,9 +2,9 @@
# SPDX-License-Identifier: GPL-3.0-or-later
......@@ -158,8 +158,8 @@ diff -ruN exercises/exercise-biomineralization/CMakeLists.txt exercises/solution
# add a symlink for each input file
add_input_file_links()
diff -ruN exercises/exercise-biomineralization/components/biofilm.hh exercises/solution/exercise-biomineralization/components/biofilm.hh
--- exercises/exercise-biomineralization/components/biofilm.hh 2025-03-03 15:56:59.902625104 +0100
+++ exercises/solution/exercise-biomineralization/components/biofilm.hh 2025-03-03 15:56:59.909624983 +0100
--- exercises/exercise-biomineralization/components/biofilm.hh 2025-03-07 10:42:02.608883005 +0100
+++ exercises/solution/exercise-biomineralization/components/biofilm.hh 2025-03-07 10:42:02.617882948 +0100
@@ -12,9 +12,10 @@
#ifndef DUMUX_BIOFILM_HH
#define DUMUX_BIOFILM_HH
......@@ -173,15 +173,15 @@ diff -ruN exercises/exercise-biomineralization/components/biofilm.hh exercises/s
namespace Dumux::Components {
diff -ruN exercises/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh exercises/solution/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh
--- exercises/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh 2025-03-03 15:56:59.903625087 +0100
+++ exercises/solution/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh 2025-03-03 15:56:59.909624983 +0100
--- exercises/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh 2025-03-07 11:30:34.872192048 +0100
+++ exercises/solution/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh 2025-03-07 11:30:34.877192015 +0100
@@ -41,10 +41,11 @@
using std::pow;
// TODO: dumux-course-task
// TODO: dumux-course-task 6:
// read the exponent for the power law from the input file
+ 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 refPerm;
+ return refPerm * pow(poro/refPoro, exponent);
......@@ -189,8 +189,8 @@ diff -ruN exercises/exercise-biomineralization/fluidmatrixinteractions/permeabil
};
diff -ruN exercises/exercise-biomineralization/fluidsystems/biomin.hh exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh
--- exercises/exercise-biomineralization/fluidsystems/biomin.hh 2025-03-03 15:56:59.903625087 +0100
+++ exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh 2025-03-03 15:56:59.909624983 +0100
--- exercises/exercise-biomineralization/fluidsystems/biomin.hh 2025-03-07 10:42:02.608883005 +0100
+++ exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh 2025-03-07 10:42:02.617882948 +0100
@@ -219,7 +219,7 @@
static void init()
{
......@@ -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
--- exercises/exercise-biomineralization/params.input 2025-03-03 15:23:33.241567756 +0100
+++ exercises/solution/exercise-biomineralization/params.input 2025-03-03 15:23:33.246567644 +0100
@@ -16,10 +16,10 @@
--- exercises/exercise-biomineralization/params.input 2025-03-07 11:30:34.872192048 +0100
+++ exercises/solution/exercise-biomineralization/params.input 2025-03-07 11:30:34.877192015 +0100
@@ -18,10 +18,10 @@
InitBiofilm = 0.05 # [-] initial volumefraction biofilm
[Injection]
......@@ -217,7 +217,7 @@ diff -ruN exercises/exercise-biomineralization/params.input exercises/solution/e
ConcCa = 40 # [kg/m³] injected calcium concentration (max: 50)
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.Snr = 0.0
......@@ -225,23 +225,23 @@ diff -ruN exercises/exercise-biomineralization/params.input exercises/solution/e
[BioCoefficients]
RhoBiofilm = 6.9 # [kg/m³] density of biofilm
@@ -48,4 +47,6 @@
@@ -50,4 +49,6 @@
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
+[PowerLaw]
+Exponent = 5.0
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/solution/exercise-biomineralization/properties.hh 2025-03-03 15:56:59.909624983 +0100
--- exercises/exercise-biomineralization/properties.hh 2025-03-07 11:30:34.872192048 +0100
+++ exercises/solution/exercise-biomineralization/properties.hh 2025-03-07 11:30:34.878192008 +0100
@@ -18,17 +18,20 @@
#include <dumux/discretization/cctpfa.hh>
#include <dumux/porousmediumflow/2pncmin/model.hh>
#include <dumux/porousmediumflow/problem.hh>
-#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 "solidsystems/biominsolidphase.hh" // The biomineralization solid system
+#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/
//! Create new type tag for the problem
@@ -54,7 +57,7 @@
using Scalar = GetPropType<TypeTag, Properties::Scalar>;
// TODO: dumux-course-task
// TODO: dumux-course-task 7:
// use the CO2 component with tabulated values
- using CO2Impl = Components::SimpleCO2<Scalar>;
+ using CO2Impl = Components::CO2<Scalar, GeneratedCO2Tables::CO2Tables>;
......@@ -269,7 +269,7 @@ diff -ruN exercises/exercise-biomineralization/properties.hh exercises/solution/
public:
using type = FluidSystems::BioMin<Scalar, CO2Impl, H2OType>;
diff -ruN exercises/exercise-biomineralization/README.md exercises/solution/exercise-biomineralization/README.md
--- exercises/exercise-biomineralization/README.md 2025-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
@@ -1,257 +0,0 @@
-# Exercise Biomineralization (DuMuX Course)
......@@ -530,8 +530,8 @@ diff -ruN exercises/exercise-biomineralization/README.md exercises/solution/exer
-output.CellData.append((S_gas_0-S_gas_1),'diffS_gas');
-```
diff -ruN exercises/exercise-biomineralization/solidsystems/biominsolidphase.hh exercises/solution/exercise-biomineralization/solidsystems/biominsolidphase.hh
--- exercises/exercise-biomineralization/solidsystems/biominsolidphase.hh 2025-03-03 15:56:59.903625087 +0100
+++ exercises/solution/exercise-biomineralization/solidsystems/biominsolidphase.hh 2025-03-03 15:56:59.909624983 +0100
--- exercises/exercise-biomineralization/solidsystems/biominsolidphase.hh 2025-03-07 10:42:02.609882998 +0100
+++ exercises/solution/exercise-biomineralization/solidsystems/biominsolidphase.hh 2025-03-07 10:42:02.618882942 +0100
@@ -15,12 +15,12 @@
#include <string>
#include <dune/common/exceptions.hh>
......
diff -ruN exercises/exercise-dunemodule/README.md exercises/solution/exercise-dunemodule/README.md
--- exercises/exercise-dunemodule/README.md 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
@@ -1,114 +0,0 @@
-# Exercise New Dune Module (DuMuX course)
......
diff -ruN exercises/exercise-fluidsystem/2p2cproblem.hh exercises/solution/exercise-fluidsystem/2p2cproblem.hh
--- exercises/exercise-fluidsystem/2p2cproblem.hh 2025-03-03 15:56:59.905625052 +0100
+++ exercises/solution/exercise-fluidsystem/2p2cproblem.hh 2025-03-03 15:56:59.910624965 +0100
--- exercises/exercise-fluidsystem/2p2cproblem.hh 2025-03-07 10:42:02.611882986 +0100
+++ exercises/solution/exercise-fluidsystem/2p2cproblem.hh 2025-03-07 10:42:02.619882935 +0100
@@ -12,7 +12,7 @@
#ifndef DUMUX_EXERCISE_FLUIDSYSTEM_B_PROBLEM_HH
#define DUMUX_EXERCISE_FLUIDSYSTEM_B_PROBLEM_HH
......@@ -11,8 +11,8 @@ diff -ruN exercises/exercise-fluidsystem/2p2cproblem.hh exercises/solution/exerc
#include <dumux/common/boundarytypes.hh>
#include <dumux/common/properties.hh>
diff -ruN exercises/exercise-fluidsystem/2pproperties.hh exercises/solution/exercise-fluidsystem/2pproperties.hh
--- exercises/exercise-fluidsystem/2pproperties.hh 2025-03-03 15:56:59.905625052 +0100
+++ exercises/solution/exercise-fluidsystem/2pproperties.hh 2025-03-03 15:56:59.910624965 +0100
--- exercises/exercise-fluidsystem/2pproperties.hh 2025-03-07 10:42:02.612882979 +0100
+++ exercises/solution/exercise-fluidsystem/2pproperties.hh 2025-03-07 10:42:02.619882935 +0100
@@ -25,15 +25,13 @@
#include "spatialparams.hh"
......@@ -52,8 +52,8 @@ diff -ruN exercises/exercise-fluidsystem/2pproperties.hh exercises/solution/exer
public:
using type = typename FluidSystems::TwoPImmiscible<Scalar, LiquidWaterPhase, LiquidMyComponentPhase>;
diff -ruN exercises/exercise-fluidsystem/aparams.input exercises/solution/exercise-fluidsystem/aparams.input
--- exercises/exercise-fluidsystem/aparams.input 2025-03-03 15:23:33.243567711 +0100
+++ exercises/solution/exercise-fluidsystem/aparams.input 2025-03-03 15:23:33.246567644 +0100
--- exercises/exercise-fluidsystem/aparams.input 2025-03-07 11:30:34.874192035 +0100
+++ exercises/solution/exercise-fluidsystem/aparams.input 2025-02-26 11:38:46.843816269 +0100
@@ -3,7 +3,7 @@
DtInitial = 10 # initial time step size [s]
......@@ -63,15 +63,16 @@ diff -ruN exercises/exercise-fluidsystem/aparams.input exercises/solution/exerci
[SpatialParams]
BrooksCoreyPcEntry = 5.0e2 # [Pa]
@@ -20,4 +20,4 @@
@@ -20,5 +20,4 @@
Cells = 60 60 # x-/y-resolution of the grid
[Output]
-# TODO: dumux-course-task 2.2: set the plot density to true
-PlotDensity = false # plot density over pressure for your component
+PlotDensity = true # plot density over pressure for your component
diff -ruN exercises/exercise-fluidsystem/bparams.input exercises/solution/exercise-fluidsystem/bparams.input
--- exercises/exercise-fluidsystem/bparams.input 2025-03-03 15:23:33.243567711 +0100
+++ exercises/solution/exercise-fluidsystem/bparams.input 2025-03-03 15:23:33.246567644 +0100
--- exercises/exercise-fluidsystem/bparams.input 2025-02-26 11:38:46.806817963 +0100
+++ exercises/solution/exercise-fluidsystem/bparams.input 2025-02-26 11:38:46.844816223 +0100
@@ -3,7 +3,7 @@
DtInitial = 10 # initial time step size [s]
......@@ -82,8 +83,8 @@ diff -ruN exercises/exercise-fluidsystem/bparams.input exercises/solution/exerci
[SpatialParams]
BrooksCoreyPcEntry = 5.0e2 # [Pa]
diff -ruN exercises/exercise-fluidsystem/CMakeLists.txt exercises/solution/exercise-fluidsystem/CMakeLists.txt
--- exercises/exercise-fluidsystem/CMakeLists.txt 2025-03-03 15:56:59.905625052 +0100
+++ exercises/solution/exercise-fluidsystem/CMakeLists.txt 2025-03-03 15:56:59.910624965 +0100
--- exercises/exercise-fluidsystem/CMakeLists.txt 2025-03-07 10:42:02.612882979 +0100
+++ exercises/solution/exercise-fluidsystem/CMakeLists.txt 2025-03-07 10:42:02.619882935 +0100
@@ -3,18 +3,16 @@
# executables for exercise part a & b
......@@ -110,8 +111,8 @@ diff -ruN exercises/exercise-fluidsystem/CMakeLists.txt exercises/solution/exerc
-# add a symlink for the grids folder
-dune_symlink_to_source_files(FILES grids)
diff -ruN exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh
--- exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh 2025-03-03 15:56:59.906625035 +0100
+++ exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh 2025-03-03 15:56:59.910624965 +0100
--- exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh 2025-03-07 10:42:02.612882979 +0100
+++ exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh 2025-03-07 10:42:02.620882929 +0100
@@ -38,7 +38,7 @@
static std::string name()
{ return "MyCompressibleComponent"; }
......@@ -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
--- exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh 2025-03-03 15:56:59.906625035 +0100
+++ exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh 2025-03-03 15:56:59.910624965 +0100
--- exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh 2025-03-07 10:42:02.612882979 +0100
+++ exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh 2025-03-07 10:42:02.620882929 +0100
@@ -48,10 +48,7 @@
*/
static Scalar molarMass()
......@@ -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
--- 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 @@
+#!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
+
+import numpy as np
......@@ -238,8 +239,8 @@ diff -ruN exercises/exercise-fluidsystem/components/plotdensityfunction.py exerc
+plt.semilogx(p, r)
+plt.show()
diff -ruN exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh
--- exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh 2025-03-03 15:56:59.906625035 +0100
+++ exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh 2025-03-03 15:56:59.910624965 +0100
--- exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh 2025-03-07 10:42:02.612882979 +0100
+++ exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh 2025-03-07 10:42:02.620882929 +0100
@@ -20,10 +20,10 @@
#include <dumux/material/fluidsystems/base.hh>
......@@ -276,8 +277,8 @@ diff -ruN exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent
else
{
diff -ruN exercises/exercise-fluidsystem/main.cc exercises/solution/exercise-fluidsystem/main.cc
--- exercises/exercise-fluidsystem/main.cc 2025-03-03 15:56:59.906625035 +0100
+++ exercises/solution/exercise-fluidsystem/main.cc 2025-03-03 15:56:59.910624965 +0100
--- exercises/exercise-fluidsystem/main.cc 2025-03-07 10:42:02.612882979 +0100
+++ exercises/solution/exercise-fluidsystem/main.cc 2025-03-07 10:42:02.620882929 +0100
@@ -36,7 +36,7 @@
int main(int argc, char** argv)
{
......@@ -303,7 +304,7 @@ diff -ruN exercises/exercise-fluidsystem/main.cc exercises/solution/exercise-flu
using IOFields = GetPropType<TypeTag, Properties::IOFields>;
VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-fluidsystem/README.md
--- exercises/exercise-fluidsystem/README.md 2025-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
@@ -1,265 +0,0 @@
-# Exercise Fluidsystem (DuMuX Course)
......@@ -572,8 +573,8 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f
-./exercise_fluidsystem_b bparams.input
-```
diff -ruN exercises/exercise-fluidsystem/spatialparams.hh exercises/solution/exercise-fluidsystem/spatialparams.hh
--- exercises/exercise-fluidsystem/spatialparams.hh 2025-03-03 15:56:59.906625035 +0100
+++ exercises/solution/exercise-fluidsystem/spatialparams.hh 2025-03-03 15:56:59.910624965 +0100
--- exercises/exercise-fluidsystem/spatialparams.hh 2025-03-07 10:42:02.612882979 +0100
+++ exercises/solution/exercise-fluidsystem/spatialparams.hh 2025-03-07 10:42:02.620882929 +0100
@@ -113,13 +113,17 @@
template<class FluidSystem>
int wettingPhaseAtPos(const GlobalPosition& globalPos) const
......
diff -ruN exercises/exercise-fractures/CMakeLists.txt exercises/solution/exercise-fractures/CMakeLists.txt
--- exercises/exercise-fractures/CMakeLists.txt 2025-03-03 15:56:59.906625035 +0100
+++ exercises/solution/exercise-fractures/CMakeLists.txt 2025-03-03 15:56:59.910624965 +0100
--- exercises/exercise-fractures/CMakeLists.txt 2025-03-07 10:42:02.612882979 +0100
+++ exercises/solution/exercise-fractures/CMakeLists.txt 2025-03-07 10:42:02.620882929 +0100
@@ -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
-dumux_add_test(NAME exercise_fractures
......@@ -32,7 +32,7 @@ diff -ruN exercises/exercise-fractures/CMakeLists.txt exercises/solution/exercis
add_input_file_links()
diff -ruN exercises/exercise-fractures/exercise_fractures_solution_a.input exercises/solution/exercise-fractures/exercise_fractures_solution_a.input
--- exercises/exercise-fractures/exercise_fractures_solution_a.input 1970-01-01 01:00:00.000000000 +0100
+++ exercises/solution/exercise-fractures/exercise_fractures_solution_a.input 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 @@
+[TimeLoop]
+TEnd = 30000 # [s]
......@@ -77,7 +77,7 @@ diff -ruN exercises/exercise-fractures/exercise_fractures_solution_a.input exerc
+SpatialParams.Barrier.Swr = 0.0
diff -ruN exercises/exercise-fractures/exercise_fractures_solution_b.input exercises/solution/exercise-fractures/exercise_fractures_solution_b.input
--- exercises/exercise-fractures/exercise_fractures_solution_b.input 1970-01-01 01:00:00.000000000 +0100
+++ exercises/solution/exercise-fractures/exercise_fractures_solution_b.input 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 @@
+[TimeLoop]
+TEnd = 30000 # [s]
......@@ -122,7 +122,7 @@ diff -ruN exercises/exercise-fractures/exercise_fractures_solution_b.input exerc
+SpatialParams.Barrier.Swr = 0.0
diff -ruN exercises/exercise-fractures/exercise_fractures_solution_c.input exercises/solution/exercise-fractures/exercise_fractures_solution_c.input
--- exercises/exercise-fractures/exercise_fractures_solution_c.input 1970-01-01 01:00:00.000000000 +0100
+++ exercises/solution/exercise-fractures/exercise_fractures_solution_c.input 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 @@
+[TimeLoop]
+TEnd = 30000 # [s]
......@@ -166,8 +166,8 @@ diff -ruN exercises/exercise-fractures/exercise_fractures_solution_c.input exerc
+SpatialParams.Barrier.Snr = 0.0
+SpatialParams.Barrier.Swr = 0.0
diff -ruN exercises/exercise-fractures/fractureproblem.hh exercises/solution/exercise-fractures/fractureproblem.hh
--- exercises/exercise-fractures/fractureproblem.hh 2025-03-03 15:56:59.906625035 +0100
+++ exercises/solution/exercise-fractures/fractureproblem.hh 2025-03-03 15:56:59.910624965 +0100
--- exercises/exercise-fractures/fractureproblem.hh 2025-03-07 11:30:34.874192035 +0100
+++ exercises/solution/exercise-fractures/fractureproblem.hh 2025-03-07 10:42:02.620882929 +0100
@@ -59,6 +59,10 @@
std::shared_ptr<typename ParentType::SpatialParams> spatialParams,
const std::string& paramGroup)
......@@ -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
- // fracture tip we set Dirichlet Bcs as in the matrix domain
- // TODO dumux-course-task A
- // TODO: dumux-course-task A:
- // Change boundary conditions
- if (globalPos[1] > this->gridGeometry().bBoxMax()[1] - 1e-6)
- values.setAllDirichlet();
......@@ -199,8 +199,8 @@ diff -ruN exercises/exercise-fractures/fractureproblem.hh exercises/solution/exe
return values;
}
diff -ruN exercises/exercise-fractures/fracturespatialparams.hh exercises/solution/exercise-fractures/fracturespatialparams.hh
--- exercises/exercise-fractures/fracturespatialparams.hh 2025-03-03 15:56:59.906625035 +0100
+++ exercises/solution/exercise-fractures/fracturespatialparams.hh 2025-03-03 15:56:59.910624965 +0100
--- exercises/exercise-fractures/fracturespatialparams.hh 2025-03-07 11:30:34.874192035 +0100
+++ exercises/solution/exercise-fractures/fracturespatialparams.hh 2025-03-07 10:42:02.620882929 +0100
@@ -41,6 +41,7 @@
using Element = typename GridView::template Codim<0>::Entity;
using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
......@@ -226,7 +226,7 @@ diff -ruN exercises/exercise-fractures/fracturespatialparams.hh exercises/soluti
const SubControlVolume& scv,
const ElementSolution& elemSol) const
{
- // TODO dumux-course-task B
- // TODO: dumux-course-task B/C:
- // Change fracture properties
- return permeability_;
+ // 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
const SubControlVolume& scv,
const ElementSolution& elemSol) const
{
- // TODO dumux-course-task B
- // TODO: dumux-course-task B/C:
- // Change fracture properties
- return porosity_;
+ // 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
const SubControlVolume& scv,
const ElementSolution& elemSol) const
{
- // TODO dumux-course-task B
- // TODO: dumux-course-task B/C:
- // Change fracture properties
- return makeFluidMatrixInteraction(pcKrSwCurve_);
+ // 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
} // end namespace Dumux
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/solution/exercise-fractures/main.cc 2025-03-03 15:56:59.910624965 +0100
--- exercises/exercise-fractures/main.cc 2025-03-07 10:42:02.613882973 +0100
+++ exercises/solution/exercise-fractures/main.cc 2025-03-07 10:42:02.620882929 +0100
@@ -245,4 +245,5 @@
Parameters::print();
......@@ -331,8 +331,8 @@ diff -ruN exercises/exercise-fractures/main.cc exercises/solution/exercise-fract
+
}// end main
diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exercise-fractures/matrixproblem.hh
--- exercises/exercise-fractures/matrixproblem.hh 2025-03-03 15:56:59.907625017 +0100
+++ exercises/solution/exercise-fractures/matrixproblem.hh 2025-03-03 15:56:59.911624948 +0100
--- exercises/exercise-fractures/matrixproblem.hh 2025-03-07 11:30:34.875192028 +0100
+++ exercises/solution/exercise-fractures/matrixproblem.hh 2025-03-07 10:42:02.621882923 +0100
@@ -65,11 +65,18 @@
: ParentType(gridGeometry, spatialParams, paramGroup)
, boundaryOverPressure_(getParamFromGroup<Scalar>(paramGroup, "Problem.BoundaryOverPressure"))
......@@ -358,7 +358,7 @@ diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exerc
- // we consider buoancy-driven upwards migration of nitrogen and set
- // Dirichlet BCs on the top and bottom boundary
- // TODO dumux-course-task A
- // TODO: dumux-course-task A:
- // Change boundary conditions and Dirichlet values!
- values.setAllNeumann();
- 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
return values;
}
@@ -107,10 +124,30 @@
@@ -107,12 +124,29 @@
// the interior boundary conditions to Dirichlet.
// IMPORTANT: Note that you will never be asked to set any values at the interior boundaries!
// This simply chooses a different interface condition!
- // TODO dumux-course-task C
- // TODO: dumux-course-task B:
- // Change coupling conditions!
values.setAllDirichlet();
- // TODO: dumux-course-task additional task:
- // Set interior boundary condition depending on the domain marker of the fracture domain elements!
+ if (isExercisePartB_)
+ values.setAllNeumann();
+ else if (isExercisePartC_)
......@@ -412,16 +414,15 @@ diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exerc
+ if (fractureElementMarker == 2)
+ values.setAllNeumann();
+ }
+
return values;
}
@@ -120,11 +157,23 @@
@@ -123,11 +157,23 @@
// initialize values with the initial conditions
auto values = initialAtPos(globalPos);
- // 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!
- if (globalPos[1] < 1e-6 && globalPos[0] > 25.0 && globalPos[0] < 75.0)
- values[saturationIdx] = boundarySaturation_;
......@@ -445,7 +446,7 @@ diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exerc
return values;
}
@@ -158,6 +207,9 @@
@@ -161,6 +207,9 @@
Scalar boundaryOverPressure_;
Scalar boundarySaturation_;
......@@ -456,8 +457,8 @@ diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exerc
} // end namespace Dumux
diff -ruN exercises/exercise-fractures/matrixspatialparams.hh exercises/solution/exercise-fractures/matrixspatialparams.hh
--- exercises/exercise-fractures/matrixspatialparams.hh 2025-03-03 15:56:59.907625017 +0100
+++ exercises/solution/exercise-fractures/matrixspatialparams.hh 2025-03-03 15:56:59.911624948 +0100
--- exercises/exercise-fractures/matrixspatialparams.hh 2025-03-07 10:42:02.613882973 +0100
+++ exercises/solution/exercise-fractures/matrixspatialparams.hh 2025-03-07 10:42:02.621882923 +0100
@@ -40,6 +40,7 @@
using Element = typename GridView::template Codim<0>::Entity;
using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
......@@ -467,11 +468,13 @@ diff -ruN exercises/exercise-fractures/matrixspatialparams.hh exercises/solution
public:
diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise-fractures/params.input
--- exercises/exercise-fractures/params.input 2024-07-11 13:35:11.652137556 +0200
+++ exercises/solution/exercise-fractures/params.input 2024-07-11 13:35:11.680138513 +0200
@@ -5,6 +5,9 @@
--- exercises/exercise-fractures/params.input 2025-03-07 11:30:34.875192028 +0100
+++ exercises/solution/exercise-fractures/params.input 2025-02-26 11:38:46.845816177 +0100
@@ -4,8 +4,10 @@
MaxTimeStepSize = 2500 # [s]
[Problem]
-# TODO: dumux-course-task A: switch off gravity
EnableGravity = true
+IsExercisePartA = false
+IsExercisePartB = false
......@@ -479,7 +482,7 @@ diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise-
[Grid]
File = ./grids/complex.msh
@@ -16,8 +19,8 @@
@@ -17,8 +19,8 @@
Problem.BoundarySaturation = 0.5
SpatialParams.Permeability = 1e-12
SpatialParams.Porosity = 0.1
......@@ -490,10 +493,11 @@ diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise-
SpatialParams.Snr = 0.0
SpatialParams.Swr = 0.0
@@ -28,11 +31,11 @@
@@ -29,12 +31,11 @@
SpatialParams.PermeabilityBarrier = 1e-16
SpatialParams.Porosity = 0.85
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.VanGenuchtenN = 2
-SpatialParams.Swr = 0.0
......@@ -510,8 +514,8 @@ diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise-
+SpatialParams.Swr = 0.0
+SpatialParams.SwrBarrier = 0.0
diff -ruN exercises/exercise-fractures/properties.hh exercises/solution/exercise-fractures/properties.hh
--- exercises/exercise-fractures/properties.hh 2025-03-03 15:56:59.907625017 +0100
+++ exercises/solution/exercise-fractures/properties.hh 2025-03-03 15:56:59.911624948 +0100
--- exercises/exercise-fractures/properties.hh 2025-03-07 10:42:02.613882973 +0100
+++ exercises/solution/exercise-fractures/properties.hh 2025-03-07 10:42:02.621882923 +0100
@@ -45,6 +45,7 @@
// with tpfa.
#include <dumux/multidomain/facet/cellcentered/tpfa/properties.hh>
......@@ -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>; };
template<class TypeTag>
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
@@ -1,216 +0,0 @@
-# Exercise Discrete Fractures (DuMuX Course)
......@@ -692,7 +696,7 @@ diff -ruN exercises/exercise-fractures/README.md exercises/solution/exercise-fra
- // the interior boundary conditions to Dirichlet.
- // IMPORTANT: Note that you will never be asked to set any values at the interior boundaries!
- // This simply chooses a different interface condition!
- // TODO dumux-course-task C
- // TODO: dumux-course-task B:
- // Change coupling conditions!
- values.setAllDirichlet();
-
......
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/solution/exercise-grids/CMakeLists.txt 2025-03-03 15:56:59.911624948 +0100
--- exercises/exercise-grids/CMakeLists.txt 2025-03-07 10:42:02.613882973 +0100
+++ exercises/solution/exercise-grids/CMakeLists.txt 2025-03-07 10:42:02.621882923 +0100
@@ -2,7 +2,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
......@@ -11,7 +11,7 @@ diff -ruN exercises/exercise-grids/CMakeLists.txt exercises/solution/exercise-gr
# add a symlink for each input file
diff -ruN exercises/exercise-grids/grids/grid_structured.dgf exercises/solution/exercise-grids/grids/grid_structured.dgf
--- exercises/exercise-grids/grids/grid_structured.dgf 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
@@ -1,6 +0,0 @@
-DGF
......@@ -21,7 +21,7 @@ diff -ruN exercises/exercise-grids/grids/grid_structured.dgf exercises/solution/
-30 20 % cells in x and y direction
-#
diff -ruN exercises/exercise-grids/grids/grid_structured.geo exercises/solution/exercise-grids/grids/grid_structured.geo
--- exercises/exercise-grids/grids/grid_structured.geo 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
@@ -1,30 +0,0 @@
-X = 60;
......@@ -55,8 +55,8 @@ diff -ruN exercises/exercise-grids/grids/grid_structured.geo exercises/solution/
-Transfinite Volume "*";
-
diff -ruN exercises/exercise-grids/main.cc exercises/solution/exercise-grids/main.cc
--- exercises/exercise-grids/main.cc 2025-03-03 15:56:59.907625017 +0100
+++ exercises/solution/exercise-grids/main.cc 2025-03-03 15:56:59.911624948 +0100
--- exercises/exercise-grids/main.cc 2025-03-07 10:42:02.614882967 +0100
+++ exercises/solution/exercise-grids/main.cc 2025-03-07 10:42:02.621882923 +0100
@@ -6,7 +6,7 @@
//
/*!
......@@ -67,8 +67,8 @@ diff -ruN exercises/exercise-grids/main.cc exercises/solution/exercise-grids/mai
#include <config.h>
diff -ruN exercises/exercise-grids/params.input exercises/solution/exercise-grids/params.input
--- exercises/exercise-grids/params.input 2025-03-03 15:23:33.244567689 +0100
+++ exercises/solution/exercise-grids/params.input 2024-07-11 13:35:11.680138513 +0200
--- exercises/exercise-grids/params.input 2025-03-07 11:30:34.875192028 +0100
+++ exercises/solution/exercise-grids/params.input 2025-03-07 11:30:34.878192008 +0100
@@ -3,13 +3,34 @@
TEnd = 3.154e9 # in seconds, i.e ten years
......@@ -78,11 +78,11 @@ diff -ruN exercises/exercise-grids/params.input exercises/solution/exercise-grid
+# UpperRight = 60 40
+# Cells = 24 16
+
# TODO: Task 1: Globally refine your grid
-# TODO: Task 2: Develop grid input parameters that can be split into zones
# TODO: dumux-course-task 1: Globally refine your grid
-# TODO: dumux-course-task 2: Develop grid input parameters that can be split into zones
+# 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
+# Positions1 = 0 40
+# Cells0 = 24
......@@ -90,9 +90,9 @@ diff -ruN exercises/exercise-grids/params.input exercises/solution/exercise-grid
+# Grading0 = 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: 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 3: Using the zoning and grading parameters, redevelop your grid to optimize your refinement in the areas that matter.
-# TODO: dumux-course-task 4: Run your simulation with the provided structured grid file ./grids/grid_structured.msh
-# TODO: dumux-course-task 5: Run your simulation with the provided unstructured grid file ./grids/grid_unstructured.msh
+Positions0 = 0 40 60
+Positions1 = 0 25 30 35 40
+Cells0 = 10 14
......@@ -100,18 +100,18 @@ diff -ruN exercises/exercise-grids/params.input exercises/solution/exercise-grid
+Grading0 = 1.0 -1.25
+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.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
[Problem]
Name = grid_exercise
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/solution/exercise-grids/properties.hh 2025-03-03 15:56:59.911624948 +0100
--- exercises/exercise-grids/properties.hh 2025-03-07 11:30:34.875192028 +0100
+++ exercises/solution/exercise-grids/properties.hh 2025-03-07 11:30:34.878192008 +0100
@@ -5,9 +5,9 @@
// SPDX-License-Identifier: GPL-3.0-or-later
//
......@@ -140,30 +140,30 @@ diff -ruN exercises/exercise-grids/properties.hh exercises/solution/exercise-gri
+//Set the grid type
+// template<class TypeTag>
+// 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>
-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)
-
-// 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)
+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)
+// 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>
+// 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>
+// struct Grid<TypeTag, TTag::Injection2p> { using type = Dune::ALUGrid<2, 2, Dune::simplex, Dune::nonconforming>; };
// Set the problem property
template<class TypeTag>
diff -ruN exercises/exercise-grids/README.md exercises/solution/exercise-grids/README.md
--- exercises/exercise-grids/README.md 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
@@ -1,159 +0,0 @@
-# Exercise Grids (DuMuX course)
......
diff -ruN exercises/exercise-mainfile/CMakeLists.txt exercises/solution/exercise-mainfile/CMakeLists.txt
--- exercises/exercise-mainfile/CMakeLists.txt 2025-03-03 15:56:59.907625017 +0100
+++ exercises/solution/exercise-mainfile/CMakeLists.txt 2025-03-03 15:56:59.911624948 +0100
--- exercises/exercise-mainfile/CMakeLists.txt 2025-03-07 10:42:02.614882967 +0100
+++ exercises/solution/exercise-mainfile/CMakeLists.txt 2025-03-07 10:42:02.621882923 +0100
@@ -2,14 +2,9 @@
# SPDX-License-Identifier: GPL-3.0-or-later
......@@ -18,17 +18,15 @@ diff -ruN exercises/exercise-mainfile/CMakeLists.txt exercises/solution/exercise
+ COMPILE_DEFINITIONS TYPETAG=OnePIncompressible)
# add a symlink for each input file
-add_input_file_links()
+add_input_file_links()
\ No newline at end of file
add_input_file_links()
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
@@ -1,130 +0,0 @@
-// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 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
-//
-/*!
......@@ -114,7 +112,7 @@ diff -ruN exercises/exercise-mainfile/exercise1pamain.cc exercises/solution/exer
-
- 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
-
- // the assembler for stationary problems
......@@ -157,12 +155,12 @@ diff -ruN exercises/exercise-mainfile/exercise1pamain.cc exercises/solution/exer
-}// end main
diff -ruN exercises/exercise-mainfile/exercise1pa_solution_main.cc exercises/solution/exercise-mainfile/exercise1pa_solution_main.cc
--- exercises/exercise-mainfile/exercise1pa_solution_main.cc 1970-01-01 01:00:00.000000000 +0100
+++ exercises/solution/exercise-mainfile/exercise1pa_solution_main.cc 2025-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 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 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
+//
+/*!
......@@ -248,7 +246,7 @@ diff -ruN exercises/exercise-mainfile/exercise1pa_solution_main.cc exercises/sol
+
+ 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
+
+ // the assembler for stationary problems
......@@ -290,13 +288,13 @@ diff -ruN exercises/exercise-mainfile/exercise1pa_solution_main.cc exercises/sol
+
+}// end main
diff -ruN exercises/exercise-mainfile/exercise1pbmain.cc exercises/solution/exercise-mainfile/exercise1pbmain.cc
--- exercises/exercise-mainfile/exercise1pbmain.cc 2025-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
@@ -1,120 +0,0 @@
-// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 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
-//
-/*!
......@@ -414,13 +412,13 @@ diff -ruN exercises/exercise-mainfile/exercise1pbmain.cc exercises/solution/exer
-
-}// end main
diff -ruN exercises/exercise-mainfile/exercise1pcmain.cc exercises/solution/exercise-mainfile/exercise1pcmain.cc
--- exercises/exercise-mainfile/exercise1pcmain.cc 2025-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
@@ -1,146 +0,0 @@
-// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 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
-//
-/*!
......@@ -564,9 +562,9 @@ diff -ruN exercises/exercise-mainfile/exercise1pcmain.cc exercises/solution/exer
-
-}// end main
diff -ruN exercises/exercise-mainfile/exercise_mainfile_a.input exercises/solution/exercise-mainfile/exercise_mainfile_a.input
--- exercises/exercise-mainfile/exercise_mainfile_a.input 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
@@ -1,18 +0,0 @@
@@ -1,19 +0,0 @@
-[Grid]
-LowerLeft = 0 0
-UpperRight = 1 1
......@@ -584,10 +582,11 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_a.input exercises/soluti
-
-[Assembly.NumericDifference]
-PriVarMagnitude = 1e5
-# TODO: dumux-course-task 3: Change BaseEpsilon to a smaller value 1e-15
-BaseEpsilon = 1e-10
diff -ruN exercises/exercise-mainfile/exercise_mainfile_a_solution.input exercises/solution/exercise-mainfile/exercise_mainfile_a_solution.input
--- exercises/exercise-mainfile/exercise_mainfile_a_solution.input 1970-01-01 01:00:00.000000000 +0100
+++ exercises/solution/exercise-mainfile/exercise_mainfile_a_solution.input 2025-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 @@
+[Grid]
+LowerLeft = 0 0
......@@ -608,7 +607,7 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_a_solution.input exercis
+PriVarMagnitude = 1e5
+BaseEpsilon = 1e-10
diff -ruN exercises/exercise-mainfile/exercise_mainfile_b.input exercises/solution/exercise-mainfile/exercise_mainfile_b.input
--- exercises/exercise-mainfile/exercise_mainfile_b.input 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
@@ -1,17 +0,0 @@
-[Grid]
......@@ -629,7 +628,7 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_b.input exercises/soluti
-[Assembly.NumericDifference]
-PriVarMagnitude = 1e5
diff -ruN exercises/exercise-mainfile/exercise_mainfile_c.input exercises/solution/exercise-mainfile/exercise_mainfile_c.input
--- exercises/exercise-mainfile/exercise_mainfile_c.input 2025-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
@@ -1,21 +0,0 @@
-[TimeLoop]
......@@ -654,12 +653,12 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_c.input exercises/soluti
-[Assembly.NumericDifference]
-PriVarMagnitude = 1e5
diff -ruN exercises/exercise-mainfile/properties.hh exercises/solution/exercise-mainfile/properties.hh
--- exercises/exercise-mainfile/properties.hh 2025-03-03 15:56:59.908625000 +0100
+++ exercises/solution/exercise-mainfile/properties.hh 2025-03-03 15:56:59.911624948 +0100
--- exercises/exercise-mainfile/properties.hh 2025-03-07 11:30:34.875192028 +0100
+++ exercises/solution/exercise-mainfile/properties.hh 2025-03-07 11:30:34.878192008 +0100
@@ -25,8 +25,8 @@
#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.
-// #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.
......@@ -669,7 +668,7 @@ diff -ruN exercises/exercise-mainfile/properties.hh exercises/solution/exercise-
#include "1pproblem.hh"
@@ -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:
-// template<class TypeTag>
-// struct LocalResidual<TypeTag, TTag::OnePIncompressible> { using type = OnePIncompressibleLocalResidual<TypeTag>; };
......@@ -679,7 +678,7 @@ diff -ruN exercises/exercise-mainfile/properties.hh exercises/solution/exercise-
// the fluid system for compressible tests
diff -ruN exercises/exercise-mainfile/README.md exercises/solution/exercise-mainfile/README.md
--- exercises/exercise-mainfile/README.md 2025-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
@@ -1,196 +0,0 @@
-# Exercise Mainfiles (DuMuX course)
......
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/solution/exercise-model/CMakeLists.txt 2025-03-03 15:56:59.911624948 +0100
--- exercises/exercise-model/CMakeLists.txt 2025-03-07 10:42:02.615882961 +0100
+++ exercises/solution/exercise-model/CMakeLists.txt 2025-03-07 10:42:02.621882923 +0100
@@ -3,5 +3,5 @@
dune_symlink_to_source_files(FILES images params.input)
......@@ -9,31 +9,31 @@ diff -ruN exercises/exercise-model/CMakeLists.txt exercises/solution/exercise-mo
+dumux_add_test(NAME exercise_nonlineardiffusion_sol
SOURCES main.cc)
diff -ruN exercises/exercise-model/main.cc exercises/solution/exercise-model/main.cc
--- exercises/exercise-model/main.cc 2025-03-03 15:56:59.908625000 +0100
+++ exercises/solution/exercise-model/main.cc 2025-03-03 15:56:59.911624948 +0100
@@ -29,6 +29,8 @@
#include <dumux/nonlinear/newtonsolver.hh>
--- exercises/exercise-model/main.cc 2025-03-07 11:30:34.876192021 +0100
+++ exercises/solution/exercise-model/main.cc 2025-03-07 11:30:34.878192008 +0100
@@ -30,6 +30,7 @@
#include <dumux/assembly/fvassembler.hh>
// TODO: dumux-course-task 3.1: include the header model.hh
+#include "model.hh"
+
/*!
* \ingroup NonlinearDiffusion
* \brief Test problem for image denoising using a nonlinear diffusion model
@@ -78,7 +80,7 @@
@@ -79,8 +80,8 @@
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>;
+ // TODO: dumux-course-task 3.1: We need to set our model by replacing ModelTypeTag
+ using InheritsFrom = std::tuple<NonlinearDiffusionModel, BoxModel>;
using Scalar = double;
using Grid = Dune::YaspGrid<2>;
@@ -136,63 +138,62 @@
// the problem for the boundary conditions, a solution vector and a grid variables instance.
@@ -139,62 +140,62 @@
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 Problem = GetPropType<TypeTag, Properties::Problem>;
- // using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
......@@ -148,12 +148,12 @@ diff -ruN exercises/exercise-model/main.cc exercises/solution/exercise-model/mai
}// end main
diff -ruN exercises/exercise-model/model.hh exercises/solution/exercise-model/model.hh
--- exercises/exercise-model/model.hh 1970-01-01 01:00:00.000000000 +0100
+++ exercises/solution/exercise-model/model.hh 2025-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 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 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
+//
+
......@@ -361,7 +361,7 @@ diff -ruN exercises/exercise-model/model.hh exercises/solution/exercise-model/mo
+
+#endif
diff -ruN exercises/exercise-model/README.md exercises/solution/exercise-model/README.md
--- exercises/exercise-model/README.md 2025-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
@@ -1,195 +0,0 @@
-# Exercise Model (DuMuX course)
......@@ -451,7 +451,7 @@ diff -ruN exercises/exercise-model/README.md exercises/solution/exercise-model/R
-
-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>;
-
- // Further property definitions
......
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/solution/exercise-properties/CMakeLists.txt 2025-03-03 15:56:59.911624948 +0100
--- exercises/exercise-properties/CMakeLists.txt 2025-03-07 10:42:02.615882961 +0100
+++ exercises/solution/exercise-properties/CMakeLists.txt 2025-03-07 10:42:02.622882916 +0100
@@ -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
-# the property exercise simulation program
......@@ -13,13 +13,13 @@ diff -ruN exercises/exercise-properties/CMakeLists.txt exercises/solution/exerci
# add a symlink for each input file
diff -ruN exercises/exercise-properties/mylocalresidual.hh exercises/solution/exercise-properties/mylocalresidual.hh
--- exercises/exercise-properties/mylocalresidual.hh 2025-03-03 17:31:36.070153804 +0100
+++ exercises/solution/exercise-properties/mylocalresidual.hh 2025-03-03 17:31:30.340377693 +0100
--- exercises/exercise-properties/mylocalresidual.hh 2025-03-07 11:30:34.876192021 +0100
+++ exercises/solution/exercise-properties/mylocalresidual.hh 2025-03-07 10:42:02.622882916 +0100
@@ -59,8 +59,6 @@
* \note The volVars can be different to allow computing
* the implicit euler time derivative here
*/
- // TODO: dumux-course-task 3
- // TODO: dumux-course-task 3:
- // Eliminate density from the storage term
NumEqVector computeStorage(const Problem& problem,
const SubControlVolume& scv,
......@@ -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 elemFluxVarsCache The cache related to flux computation
*/
- // TODO: dumux-course-task
- // TODO: dumux-course-task 3:
- // Eliminate the density from the flux term
NumEqVector computeFlux(const Problem& problem,
const Element& element,
......@@ -51,8 +51,8 @@ diff -ruN exercises/exercise-properties/mylocalresidual.hh exercises/solution/ex
auto eqIdx = conti0EqIdx + phaseIdx;
flux[eqIdx] = fluxVars.advectiveFlux(phaseIdx, upwindTerm);
diff -ruN exercises/exercise-properties/problem.hh exercises/solution/exercise-properties/problem.hh
--- exercises/exercise-properties/problem.hh 2025-03-03 15:56:59.908625000 +0100
+++ exercises/solution/exercise-properties/problem.hh 2025-03-03 15:56:59.911624948 +0100
--- exercises/exercise-properties/problem.hh 2025-03-07 11:30:34.876192021 +0100
+++ exercises/solution/exercise-properties/problem.hh 2025-03-07 10:42:02.622882916 +0100
@@ -11,6 +11,7 @@
#ifndef 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
*/
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);
if (onInlet_(globalPos))
- values[contiDNAPLEqIdx] = -0.04; // kg / (m * s)
......@@ -77,14 +77,14 @@ diff -ruN exercises/exercise-properties/problem.hh exercises/solution/exercise-p
return values;
}
diff -ruN exercises/exercise-properties/properties.hh exercises/solution/exercise-properties/properties.hh
--- exercises/exercise-properties/properties.hh 2025-03-03 15:56:59.908625000 +0100
+++ exercises/solution/exercise-properties/properties.hh 2025-03-03 15:56:59.911624948 +0100
--- exercises/exercise-properties/properties.hh 2025-03-07 11:30:34.876192021 +0100
+++ exercises/solution/exercise-properties/properties.hh 2025-03-07 10:42:02.622882916 +0100
@@ -27,9 +27,7 @@
#include "spatialparams.hh"
#include "problem.hh"
-
-// TODO: dumux-course-task 3
-// TODO: dumux-course-task 3:
-// Include the local residual header
+#include "mylocalresidual.hh"
......@@ -94,7 +94,7 @@ diff -ruN exercises/exercise-properties/properties.hh exercises/solution/exercis
template<class TypeTag>
struct Problem<TypeTag, TTag::TwoPIncompressible> { using type = TwoPTestProblem<TypeTag>; };
-// TODO: dumux-course-task 3
-// TODO: dumux-course-task 3:
-// Use MyLocalResidual as LocalResidual
-
+template<class TypeTag>
......@@ -103,7 +103,7 @@ diff -ruN exercises/exercise-properties/properties.hh exercises/solution/exercis
// Set the fluid system
template<class TypeTag>
diff -ruN exercises/exercise-properties/README.md exercises/solution/exercise-properties/README.md
--- exercises/exercise-properties/README.md 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
@@ -1,75 +0,0 @@
-# Exercise Properties (DuMuX course)
......
diff -ruN exercises/exercise-runtimeparams/CMakeLists.txt exercises/solution/exercise-runtimeparams/CMakeLists.txt
--- exercises/exercise-runtimeparams/CMakeLists.txt 2025-03-03 15:56:59.908625000 +0100
+++ exercises/solution/exercise-runtimeparams/CMakeLists.txt 2025-03-03 15:56:59.911624948 +0100
--- exercises/exercise-runtimeparams/CMakeLists.txt 2025-03-07 10:42:02.616882954 +0100
+++ exercises/solution/exercise-runtimeparams/CMakeLists.txt 2025-03-07 10:42:02.622882916 +0100
@@ -2,7 +2,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
......@@ -11,36 +11,37 @@ diff -ruN exercises/exercise-runtimeparams/CMakeLists.txt exercises/solution/exe
# add a symlink for each input file
diff -ruN exercises/exercise-runtimeparams/params.input exercises/solution/exercise-runtimeparams/params.input
--- exercises/exercise-runtimeparams/params.input 2024-07-11 13:35:11.652137556 +0200
+++ exercises/solution/exercise-runtimeparams/params.input 2025-03-03 15:23:33.247567621 +0100
@@ -12,11 +12,12 @@
--- exercises/exercise-runtimeparams/params.input 2025-03-07 11:30:34.876192021 +0100
+++ exercises/solution/exercise-runtimeparams/params.input 2025-03-07 11:30:34.878192008 +0100
@@ -12,12 +12,12 @@
AquiferDepth = 2700.0 # m
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)
[SpatialParams]
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.5e3 # Pa
Aquitard.BrooksCoreyLambda = 2.0
Aquitard.Swr = 0.2
Aquitard.Snr = 0.0
diff -ruN exercises/exercise-runtimeparams/problem.hh exercises/solution/exercise-runtimeparams/problem.hh
--- exercises/exercise-runtimeparams/problem.hh 2025-03-03 15:56:59.909624983 +0100
+++ exercises/solution/exercise-runtimeparams/problem.hh 2025-03-03 15:56:59.911624948 +0100
--- exercises/exercise-runtimeparams/problem.hh 2025-03-07 11:30:34.877192015 +0100
+++ exercises/solution/exercise-runtimeparams/problem.hh 2025-03-07 11:30:34.879192001 +0100
@@ -81,12 +81,16 @@
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
-
+ totalAreaSpecificInflow_ = getParam<Scalar>("Problem.TotalAreaSpecificInflow");
// TODO: dumux-course-task 3
// TODO: dumux-course-task 3:
// Set a default value for the above parameter.
-
+ // 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.
+ // if (hasParamInGroup("Problem","TotalAreaSpecificInflow"))
+ // 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
@@ -149,7 +153,7 @@
// units kg/(s*m^2)
// TODO: dumux-course-task 2
// TODO: dumux-course-task 2:
// Incorporate "totalAreaSpecificInflow_" into the injection boundary condition
- values[Indices::conti0EqIdx + FluidSystem::N2Idx]= -1e-4;
+ values[Indices::conti0EqIdx + FluidSystem::N2Idx] = totalAreaSpecificInflow_;
......@@ -60,15 +61,15 @@ diff -ruN exercises/exercise-runtimeparams/problem.hh exercises/solution/exercis
@@ -204,6 +208,7 @@
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
+ Scalar totalAreaSpecificInflow_; //! Rate of the Injection in kg/(s m^2)
Scalar time_;
};
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/solution/exercise-runtimeparams/properties.hh 2025-03-03 15:56:59.911624948 +0100
--- exercises/exercise-runtimeparams/properties.hh 2025-03-07 10:42:02.616882954 +0100
+++ exercises/solution/exercise-runtimeparams/properties.hh 2025-03-07 10:42:02.623882910 +0100
@@ -58,6 +58,6 @@
FluidSystems::H2ON2DefaultPolicy</*fastButSimplifiedRelations=*/ true> >;
};
......@@ -78,7 +79,7 @@ diff -ruN exercises/exercise-runtimeparams/properties.hh exercises/solution/exer
#endif
diff -ruN exercises/exercise-runtimeparams/README.md exercises/solution/exercise-runtimeparams/README.md
--- exercises/exercise-runtimeparams/README.md 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
@@ -1,171 +0,0 @@
-# Exercise Runtime Parameters (DuMuX course)
......@@ -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.
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/solution/exercise-runtimeparams/spatialparams.hh 2025-03-03 15:56:59.911624948 +0100
--- exercises/exercise-runtimeparams/spatialparams.hh 2025-03-07 10:42:02.616882954 +0100
+++ exercises/solution/exercise-runtimeparams/spatialparams.hh 2025-03-07 10:42:02.623882910 +0100
@@ -12,8 +12,8 @@
* 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
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
GXX_RELEASE_WARNING_OPTS=" \
......