diff --git a/.patches/exercise-basic/exercise-basic.patch b/.patches/exercise-basic/exercise-basic.patch index 5b19ef068489b9a70d47d5b3967718a0b7e5343a..49d699e78a1a81c71fab02b050899cfcd1216998 100644 --- a/.patches/exercise-basic/exercise-basic.patch +++ b/.patches/exercise-basic/exercise-basic.patch @@ -1,5 +1,5 @@ diff -ruN exercises/exercise-basic/2pmain.cc exercises/solution/exercise-basic/2pmain.cc ---- exercises/exercise-basic/2pmain.cc 2024-07-17 13:58:18.204850249 +0200 +--- exercises/exercise-basic/2pmain.cc 2025-02-13 16:25:25.584470713 +0100 +++ exercises/solution/exercise-basic/2pmain.cc 1970-01-01 01:00:00.000000000 +0100 @@ -1,145 +0,0 @@ -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- @@ -149,7 +149,7 @@ diff -ruN exercises/exercise-basic/2pmain.cc exercises/solution/exercise-basic/2 -} // end main diff -ruN exercises/exercise-basic/2pnimain.cc exercises/solution/exercise-basic/2pnimain.cc --- exercises/exercise-basic/2pnimain.cc 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-basic/2pnimain.cc 2024-07-17 13:58:18.212850366 +0200 ++++ exercises/solution/exercise-basic/2pnimain.cc 2025-02-13 16:25:25.632470178 +0100 @@ -0,0 +1,138 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: @@ -290,8 +290,8 @@ diff -ruN exercises/exercise-basic/2pnimain.cc exercises/solution/exercise-basic + return 0; +} // end main diff -ruN exercises/exercise-basic/CMakeLists.txt exercises/solution/exercise-basic/CMakeLists.txt ---- exercises/exercise-basic/CMakeLists.txt 2024-07-17 14:10:30.239561158 +0200 -+++ exercises/solution/exercise-basic/CMakeLists.txt 2024-07-17 14:11:44.100637927 +0200 +--- exercises/exercise-basic/CMakeLists.txt 2025-02-13 16:25:25.584470713 +0100 ++++ exercises/solution/exercise-basic/CMakeLists.txt 2025-02-13 16:25:25.632470178 +0100 @@ -1,12 +1,9 @@ # SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-License-Identifier: GPL-3.0-or-later @@ -309,8 +309,8 @@ diff -ruN exercises/exercise-basic/CMakeLists.txt exercises/solution/exercise-ba # add a symlink for each input file add_input_file_links() diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/exercise-basic/injection2pniproblem.hh ---- exercises/exercise-basic/injection2pniproblem.hh 2024-07-17 13:58:18.208850308 +0200 -+++ exercises/solution/exercise-basic/injection2pniproblem.hh 2024-07-17 13:58:18.212850366 +0200 +--- exercises/exercise-basic/injection2pniproblem.hh 2025-02-13 16:25:25.584470713 +0100 ++++ exercises/solution/exercise-basic/injection2pniproblem.hh 2025-02-13 16:25:25.632470178 +0100 @@ -7,7 +7,7 @@ /*! * \file @@ -401,7 +401,7 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex } diff -ruN exercises/exercise-basic/injection2pproblem.hh exercises/solution/exercise-basic/injection2pproblem.hh ---- exercises/exercise-basic/injection2pproblem.hh 2024-07-17 13:58:18.208850308 +0200 +--- exercises/exercise-basic/injection2pproblem.hh 2025-02-13 16:25:25.585470702 +0100 +++ exercises/solution/exercise-basic/injection2pproblem.hh 1970-01-01 01:00:00.000000000 +0100 @@ -1,211 +0,0 @@ -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- @@ -616,8 +616,8 @@ diff -ruN exercises/exercise-basic/injection2pproblem.hh exercises/solution/exer - -#endif diff -ruN exercises/exercise-basic/params.input exercises/solution/exercise-basic/params.input ---- exercises/exercise-basic/params.input 2023-10-13 18:08:54.710521000 +0200 -+++ exercises/solution/exercise-basic/params.input 2024-07-17 10:58:43.905583103 +0200 +--- exercises/exercise-basic/params.input 2025-02-13 16:25:25.585470702 +0100 ++++ exercises/solution/exercise-basic/params.input 2025-02-13 16:25:25.632470178 +0100 @@ -24,7 +24,7 @@ Aquifer.Snr = 0.0 @@ -631,7 +631,7 @@ diff -ruN exercises/exercise-basic/params.input exercises/solution/exercise-basi +SolidThermalConductivity = 2.8 # solid thermal conducitivity of granite +SolidHeatCapacity = 790 # solid heat capacity of granite diff -ruN exercises/exercise-basic/properties2p.hh exercises/solution/exercise-basic/properties2p.hh ---- exercises/exercise-basic/properties2p.hh 2024-07-17 13:58:18.208850308 +0200 +--- exercises/exercise-basic/properties2p.hh 2025-02-13 16:25:25.585470702 +0100 +++ exercises/solution/exercise-basic/properties2p.hh 1970-01-01 01:00:00.000000000 +0100 @@ -1,63 +0,0 @@ -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- @@ -698,8 +698,8 @@ diff -ruN exercises/exercise-basic/properties2p.hh exercises/solution/exercise-b - -#endif diff -ruN exercises/exercise-basic/properties2pni.hh exercises/solution/exercise-basic/properties2pni.hh ---- exercises/exercise-basic/properties2pni.hh 2024-07-17 13:58:18.208850308 +0200 -+++ exercises/solution/exercise-basic/properties2pni.hh 2024-07-17 13:58:18.212850366 +0200 +--- exercises/exercise-basic/properties2pni.hh 2025-02-13 16:25:25.585470702 +0100 ++++ exercises/solution/exercise-basic/properties2pni.hh 2025-02-13 16:25:25.632470178 +0100 @@ -24,13 +24,9 @@ namespace Dumux::Properties { @@ -716,7 +716,7 @@ diff -ruN exercises/exercise-basic/properties2pni.hh exercises/solution/exercise } // end namespace TTag diff -ruN exercises/exercise-basic/README.md exercises/solution/exercise-basic/README.md ---- exercises/exercise-basic/README.md 2024-07-17 14:11:07.348102188 +0200 +--- exercises/exercise-basic/README.md 2025-02-27 12:15:52.107700508 +0100 +++ exercises/solution/exercise-basic/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,94 +0,0 @@ -# Exercise Basics (DuMuX course) @@ -726,7 +726,7 @@ diff -ruN exercises/exercise-basic/README.md exercises/solution/exercise-basic/R -N$_2$ is injected in an aquifer previously saturated with water with an injection rate of 0.0001 kg/(s*m$^2$). -The aquifer is situated 2700 m below sea level and the domain size is 60 m x 40 m. It consists of two layers, a moderately permeable one ($\Omega_1$) and a lower permeable one ($\Omega_2$). - --<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise1_setup.png" width="1000"> +-<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise_basic_setup.png" width="1000"> - -## Preparing the exercise - @@ -810,6 +810,6 @@ diff -ruN exercises/exercise-basic/README.md exercises/solution/exercise-basic/R - - __Boundary conditions:__ Dirichlet boundary conditions at the left boundary with the same temperature gradient as in the initial conditions. For the Neumann conditions, assign an energy flux at the injection point of N$_2$ and no-flow conditions for the energy balance to the rest of the boundaries. - --<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise1_nonisothermal.png" width="800"> +-<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise_basic_nonisothermal.png" width="800"> - -The non-isothermal model requires additional parameters like the thermal conductivity of the solid component. They are already implemented and set in `params.input`, you just need to _uncomment_ them. diff --git a/.patches/exercise-biomineralization/exercise-biomineralization.patch b/.patches/exercise-biomineralization/exercise-biomineralization.patch index fb7d5f82bf2d4648ba12177094ef980e789db685..41c34e3ba4b6d0269a47ea517c2bbf696d71aac4 100644 --- a/.patches/exercise-biomineralization/exercise-biomineralization.patch +++ b/.patches/exercise-biomineralization/exercise-biomineralization.patch @@ -1,6 +1,6 @@ diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/solution/exercise-biomineralization/biominproblem.hh ---- exercises/exercise-biomineralization/biominproblem.hh 2024-07-17 11:27:28.870349025 +0200 -+++ exercises/solution/exercise-biomineralization/biominproblem.hh 2024-07-17 11:27:28.878349199 +0200 +--- exercises/exercise-biomineralization/biominproblem.hh 2025-02-13 16:25:25.586470691 +0100 ++++ exercises/solution/exercise-biomineralization/biominproblem.hh 2025-02-13 16:25:25.632470178 +0100 @@ -19,10 +19,12 @@ // TODO: dumux-course-task @@ -70,8 +70,8 @@ diff -ruN exercises/exercise-biomineralization/biominproblem.hh exercises/soluti { return Kxx_; diff -ruN exercises/exercise-biomineralization/biominspatialparams.hh exercises/solution/exercise-biomineralization/biominspatialparams.hh ---- exercises/exercise-biomineralization/biominspatialparams.hh 2024-07-17 11:27:28.870349025 +0200 -+++ exercises/solution/exercise-biomineralization/biominspatialparams.hh 2024-07-17 11:27:28.878349199 +0200 +--- exercises/exercise-biomineralization/biominspatialparams.hh 2025-02-13 16:25:25.586470691 +0100 ++++ exercises/solution/exercise-biomineralization/biominspatialparams.hh 2025-02-13 16:25:25.632470178 +0100 @@ -18,7 +18,7 @@ #include <dumux/material/fluidmatrixinteractions/porosityprecipitation.hh> // TODO: dumux-course-task @@ -91,8 +91,8 @@ diff -ruN exercises/exercise-biomineralization/biominspatialparams.hh exercises/ Scalar initialPorosity_; diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.hh exercises/solution/exercise-biomineralization/chemistry/simplebiominreactions.hh ---- exercises/exercise-biomineralization/chemistry/simplebiominreactions.hh 2024-07-17 11:27:28.870349025 +0200 -+++ exercises/solution/exercise-biomineralization/chemistry/simplebiominreactions.hh 2024-07-17 11:27:28.878349199 +0200 +--- exercises/exercise-biomineralization/chemistry/simplebiominreactions.hh 2025-02-13 16:25:25.586470691 +0100 ++++ exercises/solution/exercise-biomineralization/chemistry/simplebiominreactions.hh 2025-02-13 16:25:25.632470178 +0100 @@ -73,24 +73,26 @@ // define and compute some parameters for convenience: const Scalar xwCa = volVars.moleFraction(liquidPhaseIdx,CaIdx); @@ -143,8 +143,8 @@ diff -ruN exercises/exercise-biomineralization/chemistry/simplebiominreactions.h private: diff -ruN exercises/exercise-biomineralization/CMakeLists.txt exercises/solution/exercise-biomineralization/CMakeLists.txt ---- exercises/exercise-biomineralization/CMakeLists.txt 2024-07-17 11:27:28.798347462 +0200 -+++ exercises/solution/exercise-biomineralization/CMakeLists.txt 2024-07-17 11:27:28.798347462 +0200 +--- exercises/exercise-biomineralization/CMakeLists.txt 2025-02-13 16:25:25.585470702 +0100 ++++ exercises/solution/exercise-biomineralization/CMakeLists.txt 2025-02-13 16:25:25.632470178 +0100 @@ -2,9 +2,9 @@ # SPDX-License-Identifier: GPL-3.0-or-later @@ -158,8 +158,8 @@ diff -ruN exercises/exercise-biomineralization/CMakeLists.txt exercises/solution # add a symlink for each input file add_input_file_links() diff -ruN exercises/exercise-biomineralization/components/biofilm.hh exercises/solution/exercise-biomineralization/components/biofilm.hh ---- exercises/exercise-biomineralization/components/biofilm.hh 2024-07-17 11:27:28.870349025 +0200 -+++ exercises/solution/exercise-biomineralization/components/biofilm.hh 2024-07-17 11:27:28.878349199 +0200 +--- exercises/exercise-biomineralization/components/biofilm.hh 2025-02-13 16:25:25.586470691 +0100 ++++ exercises/solution/exercise-biomineralization/components/biofilm.hh 2025-02-13 16:25:25.632470178 +0100 @@ -12,9 +12,10 @@ #ifndef DUMUX_BIOFILM_HH #define DUMUX_BIOFILM_HH @@ -173,8 +173,8 @@ diff -ruN exercises/exercise-biomineralization/components/biofilm.hh exercises/s namespace Dumux::Components { diff -ruN exercises/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh exercises/solution/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh ---- exercises/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh 2024-07-17 11:27:28.870349025 +0200 -+++ exercises/solution/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh 2024-07-17 11:27:28.878349199 +0200 +--- exercises/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh 2025-02-13 16:25:25.586470691 +0100 ++++ exercises/solution/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh 2025-02-13 16:25:25.632470178 +0100 @@ -41,10 +41,11 @@ using std::pow; // TODO: dumux-course-task @@ -189,8 +189,8 @@ diff -ruN exercises/exercise-biomineralization/fluidmatrixinteractions/permeabil }; diff -ruN exercises/exercise-biomineralization/fluidsystems/biomin.hh exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh ---- exercises/exercise-biomineralization/fluidsystems/biomin.hh 2024-07-17 11:27:28.870349025 +0200 -+++ exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh 2024-07-17 11:27:28.878349199 +0200 +--- exercises/exercise-biomineralization/fluidsystems/biomin.hh 2025-02-13 16:25:25.586470691 +0100 ++++ exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh 2025-02-13 16:25:25.632470178 +0100 @@ -219,7 +219,7 @@ static void init() { @@ -201,8 +201,8 @@ diff -ruN exercises/exercise-biomineralization/fluidsystems/biomin.hh exercises/ } diff -ruN exercises/exercise-biomineralization/params.input exercises/solution/exercise-biomineralization/params.input ---- exercises/exercise-biomineralization/params.input 2024-07-17 10:58:43.893583024 +0200 -+++ exercises/solution/exercise-biomineralization/params.input 2024-07-17 10:58:43.905583103 +0200 +--- exercises/exercise-biomineralization/params.input 2025-02-13 16:25:25.587470680 +0100 ++++ exercises/solution/exercise-biomineralization/params.input 2025-02-13 16:25:25.632470178 +0100 @@ -16,10 +16,10 @@ InitBiofilm = 0.05 # [-] initial volumefraction biofilm @@ -234,8 +234,8 @@ diff -ruN exercises/exercise-biomineralization/params.input exercises/solution/e +[PowerLaw] +Exponent = 5.0 diff -ruN exercises/exercise-biomineralization/properties.hh exercises/solution/exercise-biomineralization/properties.hh ---- exercises/exercise-biomineralization/properties.hh 2024-07-17 11:27:28.870349025 +0200 -+++ exercises/solution/exercise-biomineralization/properties.hh 2024-07-17 11:27:28.878349199 +0200 +--- exercises/exercise-biomineralization/properties.hh 2025-02-13 16:25:25.587470680 +0100 ++++ exercises/solution/exercise-biomineralization/properties.hh 2025-02-13 16:25:25.632470178 +0100 @@ -18,17 +18,20 @@ #include <dumux/discretization/cctpfa.hh> #include <dumux/porousmediumflow/2pncmin/model.hh> @@ -269,7 +269,7 @@ diff -ruN exercises/exercise-biomineralization/properties.hh exercises/solution/ public: using type = FluidSystems::BioMin<Scalar, CO2Impl, H2OType>; diff -ruN exercises/exercise-biomineralization/README.md exercises/solution/exercise-biomineralization/README.md ---- exercises/exercise-biomineralization/README.md 2024-07-17 10:58:43.889582997 +0200 +--- exercises/exercise-biomineralization/README.md 2025-02-27 13:25:14.896978114 +0100 +++ exercises/solution/exercise-biomineralization/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,257 +0,0 @@ -# Exercise Biomineralization (DuMuX Course) @@ -283,7 +283,7 @@ diff -ruN exercises/exercise-biomineralization/README.md exercises/solution/exer - -Disclaimer: Please note, that this is not a realistic scenario. No one would think of storing gaseous CO<sub>2</sub> in this subcritical setting. - -- +- - - -## Preparing the exercise @@ -417,7 +417,7 @@ diff -ruN exercises/exercise-biomineralization/README.md exercises/solution/exer - - The result for the porosity should look like this: - --  +-  - -### 5. CO<sub>2</sub> injection to test aquitard integrity - @@ -432,7 +432,7 @@ diff -ruN exercises/exercise-biomineralization/README.md exercises/solution/exer -``` -The result for the biomineralization process during the CO<sub>2</sub> injection should look like this: - -- +- - -### 6. Change the permeability law - @@ -530,8 +530,8 @@ diff -ruN exercises/exercise-biomineralization/README.md exercises/solution/exer -output.CellData.append((S_gas_0-S_gas_1),'diffS_gas'); -``` diff -ruN exercises/exercise-biomineralization/solidsystems/biominsolidphase.hh exercises/solution/exercise-biomineralization/solidsystems/biominsolidphase.hh ---- exercises/exercise-biomineralization/solidsystems/biominsolidphase.hh 2024-07-17 11:27:28.870349025 +0200 -+++ exercises/solution/exercise-biomineralization/solidsystems/biominsolidphase.hh 2024-07-17 11:27:28.878349199 +0200 +--- exercises/exercise-biomineralization/solidsystems/biominsolidphase.hh 2025-02-13 16:25:25.587470680 +0100 ++++ exercises/solution/exercise-biomineralization/solidsystems/biominsolidphase.hh 2025-02-13 16:25:25.632470178 +0100 @@ -15,12 +15,12 @@ #include <string> #include <dune/common/exceptions.hh> diff --git a/.patches/exercise-coupling-ff-pm/exercise-coupling-ff-pm.patch b/.patches/exercise-coupling-ff-pm/exercise-coupling-ff-pm.patch index b70084c562c7fab5a9936bb1628adb0f186d6dd7..5882eb22b7c8314a5811e05b62ae948725efd6ff 100644 --- a/.patches/exercise-coupling-ff-pm/exercise-coupling-ff-pm.patch +++ b/.patches/exercise-coupling-ff-pm/exercise-coupling-ff-pm.patch @@ -1,6 +1,6 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/CMakeLists.txt exercises/solution/exercise-coupling-ff-pm/interface/CMakeLists.txt ---- exercises/exercise-coupling-ff-pm/interface/CMakeLists.txt 2024-07-17 19:47:15.764585106 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/interface/CMakeLists.txt 2024-07-17 19:47:15.772585303 +0200 +--- exercises/exercise-coupling-ff-pm/interface/CMakeLists.txt 2025-02-13 16:25:25.587470680 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/interface/CMakeLists.txt 2025-02-13 16:25:25.632470178 +0100 @@ -1,10 +1,30 @@ # SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-License-Identifier: GPL-3.0-or-later @@ -36,8 +36,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/CMakeLists.txt exercises/s # add a symlink for each input file add_input_file_links() diff -ruN exercises/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh exercises/solution/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh ---- exercises/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh 2024-07-17 19:47:15.764585106 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh 2024-07-17 19:47:15.772585303 +0200 +--- exercises/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh 2025-02-13 16:25:25.588470669 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh 2025-02-13 16:25:25.632470178 +0100 @@ -71,8 +71,7 @@ const auto& globalPos = scvf.dofPosition(); @@ -135,8 +135,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh exer } diff -ruN exercises/exercise-coupling-ff-pm/interface/main.cc exercises/solution/exercise-coupling-ff-pm/interface/main.cc ---- exercises/exercise-coupling-ff-pm/interface/main.cc 2024-07-17 19:47:15.764585106 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/interface/main.cc 2024-07-17 19:47:15.772585303 +0200 +--- exercises/exercise-coupling-ff-pm/interface/main.cc 2025-02-13 16:25:25.588470669 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/interface/main.cc 2025-02-13 16:25:25.633470167 +0100 @@ -52,9 +52,7 @@ using FreeflowTypeTag = Properties::TTag::FreeflowOneP; using PorousMediumTypeTag = Properties::TTag::PorousMediumFlowOneP; @@ -263,8 +263,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/main.cc exercises/solution using PorousMediumSolutionVector = GetPropType<PorousMediumTypeTag, Properties::SolutionVector>; VtkOutputModule<PorousMediumGridVariables, PorousMediumSolutionVector> porousMediumVtkWriter(*porousMediumGridVariables, diff -ruN exercises/exercise-coupling-ff-pm/interface/params.input exercises/solution/exercise-coupling-ff-pm/interface/params.input ---- exercises/exercise-coupling-ff-pm/interface/params.input 2024-07-31 14:00:26.830895056 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/interface/params.input 2024-07-31 14:00:26.830895056 +0200 +--- exercises/exercise-coupling-ff-pm/interface/params.input 2025-02-13 16:25:25.588470669 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/interface/params.input 2025-02-13 16:25:25.633470167 +0100 @@ -1,16 +1,14 @@ -# # TODO: dumux-course-task 1.C: uncomment the following group [Grid] -# # for dune-subgrid @@ -301,8 +301,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/params.input exercises/sol Verbosity = true Positions0 = 0.0 1.0 diff -ruN exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh exercises/solution/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh ---- exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh 2024-07-17 19:47:15.764585106 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh 2024-07-24 09:36:05.710158540 +0200 +--- exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh 2025-02-13 16:25:25.588470669 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh 2025-02-13 16:25:25.633470167 +0100 @@ -68,9 +68,10 @@ // set Neumann BCs to all boundaries first values.setAllNeumann(); @@ -316,8 +316,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh // set the coupling boundary condition at the interface if (couplingManager().isCoupledEntity(CouplingManager::darcyIdx, scvf)) diff -ruN exercises/exercise-coupling-ff-pm/interface/properties.hh exercises/solution/exercise-coupling-ff-pm/interface/properties.hh ---- exercises/exercise-coupling-ff-pm/interface/properties.hh 2024-07-17 19:47:15.764585106 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/interface/properties.hh 2024-07-17 19:47:15.772585303 +0200 +--- exercises/exercise-coupling-ff-pm/interface/properties.hh 2025-02-13 16:25:25.588470669 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/interface/properties.hh 2025-02-13 16:25:25.633470167 +0100 @@ -16,9 +16,9 @@ #include <dumux/multidomain/staggeredtraits.hh> #include <dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh> @@ -374,7 +374,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/properties.hh exercises/so template<class TypeTag> diff -ruN exercises/exercise-coupling-ff-pm/interface/README.md exercises/solution/exercise-coupling-ff-pm/interface/README.md ---- exercises/exercise-coupling-ff-pm/interface/README.md 2024-07-31 14:00:26.830895056 +0200 +--- exercises/exercise-coupling-ff-pm/interface/README.md 2025-02-27 13:37:11.431157884 +0100 +++ exercises/solution/exercise-coupling-ff-pm/interface/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,175 +0,0 @@ -## 1. Changing the interface @@ -382,7 +382,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/README.md exercises/soluti -In this part of the exercise, a simple coupled system consisting of a one-phase (1p) free flow and a one-phase flow in a porous medium is set up. Both subproblems have no-flow boundaries at the sides. -Currently, a velocity profile is set on the upper free flow boundary, which leads to a vertical flow into the porous medium: - -- +- - -Note that we neglect the influence of gravity and only solve for the stationary problem in this exercise. - @@ -546,15 +546,15 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/README.md exercises/soluti - -Recompile and rerun to check if the final result looks something like this: - -- +- - -*Extra Points:* -Rather than enforcing a pressure difference across the domain, an inflow velocity profile could be set. -What changes to the left boundary conditions in the free-flow domain would you make to introduce this? What conditions can be enforced on the right boundary? -Hint: A relation between velocity and position is used for the vertical velocity component in the original form of the `dirichletAtPos` method. diff -ruN exercises/exercise-coupling-ff-pm/models/CMakeLists.txt exercises/solution/exercise-coupling-ff-pm/models/CMakeLists.txt ---- exercises/exercise-coupling-ff-pm/models/CMakeLists.txt 2024-07-17 19:47:15.764585106 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/models/CMakeLists.txt 2024-07-17 19:47:15.772585303 +0200 +--- exercises/exercise-coupling-ff-pm/models/CMakeLists.txt 2025-02-13 16:25:25.589470658 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/models/CMakeLists.txt 2025-02-13 16:25:25.633470167 +0100 @@ -1,9 +1,32 @@ # SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-License-Identifier: GPL-3.0-or-later @@ -593,8 +593,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/CMakeLists.txt exercises/solu + +dune_symlink_to_source_files(FILES "params_orig_a.input" "params_b_c.input" plotFluxes.py) diff -ruN exercises/exercise-coupling-ff-pm/models/main.cc exercises/solution/exercise-coupling-ff-pm/models/main.cc ---- exercises/exercise-coupling-ff-pm/models/main.cc 2024-07-17 19:47:15.764585106 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/models/main.cc 2024-07-17 19:47:15.772585303 +0200 +--- exercises/exercise-coupling-ff-pm/models/main.cc 2025-02-13 16:25:25.589470658 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/models/main.cc 2025-02-13 16:25:25.633470167 +0100 @@ -127,9 +127,15 @@ auto porousMediumGridVariables = std::make_shared<PorousMediumGridVariables>(porousMediumProblem, porousMediumFvGridGeometry); porousMediumGridVariables->init(sol[porousMediumIdx]); @@ -616,7 +616,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/main.cc exercises/solution/ex GetPropType<FreeflowTypeTag, Properties::IOFields>::initOutputModule(freeflowVtkWriter); diff -ruN exercises/exercise-coupling-ff-pm/models/params_b_c.input exercises/solution/exercise-coupling-ff-pm/models/params_b_c.input --- exercises/exercise-coupling-ff-pm/models/params_b_c.input 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/models/params_b_c.input 2024-07-16 16:24:43.138116435 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/models/params_b_c.input 2025-02-13 16:25:25.633470167 +0100 @@ -0,0 +1,57 @@ +[TimeLoop] +DtInitial = 100 # s @@ -676,7 +676,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/params_b_c.input exercises/so +[Assembly] +NumericDifference.BaseEpsilon = 1e-8 diff -ruN exercises/exercise-coupling-ff-pm/models/params.input exercises/solution/exercise-coupling-ff-pm/models/params.input ---- exercises/exercise-coupling-ff-pm/models/params.input 2024-07-17 19:47:15.764585106 +0200 +--- exercises/exercise-coupling-ff-pm/models/params.input 2025-02-13 16:25:25.589470658 +0100 +++ exercises/solution/exercise-coupling-ff-pm/models/params.input 1970-01-01 01:00:00.000000000 +0100 @@ -1,58 +0,0 @@ -[TimeLoop] @@ -739,7 +739,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/params.input exercises/soluti -NumericDifference.BaseEpsilon = 1e-8 diff -ruN exercises/exercise-coupling-ff-pm/models/params_orig_a.input exercises/solution/exercise-coupling-ff-pm/models/params_orig_a.input --- exercises/exercise-coupling-ff-pm/models/params_orig_a.input 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/models/params_orig_a.input 2024-07-17 10:59:09.002904720 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/models/params_orig_a.input 2025-02-13 16:25:25.633470167 +0100 @@ -0,0 +1,56 @@ +[TimeLoop] +DtInitial = 100 # s @@ -798,8 +798,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/params_orig_a.input exercises +[Assembly] +NumericDifference.BaseEpsilon = 1e-8 diff -ruN exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh ---- exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh 2024-07-17 19:47:15.764585106 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh 2024-07-17 19:47:15.772585303 +0200 +--- exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh 2025-02-13 16:25:25.589470658 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh 2025-02-13 16:25:25.633470167 +0100 @@ -52,10 +52,15 @@ // primary variable indices static constexpr int conti0EqIdx = Indices::conti0EqIdx; @@ -921,8 +921,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh exe std::shared_ptr<CouplingManager> couplingManager_; diff -ruN exercises/exercise-coupling-ff-pm/models/properties.hh exercises/solution/exercise-coupling-ff-pm/models/properties.hh ---- exercises/exercise-coupling-ff-pm/models/properties.hh 2024-07-17 19:47:15.764585106 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/models/properties.hh 2024-07-17 19:47:15.772585303 +0200 +--- exercises/exercise-coupling-ff-pm/models/properties.hh 2025-02-13 16:25:25.589470658 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/models/properties.hh 2025-02-13 16:25:25.633470167 +0100 @@ -25,12 +25,14 @@ #include <dumux/discretization/cctpfa.hh> #include <dumux/material/fluidmatrixinteractions/diffusivityconstanttortuosity.hh> @@ -1005,7 +1005,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/properties.hh exercises/solut template<class TypeTag> struct EnableGridGeometryCache<TypeTag, TTag::FreeflowNC> { static constexpr bool value = true; }; diff -ruN exercises/exercise-coupling-ff-pm/models/README.md exercises/solution/exercise-coupling-ff-pm/models/README.md ---- exercises/exercise-coupling-ff-pm/models/README.md 2024-07-18 12:31:29.324898816 +0200 +--- exercises/exercise-coupling-ff-pm/models/README.md 2025-02-13 16:25:25.589470658 +0100 +++ exercises/solution/exercise-coupling-ff-pm/models/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,118 +0,0 @@ -## 2. Changing the porous medium model @@ -1127,7 +1127,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/README.md exercises/solution/ - -Now you are able to simulate a complete drying of the porous medium. Have a look the resulting liquid saturation distribution within the porous medium (with using paraview). diff -ruN exercises/exercise-coupling-ff-pm/README.md exercises/solution/exercise-coupling-ff-pm/README.md ---- exercises/exercise-coupling-ff-pm/README.md 2024-07-31 14:00:29.098952621 +0200 +--- exercises/exercise-coupling-ff-pm/README.md 2025-02-13 16:25:25.587470680 +0100 +++ exercises/solution/exercise-coupling-ff-pm/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,125 +0,0 @@ -# Exercise Coupling free flow/porous medium flow (DuMuX Course) @@ -1256,8 +1256,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/README.md exercises/solution/exercis -* [**Exercise 2:** Changing the porous medium model](./models/README.md) -* [**Exercise 3:** Introducing a turbulence model in the free flow domain](./turbulence/README.md) diff -ruN exercises/exercise-coupling-ff-pm/turbulence/CMakeLists.txt exercises/solution/exercise-coupling-ff-pm/turbulence/CMakeLists.txt ---- exercises/exercise-coupling-ff-pm/turbulence/CMakeLists.txt 2024-07-17 19:47:15.764585106 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/CMakeLists.txt 2024-07-17 19:47:15.772585303 +0200 +--- exercises/exercise-coupling-ff-pm/turbulence/CMakeLists.txt 2025-02-13 16:25:25.589470658 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/CMakeLists.txt 2025-02-13 16:25:25.633470167 +0100 @@ -1,10 +1,33 @@ # SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-License-Identifier: GPL-3.0-or-later @@ -1296,8 +1296,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/CMakeLists.txt exercises/ # add a symlink for each input file add_input_file_links() diff -ruN exercises/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh exercises/solution/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh ---- exercises/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh 2024-07-17 19:47:15.764585106 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh 2024-07-17 19:47:15.772585303 +0200 +--- exercises/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh 2025-02-13 16:25:25.590470647 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh 2025-02-13 16:25:25.633470167 +0100 @@ -8,8 +8,8 @@ * \file * \brief The free-flow sub problem @@ -1513,8 +1513,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh exe return values; } diff -ruN exercises/exercise-coupling-ff-pm/turbulence/main.cc exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc ---- exercises/exercise-coupling-ff-pm/turbulence/main.cc 2024-07-17 19:47:15.764585106 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc 2024-07-17 19:47:15.772585303 +0200 +--- exercises/exercise-coupling-ff-pm/turbulence/main.cc 2025-02-13 16:25:25.590470647 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc 2025-02-13 16:25:25.633470167 +0100 @@ -122,11 +122,12 @@ couplingManager->init(freeflowProblem, porousMediumProblem, sol); @@ -1545,7 +1545,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/main.cc exercises/solutio porousMediumProblem->postTimeStep(sol[porousMediumIdx], *porousMediumGridVariables, timeLoop->timeStepSize()); diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_b.input exercises/solution/exercise-coupling-ff-pm/turbulence/params_b.input --- exercises/exercise-coupling-ff-pm/turbulence/params_b.input 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_b.input 2024-07-16 16:24:43.138116435 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_b.input 2025-02-13 16:25:25.633470167 +0100 @@ -0,0 +1,72 @@ +[TimeLoop] +DtInitial = 1e-1 # [s] @@ -1621,7 +1621,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_b.input exercises/ +IsFlatWallBounded = True diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_c_d.input exercises/solution/exercise-coupling-ff-pm/turbulence/params_c_d.input --- exercises/exercise-coupling-ff-pm/turbulence/params_c_d.input 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_c_d.input 2024-07-16 16:24:43.138116435 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_c_d.input 2025-02-13 16:25:25.633470167 +0100 @@ -0,0 +1,72 @@ +[TimeLoop] +DtInitial = 1e-1 # [s] @@ -1696,7 +1696,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_c_d.input exercise +[RANS] +IsFlatWallBounded = True diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params.input exercises/solution/exercise-coupling-ff-pm/turbulence/params.input ---- exercises/exercise-coupling-ff-pm/turbulence/params.input 2024-07-16 16:24:43.138116435 +0200 +--- exercises/exercise-coupling-ff-pm/turbulence/params.input 2025-02-13 16:25:25.590470647 +0100 +++ exercises/solution/exercise-coupling-ff-pm/turbulence/params.input 1970-01-01 01:00:00.000000000 +0100 @@ -1,73 +0,0 @@ -[TimeLoop] @@ -1774,7 +1774,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params.input exercises/so -SolidHeatCapacity = 790 diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_orig_a.input exercises/solution/exercise-coupling-ff-pm/turbulence/params_orig_a.input --- exercises/exercise-coupling-ff-pm/turbulence/params_orig_a.input 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_orig_a.input 2024-07-16 16:24:43.138116435 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_orig_a.input 2025-02-13 16:25:25.633470167 +0100 @@ -0,0 +1,72 @@ +[TimeLoop] +DtInitial = 1e-1 # [s] @@ -1849,8 +1849,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_orig_a.input exerc +[RANS] +IsFlatWallBounded = True diff -ruN exercises/exercise-coupling-ff-pm/turbulence/properties.hh exercises/solution/exercise-coupling-ff-pm/turbulence/properties.hh ---- exercises/exercise-coupling-ff-pm/turbulence/properties.hh 2024-07-17 19:47:15.764585106 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/properties.hh 2024-07-17 19:47:15.772585303 +0200 +--- exercises/exercise-coupling-ff-pm/turbulence/properties.hh 2025-02-13 16:25:25.590470647 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/properties.hh 2025-02-13 16:25:25.633470167 +0100 @@ -8,8 +8,8 @@ * \file * \brief The coupled exercise properties file or the turbulent case. @@ -1892,7 +1892,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/properties.hh exercises/s // Set the coupling manager diff -ruN exercises/exercise-coupling-ff-pm/turbulence/README.md exercises/solution/exercise-coupling-ff-pm/turbulence/README.md ---- exercises/exercise-coupling-ff-pm/turbulence/README.md 2024-07-24 09:37:33.016088677 +0200 +--- exercises/exercise-coupling-ff-pm/turbulence/README.md 2025-02-27 13:35:35.491939880 +0100 +++ exercises/solution/exercise-coupling-ff-pm/turbulence/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,126 +0,0 @@ -## 3. Use a turbulence model in the free flow domain @@ -1974,7 +1974,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/README.md exercises/solut -In paraview you may compare the magnitude of $`D`$ and $`D_\textrm{t}`$ to see where the transport is affected by turbulence. -The result for the turbulent diffusivity should look like this: - -- +- - -### Task B: Use symmetry boundary conditions - diff --git a/.patches/exercise-fluidsystem/exercise-fluidsystem.patch b/.patches/exercise-fluidsystem/exercise-fluidsystem.patch index 5f89a35e95dc5ee3c24520c62c0d1d1cdc9097d6..cfd62958c8da4da5943ba173692a51bbd6406c53 100644 --- a/.patches/exercise-fluidsystem/exercise-fluidsystem.patch +++ b/.patches/exercise-fluidsystem/exercise-fluidsystem.patch @@ -1,6 +1,6 @@ diff -ruN exercises/exercise-fluidsystem/2p2cproblem.hh exercises/solution/exercise-fluidsystem/2p2cproblem.hh ---- exercises/exercise-fluidsystem/2p2cproblem.hh 2024-07-18 13:47:42.192717667 +0200 -+++ exercises/solution/exercise-fluidsystem/2p2cproblem.hh 2024-07-18 13:47:42.192717667 +0200 +--- exercises/exercise-fluidsystem/2p2cproblem.hh 2025-02-13 16:25:25.590470647 +0100 ++++ exercises/solution/exercise-fluidsystem/2p2cproblem.hh 2025-02-13 16:25:25.633470167 +0100 @@ -12,7 +12,7 @@ #ifndef DUMUX_EXERCISE_FLUIDSYSTEM_B_PROBLEM_HH #define DUMUX_EXERCISE_FLUIDSYSTEM_B_PROBLEM_HH @@ -11,8 +11,8 @@ diff -ruN exercises/exercise-fluidsystem/2p2cproblem.hh exercises/solution/exerc #include <dumux/common/boundarytypes.hh> #include <dumux/common/properties.hh> diff -ruN exercises/exercise-fluidsystem/2pproperties.hh exercises/solution/exercise-fluidsystem/2pproperties.hh ---- exercises/exercise-fluidsystem/2pproperties.hh 2024-07-18 14:25:25.701687082 +0200 -+++ exercises/solution/exercise-fluidsystem/2pproperties.hh 2024-07-18 13:47:42.196717705 +0200 +--- exercises/exercise-fluidsystem/2pproperties.hh 2025-02-13 16:25:25.590470647 +0100 ++++ exercises/solution/exercise-fluidsystem/2pproperties.hh 2025-02-13 16:25:25.633470167 +0100 @@ -25,15 +25,13 @@ #include "spatialparams.hh" @@ -52,8 +52,8 @@ diff -ruN exercises/exercise-fluidsystem/2pproperties.hh exercises/solution/exer public: using type = typename FluidSystems::TwoPImmiscible<Scalar, LiquidWaterPhase, LiquidMyComponentPhase>; diff -ruN exercises/exercise-fluidsystem/aparams.input exercises/solution/exercise-fluidsystem/aparams.input ---- exercises/exercise-fluidsystem/aparams.input 2024-07-18 13:47:42.192717667 +0200 -+++ exercises/solution/exercise-fluidsystem/aparams.input 2024-07-18 13:47:42.196717705 +0200 +--- exercises/exercise-fluidsystem/aparams.input 2025-02-13 16:25:25.591470635 +0100 ++++ exercises/solution/exercise-fluidsystem/aparams.input 2025-02-13 16:25:25.633470167 +0100 @@ -3,7 +3,7 @@ DtInitial = 10 # initial time step size [s] @@ -70,8 +70,8 @@ diff -ruN exercises/exercise-fluidsystem/aparams.input exercises/solution/exerci -PlotDensity = false # plot density over pressure for your component +PlotDensity = true # plot density over pressure for your component diff -ruN exercises/exercise-fluidsystem/bparams.input exercises/solution/exercise-fluidsystem/bparams.input ---- exercises/exercise-fluidsystem/bparams.input 2024-07-18 13:47:42.192717667 +0200 -+++ exercises/solution/exercise-fluidsystem/bparams.input 2024-07-18 13:47:42.196717705 +0200 +--- exercises/exercise-fluidsystem/bparams.input 2025-02-13 16:25:25.591470635 +0100 ++++ exercises/solution/exercise-fluidsystem/bparams.input 2025-02-13 16:25:25.633470167 +0100 @@ -3,7 +3,7 @@ DtInitial = 10 # initial time step size [s] @@ -82,8 +82,8 @@ diff -ruN exercises/exercise-fluidsystem/bparams.input exercises/solution/exerci [SpatialParams] BrooksCoreyPcEntry = 5.0e2 # [Pa] diff -ruN exercises/exercise-fluidsystem/CMakeLists.txt exercises/solution/exercise-fluidsystem/CMakeLists.txt ---- exercises/exercise-fluidsystem/CMakeLists.txt 2024-07-17 14:23:53.007057346 +0200 -+++ exercises/solution/exercise-fluidsystem/CMakeLists.txt 2024-07-17 14:23:53.011057409 +0200 +--- exercises/exercise-fluidsystem/CMakeLists.txt 2025-02-13 16:25:25.590470647 +0100 ++++ exercises/solution/exercise-fluidsystem/CMakeLists.txt 2025-02-13 16:25:25.633470167 +0100 @@ -3,18 +3,16 @@ # executables for exercise part a & b @@ -110,8 +110,8 @@ diff -ruN exercises/exercise-fluidsystem/CMakeLists.txt exercises/solution/exerc -# add a symlink for the grids folder -dune_symlink_to_source_files(FILES grids) diff -ruN exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh ---- exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh 2024-07-18 13:47:42.192717667 +0200 -+++ exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh 2024-07-18 13:47:42.196717705 +0200 +--- exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh 2025-02-13 16:25:25.591470635 +0100 ++++ exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh 2025-02-13 16:25:25.633470167 +0100 @@ -38,7 +38,7 @@ static std::string name() { return "MyCompressibleComponent"; } @@ -173,8 +173,8 @@ diff -ruN exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh e }; diff -ruN exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh ---- exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh 2024-07-18 13:47:42.192717667 +0200 -+++ exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh 2024-07-18 13:47:42.196717705 +0200 +--- exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh 2025-02-13 16:25:25.591470635 +0100 ++++ exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh 2025-02-13 16:25:25.633470167 +0100 @@ -48,10 +48,7 @@ */ static Scalar molarMass() @@ -213,7 +213,7 @@ diff -ruN exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh diff -ruN exercises/exercise-fluidsystem/components/plotdensityfunction.py exercises/solution/exercise-fluidsystem/components/plotdensityfunction.py --- exercises/exercise-fluidsystem/components/plotdensityfunction.py 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-fluidsystem/components/plotdensityfunction.py 2024-07-18 13:47:42.196717705 +0200 ++++ exercises/solution/exercise-fluidsystem/components/plotdensityfunction.py 2025-02-13 16:25:25.633470167 +0100 @@ -0,0 +1,22 @@ +#!usr/bin/env python +# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder @@ -238,8 +238,8 @@ diff -ruN exercises/exercise-fluidsystem/components/plotdensityfunction.py exerc +plt.semilogx(p, r) +plt.show() diff -ruN exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh ---- exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh 2024-07-18 13:47:42.192717667 +0200 -+++ exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh 2024-07-18 13:47:42.196717705 +0200 +--- exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh 2025-02-13 16:25:25.591470635 +0100 ++++ exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh 2025-02-13 16:25:25.633470167 +0100 @@ -20,10 +20,10 @@ #include <dumux/material/fluidsystems/base.hh> @@ -276,8 +276,8 @@ diff -ruN exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent else { diff -ruN exercises/exercise-fluidsystem/main.cc exercises/solution/exercise-fluidsystem/main.cc ---- exercises/exercise-fluidsystem/main.cc 2024-07-18 13:47:42.192717667 +0200 -+++ exercises/solution/exercise-fluidsystem/main.cc 2024-07-18 13:47:42.196717705 +0200 +--- exercises/exercise-fluidsystem/main.cc 2025-02-13 16:25:25.591470635 +0100 ++++ exercises/solution/exercise-fluidsystem/main.cc 2025-02-13 16:25:25.633470167 +0100 @@ -36,7 +36,7 @@ int main(int argc, char** argv) { @@ -303,7 +303,7 @@ diff -ruN exercises/exercise-fluidsystem/main.cc exercises/solution/exercise-flu using IOFields = GetPropType<TypeTag, Properties::IOFields>; VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name()); diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-fluidsystem/README.md ---- exercises/exercise-fluidsystem/README.md 2024-07-18 14:23:13.194674429 +0200 +--- exercises/exercise-fluidsystem/README.md 2025-02-27 13:29:17.190831141 +0100 +++ exercises/solution/exercise-fluidsystem/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,265 +0,0 @@ -# Exercise Fluidsystem (DuMuX Course) @@ -314,7 +314,7 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f - -The domain has a size of 60 m x 60 m and contains two low-permeable lenses. Initially, the domain is fully water saturated and the fictitious component is injected through the middle portion of the upper boundary by means of a Neumann boundary condition. The remaining parts of the upper and the entire lower boundary are Neumann no-flow while on the two lateral sides Dirichlet boundary conditions are applied (hydrostatic conditions for the pressure and zero saturation). - --<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise-fluidsystem_setup.png" width="700"> +-<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise_fluidsystem_setup.png" width="700"> - - -## Task 1: Getting familiar with the code @@ -460,7 +460,7 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f - -The saturation distribution of the nonwetting phase, here S$`_{napl}`$ (the phase consisting of our fictitious incompressible component), at the final simulation time should look like this: - -- +- - -### Task 2.2: Compressible component - @@ -470,12 +470,12 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f - -where $`p`$ is the pressure and $`\rho_{min} = 1440.0 \, kg/m^3`$, $`\rho_{max} = 1480.0 \, kg/m^3`$ and $`k = 5 \cdot 10^{-7} `$. Also, make sure the header is included in the `2pproperties.hh` file by uncommenting the corresponding line. Furthermore, the new component has to be set as a liquid phase in the fluid system. To do so, search for `TODO: dumux-course-task 2.2`. Comment out the corresponding line and uncomment the other. The density distribution of this phase (rho$`_{napl}`$) at the final simulation time should look like this: - -- +- - -You can plot the density of the phase consisting of your compressible component by setting `PlotDensity` in `aparams.input` to `true` and starting the simulation again. -Compare the gnuplot output to the following plot of the density function from above: - --<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise-fluidsystem_a_densityfunction.png" width="500"> +-<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise_fluidsystem_a_densityfunction.png" width="500"> - -## Task 3: Implement a new fluid system - Part b - @@ -572,8 +572,8 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f -./exercise_fluidsystem_b bparams.input -``` diff -ruN exercises/exercise-fluidsystem/spatialparams.hh exercises/solution/exercise-fluidsystem/spatialparams.hh ---- exercises/exercise-fluidsystem/spatialparams.hh 2024-07-18 13:47:42.192717667 +0200 -+++ exercises/solution/exercise-fluidsystem/spatialparams.hh 2024-07-18 13:47:42.196717705 +0200 +--- exercises/exercise-fluidsystem/spatialparams.hh 2025-02-13 16:25:25.591470635 +0100 ++++ exercises/solution/exercise-fluidsystem/spatialparams.hh 2025-02-13 16:25:25.633470167 +0100 @@ -113,13 +113,17 @@ template<class FluidSystem> int wettingPhaseAtPos(const GlobalPosition& globalPos) const diff --git a/.patches/exercise-fractures/exercise-fractures.patch b/.patches/exercise-fractures/exercise-fractures.patch index 2fab87df54d02e9c372919c601547d9771046742..b9c9d0d72f333e09e17bfa9c508862ff405b1c4e 100644 --- a/.patches/exercise-fractures/exercise-fractures.patch +++ b/.patches/exercise-fractures/exercise-fractures.patch @@ -1,6 +1,6 @@ diff -ruN exercises/exercise-fractures/CMakeLists.txt exercises/solution/exercise-fractures/CMakeLists.txt ---- exercises/exercise-fractures/CMakeLists.txt 2024-07-17 11:27:28.798347462 +0200 -+++ exercises/solution/exercise-fractures/CMakeLists.txt 2024-07-17 11:27:28.798347462 +0200 +--- exercises/exercise-fractures/CMakeLists.txt 2025-02-13 16:25:25.591470635 +0100 ++++ exercises/solution/exercise-fractures/CMakeLists.txt 2025-02-13 16:25:25.633470167 +0100 @@ -1,9 +1,26 @@ # SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-License-Identifier: GPL-3.0-or-later @@ -32,7 +32,7 @@ diff -ruN exercises/exercise-fractures/CMakeLists.txt exercises/solution/exercis add_input_file_links() diff -ruN exercises/exercise-fractures/exercise_fractures_solution_a.input exercises/solution/exercise-fractures/exercise_fractures_solution_a.input --- exercises/exercise-fractures/exercise_fractures_solution_a.input 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-fractures/exercise_fractures_solution_a.input 2020-11-12 12:07:04.129814352 +0100 ++++ exercises/solution/exercise-fractures/exercise_fractures_solution_a.input 2025-02-13 16:25:25.633470167 +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 2020-11-12 12:07:04.129814352 +0100 ++++ exercises/solution/exercise-fractures/exercise_fractures_solution_b.input 2025-02-13 16:25:25.633470167 +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 2020-11-12 12:07:04.129814352 +0100 ++++ exercises/solution/exercise-fractures/exercise_fractures_solution_c.input 2025-02-13 16:25:25.633470167 +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 2024-07-17 11:27:28.874349112 +0200 -+++ exercises/solution/exercise-fractures/fractureproblem.hh 2024-07-17 11:27:28.882349286 +0200 +--- exercises/exercise-fractures/fractureproblem.hh 2025-02-13 16:25:25.592470624 +0100 ++++ exercises/solution/exercise-fractures/fractureproblem.hh 2025-02-13 16:25:25.633470167 +0100 @@ -59,6 +59,10 @@ std::shared_ptr<typename ParentType::SpatialParams> spatialParams, const std::string& paramGroup) @@ -199,8 +199,8 @@ diff -ruN exercises/exercise-fractures/fractureproblem.hh exercises/solution/exe return values; } diff -ruN exercises/exercise-fractures/fracturespatialparams.hh exercises/solution/exercise-fractures/fracturespatialparams.hh ---- exercises/exercise-fractures/fracturespatialparams.hh 2024-07-17 11:27:28.874349112 +0200 -+++ exercises/solution/exercise-fractures/fracturespatialparams.hh 2024-07-17 11:27:28.886349373 +0200 +--- exercises/exercise-fractures/fracturespatialparams.hh 2025-02-13 16:25:25.592470624 +0100 ++++ exercises/solution/exercise-fractures/fracturespatialparams.hh 2025-02-13 16:25:25.633470167 +0100 @@ -41,6 +41,7 @@ using Element = typename GridView::template Codim<0>::Entity; using GlobalPosition = typename Element::Geometry::GlobalCoordinate; @@ -322,8 +322,8 @@ diff -ruN exercises/exercise-fractures/fracturespatialparams.hh exercises/soluti } // end namespace Dumux diff -ruN exercises/exercise-fractures/main.cc exercises/solution/exercise-fractures/main.cc ---- exercises/exercise-fractures/main.cc 2024-07-17 11:27:28.874349112 +0200 -+++ exercises/solution/exercise-fractures/main.cc 2024-07-17 11:27:28.886349373 +0200 +--- exercises/exercise-fractures/main.cc 2025-02-13 16:25:25.593470613 +0100 ++++ exercises/solution/exercise-fractures/main.cc 2025-02-13 16:25:25.634470156 +0100 @@ -245,4 +245,5 @@ Parameters::print(); @@ -331,8 +331,8 @@ diff -ruN exercises/exercise-fractures/main.cc exercises/solution/exercise-fract + }// end main diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exercise-fractures/matrixproblem.hh ---- exercises/exercise-fractures/matrixproblem.hh 2024-07-17 11:27:28.874349112 +0200 -+++ exercises/solution/exercise-fractures/matrixproblem.hh 2024-07-17 11:27:28.886349373 +0200 +--- exercises/exercise-fractures/matrixproblem.hh 2025-02-13 16:25:25.594470602 +0100 ++++ exercises/solution/exercise-fractures/matrixproblem.hh 2025-02-13 16:25:25.634470156 +0100 @@ -65,11 +65,18 @@ : ParentType(gridGeometry, spatialParams, paramGroup) , boundaryOverPressure_(getParamFromGroup<Scalar>(paramGroup, "Problem.BoundaryOverPressure")) @@ -456,8 +456,8 @@ diff -ruN exercises/exercise-fractures/matrixproblem.hh exercises/solution/exerc } // end namespace Dumux diff -ruN exercises/exercise-fractures/matrixspatialparams.hh exercises/solution/exercise-fractures/matrixspatialparams.hh ---- exercises/exercise-fractures/matrixspatialparams.hh 2024-07-17 11:27:28.874349112 +0200 -+++ exercises/solution/exercise-fractures/matrixspatialparams.hh 2024-07-17 11:27:28.886349373 +0200 +--- exercises/exercise-fractures/matrixspatialparams.hh 2025-02-13 16:25:25.594470602 +0100 ++++ exercises/solution/exercise-fractures/matrixspatialparams.hh 2025-02-13 16:25:25.634470156 +0100 @@ -40,6 +40,7 @@ using Element = typename GridView::template Codim<0>::Entity; using GlobalPosition = typename Element::Geometry::GlobalCoordinate; @@ -467,8 +467,8 @@ diff -ruN exercises/exercise-fractures/matrixspatialparams.hh exercises/solution public: diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise-fractures/params.input ---- exercises/exercise-fractures/params.input 2023-10-13 18:08:54.714521020 +0200 -+++ exercises/solution/exercise-fractures/params.input 2020-05-08 12:16:18.919855703 +0200 +--- exercises/exercise-fractures/params.input 2025-02-13 16:25:25.594470602 +0100 ++++ exercises/solution/exercise-fractures/params.input 2025-02-13 16:25:25.634470156 +0100 @@ -5,6 +5,9 @@ [Problem] @@ -510,8 +510,8 @@ diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise- +SpatialParams.Swr = 0.0 +SpatialParams.SwrBarrier = 0.0 diff -ruN exercises/exercise-fractures/properties.hh exercises/solution/exercise-fractures/properties.hh ---- exercises/exercise-fractures/properties.hh 2024-07-17 11:27:28.874349112 +0200 -+++ exercises/solution/exercise-fractures/properties.hh 2024-07-17 11:27:28.886349373 +0200 +--- exercises/exercise-fractures/properties.hh 2025-02-13 16:25:25.594470602 +0100 ++++ exercises/solution/exercise-fractures/properties.hh 2025-02-13 16:25:25.634470156 +0100 @@ -45,6 +45,7 @@ // with tpfa. #include <dumux/multidomain/facet/cellcentered/tpfa/properties.hh> @@ -530,7 +530,7 @@ diff -ruN exercises/exercise-fractures/properties.hh exercises/solution/exercise struct Grid<TypeTag, TTag::MatrixProblem> { using type = Dune::ALUGrid<2, 2, Dune::simplex, Dune::conforming>; }; template<class TypeTag> diff -ruN exercises/exercise-fractures/README.md exercises/solution/exercise-fractures/README.md ---- exercises/exercise-fractures/README.md 2023-10-13 18:08:54.714521020 +0200 +--- exercises/exercise-fractures/README.md 2025-02-27 13:31:58.057789567 +0100 +++ exercises/solution/exercise-fractures/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,216 +0,0 @@ -# Exercise Discrete Fractures (DuMuX Course) @@ -541,7 +541,7 @@ diff -ruN exercises/exercise-fractures/README.md exercises/solution/exercise-fra - -We consider a domain of 100 x 100 m with a set of ten fractures. This geometry has been taken from [Flemisch et al. (2018)](https://www.sciencedirect.com/science/article/pii/S0309170817300143), but was slightly modified to better fit to the purposes of this exercise. Apart from one fracture extending up to the top boundary, all other fractures are immersed, meaning that the fracture tips lie within the domain (see image below). - -- +- - -In the initial setup of this exercise, we want to consider buoyancy-driven upwards migration of nitrogen (gas) in a fully water-saturated medium. Thus, as initial conditions we use hydrostatic pressure conditions and a zero nitrogen saturation. On the boundaries we apply Neumann no-flow boundary conditions on the left and right sides, while using Dirichlet boundary conditions on the top and the bottom of the domain. We set the initial conditions as boundary conditions on the Dirichlet segments, except for the middle part of the lower boundary ($`y = 0 \wedge x > 25 \wedge x < 75`$), where we set a non-zero nitrogen saturation (settable via the input file). Through this segment of the lower boundary, nitrogen can intrude the domain and flow upwards driven by buoyancy. - @@ -650,7 +650,7 @@ diff -ruN exercises/exercise-fractures/README.md exercises/solution/exercise-fra - -Take a look at the results by opening the files `matrix.pvd` and `fractures.pvd` with _Paraview_. In order to increase the visibility of the fracture solution, you might want to apply the tube filter to it (e.g. with a tube radius of 0.2). The result should look like this: - -- +- - -You can see how the fractures act as preferential flowpaths in the upwards movement of nitrogen due to their higher permeabilities. Additionally, you can observe comparatively high nitrogen saturations in the fracture tips as a result of the fractures acting as capillary traps due to the lower capillary pressures inside them. Consider turning them into capillary barriers, e.g. by setting __SpatialParams.VGAlpha = 1e-5__ in the __Fracture__ group in the input file (`params.input`). The nitrogen saturations in the fractures (especially in the fracture tips) should now be lower than in the surrounding matrix. Do not forget to reset __SpatialParams.VGAlpha = 1e-1__ in the input file after you are done. - @@ -660,7 +660,7 @@ diff -ruN exercises/exercise-fractures/README.md exercises/solution/exercise-fra - -Furthermore, modify the function `dirichletAtPos(...)` in `matrixproblem.hh` such that an overpressure is added to the initial pressure and a non-zero saturation is applied on the right Dirichlet segment ($`x = 100 \wedge y > 75`$). For this you can use the private variables `boundaryOverPressure_` and `boundarySaturation_` which are stored in the matrix problem and are read from the input file. Compile and execute the program again. The resulting water pressure distribution should look like this: - -- +- - -## Task B: Turn the fractures into barriers - @@ -704,7 +704,7 @@ diff -ruN exercises/exercise-fractures/README.md exercises/solution/exercise-fra - -This means we have to use Neumann-type interior boundary conditions here. Change this accordingly, compile and rerun the exercise again. You should now be able to see jumps in pressure in the matrix domain with an especially prominent one across the first vertical fracture (see image below). - -- +- - -### Task C: Define both open fractures and barriers - diff --git a/.patches/exercise-mainfile/exercise-mainfile.patch b/.patches/exercise-mainfile/exercise-mainfile.patch index 4ef11fa075453c37a192a78f7a20799e39cc158d..5cfe16a8301a8ef9eab5307be82586ff8ff68d4f 100644 --- a/.patches/exercise-mainfile/exercise-mainfile.patch +++ b/.patches/exercise-mainfile/exercise-mainfile.patch @@ -1,6 +1,6 @@ diff -ruN exercises/exercise-mainfile/CMakeLists.txt exercises/solution/exercise-mainfile/CMakeLists.txt ---- exercises/exercise-mainfile/CMakeLists.txt 2024-07-17 14:07:42.177109339 +0200 -+++ exercises/solution/exercise-mainfile/CMakeLists.txt 2024-07-17 13:58:18.220850484 +0200 +--- exercises/exercise-mainfile/CMakeLists.txt 2025-02-13 16:25:25.596470580 +0100 ++++ exercises/solution/exercise-mainfile/CMakeLists.txt 2025-02-13 16:25:25.635470145 +0100 @@ -2,14 +2,9 @@ # SPDX-License-Identifier: GPL-3.0-or-later @@ -22,7 +22,7 @@ diff -ruN exercises/exercise-mainfile/CMakeLists.txt exercises/solution/exercise +add_input_file_links() \ No newline at end of file diff -ruN exercises/exercise-mainfile/exercise1pamain.cc exercises/solution/exercise-mainfile/exercise1pamain.cc ---- exercises/exercise-mainfile/exercise1pamain.cc 2024-07-17 13:58:18.212850366 +0200 +--- exercises/exercise-mainfile/exercise1pamain.cc 2025-02-13 16:25:25.596470580 +0100 +++ exercises/solution/exercise-mainfile/exercise1pamain.cc 1970-01-01 01:00:00.000000000 +0100 @@ -1,130 +0,0 @@ -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- @@ -157,7 +157,7 @@ diff -ruN exercises/exercise-mainfile/exercise1pamain.cc exercises/solution/exer -}// end main diff -ruN exercises/exercise-mainfile/exercise1pa_solution_main.cc exercises/solution/exercise-mainfile/exercise1pa_solution_main.cc --- exercises/exercise-mainfile/exercise1pa_solution_main.cc 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-mainfile/exercise1pa_solution_main.cc 2024-07-17 13:58:18.220850484 +0200 ++++ exercises/solution/exercise-mainfile/exercise1pa_solution_main.cc 2025-02-13 16:25:25.635470145 +0100 @@ -0,0 +1,130 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: @@ -290,7 +290,7 @@ diff -ruN exercises/exercise-mainfile/exercise1pa_solution_main.cc exercises/sol + +}// end main diff -ruN exercises/exercise-mainfile/exercise1pbmain.cc exercises/solution/exercise-mainfile/exercise1pbmain.cc ---- exercises/exercise-mainfile/exercise1pbmain.cc 2024-07-17 13:58:18.212850366 +0200 +--- exercises/exercise-mainfile/exercise1pbmain.cc 2025-02-13 16:25:25.596470580 +0100 +++ exercises/solution/exercise-mainfile/exercise1pbmain.cc 1970-01-01 01:00:00.000000000 +0100 @@ -1,120 +0,0 @@ -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- @@ -414,7 +414,7 @@ diff -ruN exercises/exercise-mainfile/exercise1pbmain.cc exercises/solution/exer - -}// end main diff -ruN exercises/exercise-mainfile/exercise1pcmain.cc exercises/solution/exercise-mainfile/exercise1pcmain.cc ---- exercises/exercise-mainfile/exercise1pcmain.cc 2024-07-17 13:58:18.212850366 +0200 +--- exercises/exercise-mainfile/exercise1pcmain.cc 2025-02-13 16:25:25.596470580 +0100 +++ exercises/solution/exercise-mainfile/exercise1pcmain.cc 1970-01-01 01:00:00.000000000 +0100 @@ -1,146 +0,0 @@ -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- @@ -564,7 +564,7 @@ diff -ruN exercises/exercise-mainfile/exercise1pcmain.cc exercises/solution/exer - -}// end main diff -ruN exercises/exercise-mainfile/exercise_mainfile_a.input exercises/solution/exercise-mainfile/exercise_mainfile_a.input ---- exercises/exercise-mainfile/exercise_mainfile_a.input 2023-10-13 18:08:54.718521039 +0200 +--- exercises/exercise-mainfile/exercise_mainfile_a.input 2025-02-13 16:25:25.596470580 +0100 +++ exercises/solution/exercise-mainfile/exercise_mainfile_a.input 1970-01-01 01:00:00.000000000 +0100 @@ -1,18 +0,0 @@ -[Grid] @@ -587,7 +587,7 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_a.input exercises/soluti -BaseEpsilon = 1e-10 diff -ruN exercises/exercise-mainfile/exercise_mainfile_a_solution.input exercises/solution/exercise-mainfile/exercise_mainfile_a_solution.input --- exercises/exercise-mainfile/exercise_mainfile_a_solution.input 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-mainfile/exercise_mainfile_a_solution.input 2024-07-17 14:08:11.237533494 +0200 ++++ exercises/solution/exercise-mainfile/exercise_mainfile_a_solution.input 2025-02-13 16:25:25.635470145 +0100 @@ -0,0 +1,18 @@ +[Grid] +LowerLeft = 0 0 @@ -608,7 +608,7 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_a_solution.input exercis +PriVarMagnitude = 1e5 +BaseEpsilon = 1e-10 diff -ruN exercises/exercise-mainfile/exercise_mainfile_b.input exercises/solution/exercise-mainfile/exercise_mainfile_b.input ---- exercises/exercise-mainfile/exercise_mainfile_b.input 2023-10-13 18:08:54.718521039 +0200 +--- exercises/exercise-mainfile/exercise_mainfile_b.input 2025-02-13 16:25:25.596470580 +0100 +++ exercises/solution/exercise-mainfile/exercise_mainfile_b.input 1970-01-01 01:00:00.000000000 +0100 @@ -1,17 +0,0 @@ -[Grid] @@ -629,7 +629,7 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_b.input exercises/soluti -[Assembly.NumericDifference] -PriVarMagnitude = 1e5 diff -ruN exercises/exercise-mainfile/exercise_mainfile_c.input exercises/solution/exercise-mainfile/exercise_mainfile_c.input ---- exercises/exercise-mainfile/exercise_mainfile_c.input 2024-07-17 14:08:27.885776444 +0200 +--- exercises/exercise-mainfile/exercise_mainfile_c.input 2025-02-13 16:25:25.597470568 +0100 +++ exercises/solution/exercise-mainfile/exercise_mainfile_c.input 1970-01-01 01:00:00.000000000 +0100 @@ -1,21 +0,0 @@ -[TimeLoop] @@ -654,8 +654,8 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_c.input exercises/soluti -[Assembly.NumericDifference] -PriVarMagnitude = 1e5 diff -ruN exercises/exercise-mainfile/properties.hh exercises/solution/exercise-mainfile/properties.hh ---- exercises/exercise-mainfile/properties.hh 2024-07-17 13:58:18.212850366 +0200 -+++ exercises/solution/exercise-mainfile/properties.hh 2024-07-17 13:58:18.220850484 +0200 +--- exercises/exercise-mainfile/properties.hh 2025-02-13 16:25:25.597470568 +0100 ++++ exercises/solution/exercise-mainfile/properties.hh 2025-02-13 16:25:25.635470145 +0100 @@ -25,8 +25,8 @@ #include <dumux/porousmediumflow/1p/model.hh> @@ -679,7 +679,7 @@ diff -ruN exercises/exercise-mainfile/properties.hh exercises/solution/exercise- // the fluid system for compressible tests diff -ruN exercises/exercise-mainfile/README.md exercises/solution/exercise-mainfile/README.md ---- exercises/exercise-mainfile/README.md 2024-07-17 11:27:28.682344944 +0200 +--- exercises/exercise-mainfile/README.md 2025-02-27 12:13:40.959238376 +0100 +++ exercises/solution/exercise-mainfile/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,196 +0,0 @@ -# Exercise Mainfiles (DuMuX course) @@ -699,7 +699,7 @@ diff -ruN exercises/exercise-mainfile/README.md exercises/solution/exercise-main - -The problem set-up for all three examples is always the same: It is a two dimensional problem and the domain is $1 m$ by $1 m$. It is a heterogeneous set-up with a lens in the middle of the domain which has a lower permeability ($1\cdot 10^{-12} m^2$ compared to $1\cdot 10^{-10} m^2$ in the rest of the domain). - --<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise1_1p_setup.png" width="1000"> +-<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise_mainfile_1p_setup.png" width="1000"> - -In the beginning, there is a uniform pressure of $1\cdot 10^5 Pa$ in the whole domain. On the top and the bottom border, dirichlet boundary conditions are set with a pressure of $1\cdot 10^5 Pa$ on top and $2 \cdot 10^5 Pa$ on the bottom. At the sides, there is no in- or outflow and there are no source terms. - diff --git a/.patches/exercise-model/exercise-model.patch b/.patches/exercise-model/exercise-model.patch index 24d64926857a12379d8a0d7170cfb4010eeba78c..726d98bed3a65a5be52115cb4418340b2818611e 100644 --- a/.patches/exercise-model/exercise-model.patch +++ b/.patches/exercise-model/exercise-model.patch @@ -1,6 +1,6 @@ diff -ruN exercises/exercise-model/CMakeLists.txt exercises/solution/exercise-model/CMakeLists.txt ---- exercises/exercise-model/CMakeLists.txt 2024-07-17 14:21:07.400210015 +0200 -+++ exercises/solution/exercise-model/CMakeLists.txt 2024-07-17 14:21:07.404210034 +0200 +--- exercises/exercise-model/CMakeLists.txt 2025-02-13 16:25:25.597470568 +0100 ++++ exercises/solution/exercise-model/CMakeLists.txt 2025-02-13 16:25:25.635470145 +0100 @@ -3,5 +3,5 @@ dune_symlink_to_source_files(FILES images params.input) @@ -9,8 +9,8 @@ diff -ruN exercises/exercise-model/CMakeLists.txt exercises/solution/exercise-mo +dumux_add_test(NAME exercise_nonlineardiffusion_sol SOURCES main.cc) diff -ruN exercises/exercise-model/main.cc exercises/solution/exercise-model/main.cc ---- exercises/exercise-model/main.cc 2024-07-17 14:21:07.400210015 +0200 -+++ exercises/solution/exercise-model/main.cc 2024-07-17 14:21:07.404210034 +0200 +--- exercises/exercise-model/main.cc 2025-02-13 16:25:25.598470557 +0100 ++++ exercises/solution/exercise-model/main.cc 2025-02-13 16:25:25.635470145 +0100 @@ -29,6 +29,8 @@ #include <dumux/nonlinear/newtonsolver.hh> #include <dumux/assembly/fvassembler.hh> @@ -148,7 +148,7 @@ diff -ruN exercises/exercise-model/main.cc exercises/solution/exercise-model/mai }// end main diff -ruN exercises/exercise-model/model.hh exercises/solution/exercise-model/model.hh --- exercises/exercise-model/model.hh 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-model/model.hh 2024-07-18 10:07:49.719993891 +0200 ++++ exercises/solution/exercise-model/model.hh 2025-02-13 16:25:25.635470145 +0100 @@ -0,0 +1,210 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: @@ -361,7 +361,7 @@ diff -ruN exercises/exercise-model/model.hh exercises/solution/exercise-model/mo + +#endif diff -ruN exercises/exercise-model/README.md exercises/solution/exercise-model/README.md ---- exercises/exercise-model/README.md 2024-07-18 10:13:40.660815419 +0200 +--- exercises/exercise-model/README.md 2025-02-27 13:33:20.492673922 +0100 +++ exercises/solution/exercise-model/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,195 +0,0 @@ -# Exercise Model (DuMuX course) @@ -509,7 +509,7 @@ diff -ruN exercises/exercise-model/README.md exercises/solution/exercise-model/R -__The final result should look like this:__ -<figure> - <center> -- <img src="../extradoc/exercisemodel_mri_denoise.gif" alt="denoising"/> +- <img src="../extradoc/exercise_model_mri_denoise.gif" alt="denoising"/> - <figcaption> <b> Fig.1 </b> - Denosing of MRI image using nonlinear diffusion model.</figcaption> - </center> -</figure> diff --git a/exercises/exercise-basic/README.md b/exercises/exercise-basic/README.md index e98dbf05e677d150368d3e61dcceed2fcd425538..40acd722d66f16adf46de92490769fc0ac8683d0 100644 --- a/exercises/exercise-basic/README.md +++ b/exercises/exercise-basic/README.md @@ -5,7 +5,7 @@ N$_2$ is injected in an aquifer previously saturated with water with an injection rate of 0.0001 kg/(s*m$^2$). The aquifer is situated 2700 m below sea level and the domain size is 60 m x 40 m. It consists of two layers, a moderately permeable one ($\Omega_1$) and a lower permeable one ($\Omega_2$). -<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise1_setup.png" width="1000"> +<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise_basic_setup.png" width="1000"> ## Preparing the exercise @@ -89,6 +89,6 @@ $\displaystyle d_\text{aquifer}=2700~\text{m}$. Additionally, add a subdomain (2 __Boundary conditions:__ Dirichlet boundary conditions at the left boundary with the same temperature gradient as in the initial conditions. For the Neumann conditions, assign an energy flux at the injection point of N$_2$ and no-flow conditions for the energy balance to the rest of the boundaries. -<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise1_nonisothermal.png" width="800"> +<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise_basic_nonisothermal.png" width="800"> The non-isothermal model requires additional parameters like the thermal conductivity of the solid component. They are already implemented and set in `params.input`, you just need to _uncomment_ them. diff --git a/exercises/exercise-biomineralization/README.md b/exercises/exercise-biomineralization/README.md index b3ac137ffb88793881e22d76c10d7409f9fe69c0..fb11f089f82dd4c7571970e816c364d57e075ab9 100644 --- a/exercises/exercise-biomineralization/README.md +++ b/exercises/exercise-biomineralization/README.md @@ -9,7 +9,7 @@ The domain has a size of 20 x 15 m and contains a sealing aquitard in the middle Disclaimer: Please note, that this is not a realistic scenario. No one would think of storing gaseous CO<sub>2</sub> in this subcritical setting. - + ## Preparing the exercise @@ -143,7 +143,7 @@ make exercise_biomin The result for the porosity should look like this: -  +  ### 5. CO<sub>2</sub> injection to test aquitard integrity @@ -158,7 +158,7 @@ Run two simulations and compare them side by side by creating two input files, o ``` The result for the biomineralization process during the CO<sub>2</sub> injection should look like this: - + ### 6. Change the permeability law diff --git a/exercises/exercise-coupling-ff-pm/interface/README.md b/exercises/exercise-coupling-ff-pm/interface/README.md index c13802cfa6061a99d36d0f80d180744472bd9f39..618a83edf3942f3e5a65d149994ac3ded6fb4dcc 100644 --- a/exercises/exercise-coupling-ff-pm/interface/README.md +++ b/exercises/exercise-coupling-ff-pm/interface/README.md @@ -3,7 +3,7 @@ In this part of the exercise, a simple coupled system consisting of a one-phase (1p) free flow and a one-phase flow in a porous medium is set up. Both subproblems have no-flow boundaries at the sides. Currently, a velocity profile is set on the upper free flow boundary, which leads to a vertical flow into the porous medium: - + Note that we neglect the influence of gravity and only solve for the stationary problem in this exercise. @@ -167,7 +167,7 @@ values.setBeaversJoseph(1 - scvf.directionIndex()); Recompile and rerun to check if the final result looks something like this: - + *Extra Points:* Rather than enforcing a pressure difference across the domain, an inflow velocity profile could be set. diff --git a/exercises/exercise-coupling-ff-pm/turbulence/README.md b/exercises/exercise-coupling-ff-pm/turbulence/README.md index fc67882984c49f0547f4aff822ea329899b9dd0c..41e428d3715c1dd1e6650912c39a32998de72a8a 100644 --- a/exercises/exercise-coupling-ff-pm/turbulence/README.md +++ b/exercises/exercise-coupling-ff-pm/turbulence/README.md @@ -77,7 +77,7 @@ In addition to the standard variables and parameters, you can now analyze turbul In paraview you may compare the magnitude of $`D`$ and $`D_\textrm{t}`$ to see where the transport is affected by turbulence. The result for the turbulent diffusivity should look like this: - + ### Task B: Use symmetry boundary conditions diff --git a/exercises/exercise-fluidsystem/README.md b/exercises/exercise-fluidsystem/README.md index b603ba49c6842057b33bba9b82b72c14763aaae1..f612b492bf20ed0b66b2d12b89c543bbb5443bb5 100644 --- a/exercises/exercise-fluidsystem/README.md +++ b/exercises/exercise-fluidsystem/README.md @@ -6,7 +6,7 @@ The aim of this exercise is to get familiar with the _DuMu<sup>x</sup>_ way of i The domain has a size of 60 m x 60 m and contains two low-permeable lenses. Initially, the domain is fully water saturated and the fictitious component is injected through the middle portion of the upper boundary by means of a Neumann boundary condition. The remaining parts of the upper and the entire lower boundary are Neumann no-flow while on the two lateral sides Dirichlet boundary conditions are applied (hydrostatic conditions for the pressure and zero saturation). -<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise-fluidsystem_setup.png" width="700"> +<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise_fluidsystem_setup.png" width="700"> ## Task 1: Getting familiar with the code @@ -152,7 +152,7 @@ make exercise_fluidsystem_a The saturation distribution of the nonwetting phase, here S$`_{napl}`$ (the phase consisting of our fictitious incompressible component), at the final simulation time should look like this: - + ### Task 2.2: Compressible component @@ -162,12 +162,12 @@ $`\displaystyle \rho_{MyComp} = \rho_{min} + \frac{ \rho_{max} - \rho_{min} }{ 1 where $`p`$ is the pressure and $`\rho_{min} = 1440.0 \, kg/m^3`$, $`\rho_{max} = 1480.0 \, kg/m^3`$ and $`k = 5 \cdot 10^{-7} `$. Also, make sure the header is included in the `2pproperties.hh` file by uncommenting the corresponding line. Furthermore, the new component has to be set as a liquid phase in the fluid system. To do so, search for `TODO: dumux-course-task 2.2`. Comment out the corresponding line and uncomment the other. The density distribution of this phase (rho$`_{napl}`$) at the final simulation time should look like this: - + You can plot the density of the phase consisting of your compressible component by setting `PlotDensity` in `aparams.input` to `true` and starting the simulation again. Compare the gnuplot output to the following plot of the density function from above: -<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise-fluidsystem_a_densityfunction.png" width="500"> +<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise_fluidsystem_a_densityfunction.png" width="500"> ## Task 3: Implement a new fluid system - Part b diff --git a/exercises/exercise-fractures/README.md b/exercises/exercise-fractures/README.md index 76fdef25b5ea5cd545e0e3e61237bb29569a51c3..4d3779c012318ff977f3b6d6b1e022b528cb497b 100644 --- a/exercises/exercise-fractures/README.md +++ b/exercises/exercise-fractures/README.md @@ -6,7 +6,7 @@ In this exercise we are going to use the _DuMuX multidomain_ framework, and in p We consider a domain of 100 x 100 m with a set of ten fractures. This geometry has been taken from [Flemisch et al. (2018)](https://www.sciencedirect.com/science/article/pii/S0309170817300143), but was slightly modified to better fit to the purposes of this exercise. Apart from one fracture extending up to the top boundary, all other fractures are immersed, meaning that the fracture tips lie within the domain (see image below). - + In the initial setup of this exercise, we want to consider buoyancy-driven upwards migration of nitrogen (gas) in a fully water-saturated medium. Thus, as initial conditions we use hydrostatic pressure conditions and a zero nitrogen saturation. On the boundaries we apply Neumann no-flow boundary conditions on the left and right sides, while using Dirichlet boundary conditions on the top and the bottom of the domain. We set the initial conditions as boundary conditions on the Dirichlet segments, except for the middle part of the lower boundary ($`y = 0 \wedge x > 25 \wedge x < 75`$), where we set a non-zero nitrogen saturation (settable via the input file). Through this segment of the lower boundary, nitrogen can intrude the domain and flow upwards driven by buoyancy. @@ -115,7 +115,7 @@ make exercise_fractures Take a look at the results by opening the files `matrix.pvd` and `fractures.pvd` with _Paraview_. In order to increase the visibility of the fracture solution, you might want to apply the tube filter to it (e.g. with a tube radius of 0.2). The result should look like this: - + You can see how the fractures act as preferential flowpaths in the upwards movement of nitrogen due to their higher permeabilities. Additionally, you can observe comparatively high nitrogen saturations in the fracture tips as a result of the fractures acting as capillary traps due to the lower capillary pressures inside them. Consider turning them into capillary barriers, e.g. by setting __SpatialParams.VGAlpha = 1e-5__ in the __Fracture__ group in the input file (`params.input`). The nitrogen saturations in the fractures (especially in the fracture tips) should now be lower than in the surrounding matrix. Do not forget to reset __SpatialParams.VGAlpha = 1e-1__ in the input file after you are done. @@ -125,7 +125,7 @@ In order for the influence of the fractures to be more visible in the resulting Furthermore, modify the function `dirichletAtPos(...)` in `matrixproblem.hh` such that an overpressure is added to the initial pressure and a non-zero saturation is applied on the right Dirichlet segment ($`x = 100 \wedge y > 75`$). For this you can use the private variables `boundaryOverPressure_` and `boundarySaturation_` which are stored in the matrix problem and are read from the input file. Compile and execute the program again. The resulting water pressure distribution should look like this: - + ## Task B: Turn the fractures into barriers @@ -169,7 +169,7 @@ To summarize: when using Neumann-type interior boundary conditions, flux continu This means we have to use Neumann-type interior boundary conditions here. Change this accordingly, compile and rerun the exercise again. You should now be able to see jumps in pressure in the matrix domain with an especially prominent one across the first vertical fracture (see image below). - + ### Task C: Define both open fractures and barriers diff --git a/exercises/exercise-mainfile/README.md b/exercises/exercise-mainfile/README.md index e93bf2ced64d9528ef3cc8c1e47cbb548090c3fb..6f5b9c88f64026fdbc62214741cfbfaa69976a17 100644 --- a/exercises/exercise-mainfile/README.md +++ b/exercises/exercise-mainfile/README.md @@ -15,7 +15,7 @@ To summarize, the problems differ in: The problem set-up for all three examples is always the same: It is a two dimensional problem and the domain is $1 m$ by $1 m$. It is a heterogeneous set-up with a lens in the middle of the domain which has a lower permeability ($1\cdot 10^{-12} m^2$ compared to $1\cdot 10^{-10} m^2$ in the rest of the domain). -<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise1_1p_setup.png" width="1000"> +<img src="https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/raw/master/exercises/extradoc/exercise_mainfile_1p_setup.png" width="1000"> In the beginning, there is a uniform pressure of $1\cdot 10^5 Pa$ in the whole domain. On the top and the bottom border, dirichlet boundary conditions are set with a pressure of $1\cdot 10^5 Pa$ on top and $2 \cdot 10^5 Pa$ on the bottom. At the sides, there is no in- or outflow and there are no source terms. diff --git a/exercises/exercise-model/README.md b/exercises/exercise-model/README.md index a51c98512816106f04e2933d12626c5c4ae35b6f..119b1225474717ee93c91bde0030c34e6a75d754 100644 --- a/exercises/exercise-model/README.md +++ b/exercises/exercise-model/README.md @@ -143,7 +143,7 @@ are preserved. The conductance acts as a threshold for the image intensity gradi __The final result should look like this:__ <figure> <center> - <img src="../extradoc/exercisemodel_mri_denoise.gif" alt="denoising"/> + <img src="../extradoc/exercise_model_mri_denoise.gif" alt="denoising"/> <figcaption> <b> Fig.1 </b> - Denosing of MRI image using nonlinear diffusion model.</figcaption> </center> </figure> diff --git a/exercises/extradoc/exercise2_properties.png b/exercises/extradoc/exercise2_properties.png deleted file mode 100644 index 28c700ed18443d78995d890cb7fb085a84146ff7..0000000000000000000000000000000000000000 Binary files a/exercises/extradoc/exercise2_properties.png and /dev/null differ diff --git a/exercises/extradoc/exercise1_nonisothermal.png b/exercises/extradoc/exercise_basic_nonisothermal.png similarity index 100% rename from exercises/extradoc/exercise1_nonisothermal.png rename to exercises/extradoc/exercise_basic_nonisothermal.png diff --git a/exercises/extradoc/exercise1_setup.png b/exercises/extradoc/exercise_basic_setup.png similarity index 100% rename from exercises/extradoc/exercise1_setup.png rename to exercises/extradoc/exercise_basic_setup.png diff --git a/exercises/extradoc/exercisebiomin_injectionFinal.png b/exercises/extradoc/exercise_biomin_injection_final.png similarity index 100% rename from exercises/extradoc/exercisebiomin_injectionFinal.png rename to exercises/extradoc/exercise_biomin_injection_final.png diff --git a/exercises/extradoc/exercisebiomin_porosityFinal.png b/exercises/extradoc/exercise_biomin_porosity_final.png similarity index 100% rename from exercises/extradoc/exercisebiomin_porosityFinal.png rename to exercises/extradoc/exercise_biomin_porosity_final.png diff --git a/exercises/extradoc/exercisebiomin_setup.png b/exercises/extradoc/exercise_biomin_setup.png similarity index 100% rename from exercises/extradoc/exercisebiomin_setup.png rename to exercises/extradoc/exercise_biomin_setup.png diff --git a/exercises/extradoc/ex_ff-pm-turb_diffusivity.png b/exercises/extradoc/exercise_ffpm_turb_diffusivity.png similarity index 100% rename from exercises/extradoc/ex_ff-pm-turb_diffusivity.png rename to exercises/extradoc/exercise_ffpm_turb_diffusivity.png diff --git a/exercises/extradoc/ex_ff-pm-vertical-flow.png b/exercises/extradoc/exercise_ffpm_vertical_flow.png similarity index 100% rename from exercises/extradoc/ex_ff-pm-vertical-flow.png rename to exercises/extradoc/exercise_ffpm_vertical_flow.png diff --git a/exercises/extradoc/ex_ff-pm-wave-interface.png b/exercises/extradoc/exercise_ffpm_wave_interface.png similarity index 100% rename from exercises/extradoc/ex_ff-pm-wave-interface.png rename to exercises/extradoc/exercise_ffpm_wave_interface.png diff --git a/exercises/extradoc/exercise-fluidsystem_a_densityfunction.png b/exercises/extradoc/exercise_fluidsystem_a_densityfunction.png similarity index 100% rename from exercises/extradoc/exercise-fluidsystem_a_densityfunction.png rename to exercises/extradoc/exercise_fluidsystem_a_densityfunction.png diff --git a/exercises/extradoc/exercise-fluidsystem_a_solution.png b/exercises/extradoc/exercise_fluidsystem_a_solution.png similarity index 100% rename from exercises/extradoc/exercise-fluidsystem_a_solution.png rename to exercises/extradoc/exercise_fluidsystem_a_solution.png diff --git a/exercises/extradoc/exercise-fluidsystem_a_solution2.png b/exercises/extradoc/exercise_fluidsystem_a_solution2.png similarity index 100% rename from exercises/extradoc/exercise-fluidsystem_a_solution2.png rename to exercises/extradoc/exercise_fluidsystem_a_solution2.png diff --git a/exercises/extradoc/exercise-fluidsystem_setup.png b/exercises/extradoc/exercise_fluidsystem_setup.png similarity index 100% rename from exercises/extradoc/exercise-fluidsystem_setup.png rename to exercises/extradoc/exercise_fluidsystem_setup.png diff --git a/exercises/extradoc/exercisefractures_a.png b/exercises/extradoc/exercise_fractures_a.png similarity index 100% rename from exercises/extradoc/exercisefractures_a.png rename to exercises/extradoc/exercise_fractures_a.png diff --git a/exercises/extradoc/exercisefractures_b.png b/exercises/extradoc/exercise_fractures_b.png similarity index 100% rename from exercises/extradoc/exercisefractures_b.png rename to exercises/extradoc/exercise_fractures_b.png diff --git a/exercises/extradoc/exercisefractures_initsol.png b/exercises/extradoc/exercise_fractures_initsol.png similarity index 100% rename from exercises/extradoc/exercisefractures_initsol.png rename to exercises/extradoc/exercise_fractures_initsol.png diff --git a/exercises/extradoc/exercisefractures_setup.png b/exercises/extradoc/exercise_fractures_setup.png similarity index 100% rename from exercises/extradoc/exercisefractures_setup.png rename to exercises/extradoc/exercise_fractures_setup.png diff --git a/exercises/extradoc/exercise1_1p_setup.png b/exercises/extradoc/exercise_mainfile_1p_setup.png similarity index 100% rename from exercises/extradoc/exercise1_1p_setup.png rename to exercises/extradoc/exercise_mainfile_1p_setup.png diff --git a/exercises/extradoc/exercisemodel_mri_denoise.gif b/exercises/extradoc/exercise_model_mri_denoise.gif similarity index 100% rename from exercises/extradoc/exercisemodel_mri_denoise.gif rename to exercises/extradoc/exercise_model_mri_denoise.gif diff --git a/slides/img/exercise1_setup.png b/slides/img/exercise_basic_setup.png similarity index 100% rename from slides/img/exercise1_setup.png rename to slides/img/exercise_basic_setup.png diff --git a/slides/img/exercisemodel_mri_denoise.gif b/slides/img/exercise_model_mri_denoise.gif similarity index 100% rename from slides/img/exercisemodel_mri_denoise.gif rename to slides/img/exercise_model_mri_denoise.gif diff --git a/slides/model.md b/slides/model.md index 6d30e3baf026972bca33a09c9887994e50b64d8d..52ea56d3adf2f465b298e97879afb62c986578dd 100644 --- a/slides/model.md +++ b/slides/model.md @@ -259,7 +259,7 @@ i.e. `TTag::DiffusionModel` ## Exercise: Model Implementation of a **nonlinear diffusion model** for denoising of an MRI image -<img src="img/exercisemodel_mri_denoise.gif" alt="denoising" width="300"/> +<img src="img/exercise_model_mri_denoise.gif" alt="denoising" width="300"/> ## Tasks diff --git a/slides/problem.md b/slides/problem.md index f6320c505ae5570066592040c9baffd82ac5db5f..275db90858941fcd1b09bb47452870f0f8e23376 100644 --- a/slides/problem.md +++ b/slides/problem.md @@ -6,7 +6,7 @@ title: DuMu^x^ applications ## Simulation goal -<img style="float: right;" src="img/exercise1_setup.png"> +<img style="float: right;" src="img/exercise_basic_setup.png"> ## Gas injection / immiscible two phase flow