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 3bb7e017b3b438a925be8634de08ff259c73ee52..995175d1365652bd7b9dd346971cd7539aa3523c 100644 --- a/.patches/exercise-coupling-ff-pm/exercise-coupling-ff-pm.patch +++ b/.patches/exercise-coupling-ff-pm/exercise-coupling-ff-pm.patch @@ -1,6 +1,6 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/CMakeLists.txt exercises/solution/exercise-coupling-ff-pm/interface/CMakeLists.txt ---- exercises/exercise-coupling-ff-pm/interface/CMakeLists.txt 2025-03-07 10:42:02.609882998 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/interface/CMakeLists.txt 2025-03-07 10:42:02.618882942 +0100 +--- exercises/exercise-coupling-ff-pm/interface/CMakeLists.txt 2025-03-17 15:23:54.686796541 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/interface/CMakeLists.txt 2025-03-17 15:23:54.694796907 +0100 @@ -1,10 +1,30 @@ # SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-License-Identifier: GPL-3.0-or-later @@ -36,8 +36,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/CMakeLists.txt exercises/s # add a symlink for each input file add_input_file_links() diff -ruN exercises/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh exercises/solution/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh ---- exercises/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh 2025-03-07 11:30:34.872192048 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh 2025-03-07 10:42:02.618882942 +0100 +--- exercises/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh 2025-03-17 15:23:54.686796541 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh 2025-03-17 15:23:54.694796907 +0100 @@ -71,8 +71,7 @@ const auto& globalPos = scvf.dofPosition(); @@ -138,8 +138,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh exer } diff -ruN exercises/exercise-coupling-ff-pm/interface/main.cc exercises/solution/exercise-coupling-ff-pm/interface/main.cc ---- exercises/exercise-coupling-ff-pm/interface/main.cc 2025-03-07 11:30:34.872192048 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/interface/main.cc 2025-03-07 10:42:02.618882942 +0100 +--- exercises/exercise-coupling-ff-pm/interface/main.cc 2025-03-17 15:35:37.826988735 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/interface/main.cc 2025-03-17 15:37:08.215127018 +0100 @@ -52,9 +52,7 @@ using FreeflowTypeTag = Properties::TTag::FreeflowOneP; using PorousMediumTypeTag = Properties::TTag::PorousMediumFlowOneP; @@ -266,8 +266,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/main.cc exercises/solution using PorousMediumSolutionVector = GetPropType<PorousMediumTypeTag, Properties::SolutionVector>; VtkOutputModule<PorousMediumGridVariables, PorousMediumSolutionVector> porousMediumVtkWriter(*porousMediumGridVariables, diff -ruN exercises/exercise-coupling-ff-pm/interface/params.input exercises/solution/exercise-coupling-ff-pm/interface/params.input ---- exercises/exercise-coupling-ff-pm/interface/params.input 2025-03-07 11:30:34.872192048 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/interface/params.input 2025-02-26 11:38:46.842816315 +0100 +--- exercises/exercise-coupling-ff-pm/interface/params.input 2025-03-17 15:23:54.686796541 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/interface/params.input 2025-03-17 15:23:54.694796907 +0100 @@ -1,17 +1,14 @@ -# TODO: dumux-course-task 1.C: uncomment the following group [Grid] # for dune-subgrid @@ -305,8 +305,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/params.input exercises/sol Verbosity = true Positions0 = 0.0 1.0 diff -ruN exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh exercises/solution/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh ---- exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh 2025-03-07 11:30:34.873192042 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh 2025-03-07 10:42:02.618882942 +0100 +--- exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh 2025-03-17 15:23:54.686796541 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh 2025-03-17 15:23:54.694796907 +0100 @@ -65,14 +65,13 @@ { BoundaryTypes values; @@ -325,8 +325,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh // set the coupling boundary condition at the interface if (couplingManager().isCoupledEntity(CouplingManager::darcyIdx, scvf)) diff -ruN exercises/exercise-coupling-ff-pm/interface/properties.hh exercises/solution/exercise-coupling-ff-pm/interface/properties.hh ---- exercises/exercise-coupling-ff-pm/interface/properties.hh 2025-03-07 11:30:34.873192042 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/interface/properties.hh 2025-03-07 10:42:02.618882942 +0100 +--- exercises/exercise-coupling-ff-pm/interface/properties.hh 2025-03-17 15:23:54.686796541 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/interface/properties.hh 2025-03-17 15:23:54.694796907 +0100 @@ -16,9 +16,9 @@ #include <dumux/multidomain/staggeredtraits.hh> #include <dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh> @@ -383,7 +383,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/properties.hh exercises/so template<class TypeTag> diff -ruN exercises/exercise-coupling-ff-pm/interface/README.md exercises/solution/exercise-coupling-ff-pm/interface/README.md ---- exercises/exercise-coupling-ff-pm/interface/README.md 2025-03-07 10:34:20.581090010 +0100 +--- exercises/exercise-coupling-ff-pm/interface/README.md 2025-03-17 15:23:54.686796541 +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 @@ -562,8 +562,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/interface/README.md exercises/soluti -What changes to the left boundary conditions in the free-flow domain would you make to introduce this? What conditions can be enforced on the right boundary? -Hint: A relation between velocity and position is used for the vertical velocity component in the original form of the `dirichletAtPos` method. diff -ruN exercises/exercise-coupling-ff-pm/models/CMakeLists.txt exercises/solution/exercise-coupling-ff-pm/models/CMakeLists.txt ---- exercises/exercise-coupling-ff-pm/models/CMakeLists.txt 2025-03-07 10:42:02.610882992 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/models/CMakeLists.txt 2025-03-07 10:42:02.618882942 +0100 +--- exercises/exercise-coupling-ff-pm/models/CMakeLists.txt 2025-03-17 15:23:54.686796541 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/models/CMakeLists.txt 2025-03-17 15:23:54.694796907 +0100 @@ -1,9 +1,32 @@ # SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-License-Identifier: GPL-3.0-or-later @@ -602,16 +602,14 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/CMakeLists.txt exercises/solu + +dune_symlink_to_source_files(FILES "params_orig_a.input" "params_b_c.input" plotFluxes.py) diff -ruN exercises/exercise-coupling-ff-pm/models/main.cc exercises/solution/exercise-coupling-ff-pm/models/main.cc ---- exercises/exercise-coupling-ff-pm/models/main.cc 2025-03-07 10:42:02.610882992 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/models/main.cc 2025-03-07 10:42:02.618882942 +0100 -@@ -127,9 +127,15 @@ - auto porousMediumGridVariables = std::make_shared<PorousMediumGridVariables>(porousMediumProblem, porousMediumFvGridGeometry); +--- exercises/exercise-coupling-ff-pm/models/main.cc 2025-03-17 15:35:46.115368206 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/models/main.cc 2025-03-17 15:23:54.694796907 +0100 +@@ -128,8 +128,14 @@ porousMediumGridVariables->init(sol[porousMediumIdx]); -- // intialize the vtk output module + // initialize the vtk output module - const auto freeflowName = getParam<std::string>("Problem.Name") + "_" + freeflowProblem->name(); - const auto porousMediumName = getParam<std::string>("Problem.Name") + "_" + porousMediumProblem->name(); -+ // initialize the vtk output module +#if EXNUMBER >= 1 + const std::array<std::string, 3> part = {"a", "b", "c"}; + const auto freeflowName = "sol_" + part[EXNUMBER-1] + "_" + getParam<std::string>("Problem.Name") + "_" + freeflowProblem->name(); @@ -625,7 +623,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/main.cc exercises/solution/ex GetPropType<FreeflowTypeTag, Properties::IOFields>::initOutputModule(freeflowVtkWriter); diff -ruN exercises/exercise-coupling-ff-pm/models/params_b_c.input exercises/solution/exercise-coupling-ff-pm/models/params_b_c.input --- exercises/exercise-coupling-ff-pm/models/params_b_c.input 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/models/params_b_c.input 2025-02-26 11:38:46.843816269 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/models/params_b_c.input 2025-03-17 15:23:54.694796907 +0100 @@ -0,0 +1,57 @@ +[TimeLoop] +DtInitial = 100 # s @@ -685,7 +683,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/params_b_c.input exercises/so +[Assembly] +NumericDifference.BaseEpsilon = 1e-8 diff -ruN exercises/exercise-coupling-ff-pm/models/params.input exercises/solution/exercise-coupling-ff-pm/models/params.input ---- exercises/exercise-coupling-ff-pm/models/params.input 2025-03-07 10:42:02.671882610 +0100 +--- exercises/exercise-coupling-ff-pm/models/params.input 2025-03-17 15:23:54.686796541 +0100 +++ exercises/solution/exercise-coupling-ff-pm/models/params.input 1970-01-01 01:00:00.000000000 +0100 @@ -1,60 +0,0 @@ -[TimeLoop] @@ -750,7 +748,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/params.input exercises/soluti -NumericDifference.BaseEpsilon = 1e-8 diff -ruN exercises/exercise-coupling-ff-pm/models/params_orig_a.input exercises/solution/exercise-coupling-ff-pm/models/params_orig_a.input --- exercises/exercise-coupling-ff-pm/models/params_orig_a.input 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/models/params_orig_a.input 2025-02-26 11:38:46.843816269 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/models/params_orig_a.input 2025-03-17 15:23:54.694796907 +0100 @@ -0,0 +1,56 @@ +[TimeLoop] +DtInitial = 100 # s @@ -809,8 +807,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/params_orig_a.input exercises +[Assembly] +NumericDifference.BaseEpsilon = 1e-8 diff -ruN exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh ---- exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh 2025-03-07 11:30:34.873192042 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh 2025-03-07 10:42:02.619882935 +0100 +--- exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh 2025-03-17 15:23:54.686796541 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh 2025-03-17 15:23:54.694796907 +0100 @@ -52,10 +52,15 @@ // primary variable indices static constexpr int conti0EqIdx = Indices::conti0EqIdx; @@ -932,8 +930,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh exe std::shared_ptr<CouplingManager> couplingManager_; diff -ruN exercises/exercise-coupling-ff-pm/models/properties.hh exercises/solution/exercise-coupling-ff-pm/models/properties.hh ---- exercises/exercise-coupling-ff-pm/models/properties.hh 2025-03-07 11:30:34.873192042 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/models/properties.hh 2025-03-07 10:42:02.619882935 +0100 +--- exercises/exercise-coupling-ff-pm/models/properties.hh 2025-03-17 15:23:54.686796541 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/models/properties.hh 2025-03-17 15:23:54.694796907 +0100 @@ -25,12 +25,14 @@ #include <dumux/discretization/cctpfa.hh> #include <dumux/material/fluidmatrixinteractions/diffusivityconstanttortuosity.hh> @@ -1016,7 +1014,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/properties.hh exercises/solut template<class TypeTag> struct EnableGridGeometryCache<TypeTag, TTag::FreeflowNC> { static constexpr bool value = true; }; diff -ruN exercises/exercise-coupling-ff-pm/models/README.md exercises/solution/exercise-coupling-ff-pm/models/README.md ---- exercises/exercise-coupling-ff-pm/models/README.md 2025-02-26 11:38:46.804818055 +0100 +--- exercises/exercise-coupling-ff-pm/models/README.md 2025-03-17 15:23:54.686796541 +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 @@ -1138,7 +1136,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/models/README.md exercises/solution/ - -Now you are able to simulate a complete drying of the porous medium. Have a look the resulting liquid saturation distribution within the porous medium (with using paraview). diff -ruN exercises/exercise-coupling-ff-pm/README.md exercises/solution/exercise-coupling-ff-pm/README.md ---- exercises/exercise-coupling-ff-pm/README.md 2025-02-26 11:38:46.803818101 +0100 +--- exercises/exercise-coupling-ff-pm/README.md 2025-03-17 15:23:54.686796541 +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) @@ -1267,8 +1265,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/README.md exercises/solution/exercis -* [**Exercise 2:** Changing the porous medium model](./models/README.md) -* [**Exercise 3:** Introducing a turbulence model in the free flow domain](./turbulence/README.md) diff -ruN exercises/exercise-coupling-ff-pm/turbulence/CMakeLists.txt exercises/solution/exercise-coupling-ff-pm/turbulence/CMakeLists.txt ---- exercises/exercise-coupling-ff-pm/turbulence/CMakeLists.txt 2025-03-07 10:42:02.611882986 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/CMakeLists.txt 2025-03-07 10:42:02.619882935 +0100 +--- exercises/exercise-coupling-ff-pm/turbulence/CMakeLists.txt 2025-03-17 15:23:54.686796541 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/CMakeLists.txt 2025-03-17 15:23:54.694796907 +0100 @@ -1,10 +1,33 @@ # SPDX-FileCopyrightText: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-License-Identifier: GPL-3.0-or-later @@ -1307,8 +1305,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/CMakeLists.txt exercises/ # add a symlink for each input file add_input_file_links() diff -ruN exercises/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh exercises/solution/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh ---- exercises/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh 2025-03-07 11:30:34.873192042 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh 2025-03-07 10:42:02.619882935 +0100 +--- exercises/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh 2025-03-17 15:23:54.686796541 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh 2025-03-17 15:23:54.694796907 +0100 @@ -8,8 +8,8 @@ * \file * \brief The free-flow sub problem @@ -1524,8 +1522,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh exe return values; } diff -ruN exercises/exercise-coupling-ff-pm/turbulence/main.cc exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc ---- exercises/exercise-coupling-ff-pm/turbulence/main.cc 2025-03-07 11:30:34.873192042 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc 2025-03-07 10:42:02.619882935 +0100 +--- exercises/exercise-coupling-ff-pm/turbulence/main.cc 2025-03-17 15:35:06.329546673 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc 2025-03-17 15:36:58.698691322 +0100 @@ -122,11 +122,12 @@ couplingManager->init(freeflowProblem, porousMediumProblem, sol); @@ -1556,7 +1554,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/main.cc exercises/solutio porousMediumProblem->postTimeStep(sol[porousMediumIdx], *porousMediumGridVariables, timeLoop->timeStepSize()); diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_b.input exercises/solution/exercise-coupling-ff-pm/turbulence/params_b.input --- exercises/exercise-coupling-ff-pm/turbulence/params_b.input 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_b.input 2025-02-26 11:38:46.843816269 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_b.input 2025-03-17 15:23:54.694796907 +0100 @@ -0,0 +1,72 @@ +[TimeLoop] +DtInitial = 1e-1 # [s] @@ -1632,7 +1630,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_b.input exercises/ +IsFlatWallBounded = True diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_c_d.input exercises/solution/exercise-coupling-ff-pm/turbulence/params_c_d.input --- exercises/exercise-coupling-ff-pm/turbulence/params_c_d.input 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_c_d.input 2025-02-26 11:38:46.843816269 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_c_d.input 2025-03-17 15:23:54.698797090 +0100 @@ -0,0 +1,72 @@ +[TimeLoop] +DtInitial = 1e-1 # [s] @@ -1707,7 +1705,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_c_d.input exercise +[RANS] +IsFlatWallBounded = True diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params.input exercises/solution/exercise-coupling-ff-pm/turbulence/params.input ---- exercises/exercise-coupling-ff-pm/turbulence/params.input 2025-03-07 11:30:34.874192035 +0100 +--- exercises/exercise-coupling-ff-pm/turbulence/params.input 2025-03-17 15:23:54.686796541 +0100 +++ exercises/solution/exercise-coupling-ff-pm/turbulence/params.input 1970-01-01 01:00:00.000000000 +0100 @@ -1,73 +0,0 @@ -[TimeLoop] @@ -1785,7 +1783,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params.input exercises/so -SolidHeatCapacity = 790 diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_orig_a.input exercises/solution/exercise-coupling-ff-pm/turbulence/params_orig_a.input --- exercises/exercise-coupling-ff-pm/turbulence/params_orig_a.input 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_orig_a.input 2025-02-26 11:38:46.843816269 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_orig_a.input 2025-03-17 15:23:54.698797090 +0100 @@ -0,0 +1,72 @@ +[TimeLoop] +DtInitial = 1e-1 # [s] @@ -1860,8 +1858,8 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/params_orig_a.input exerc +[RANS] +IsFlatWallBounded = True diff -ruN exercises/exercise-coupling-ff-pm/turbulence/properties.hh exercises/solution/exercise-coupling-ff-pm/turbulence/properties.hh ---- exercises/exercise-coupling-ff-pm/turbulence/properties.hh 2025-03-07 11:30:34.874192035 +0100 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/properties.hh 2025-03-07 10:42:02.619882935 +0100 +--- exercises/exercise-coupling-ff-pm/turbulence/properties.hh 2025-03-17 15:23:54.686796541 +0100 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/properties.hh 2025-03-17 15:23:54.698797090 +0100 @@ -8,8 +8,8 @@ * \file * \brief The coupled exercise properties file or the turbulent case. @@ -1903,7 +1901,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/properties.hh exercises/s // Set the coupling manager diff -ruN exercises/exercise-coupling-ff-pm/turbulence/README.md exercises/solution/exercise-coupling-ff-pm/turbulence/README.md ---- exercises/exercise-coupling-ff-pm/turbulence/README.md 2025-03-07 10:34:20.583089982 +0100 +--- exercises/exercise-coupling-ff-pm/turbulence/README.md 2025-03-17 15:35:19.454147563 +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 @@ -1997,7 +1995,7 @@ diff -ruN exercises/exercise-coupling-ff-pm/turbulence/README.md exercises/solut - -In addition, you have to remove the condition `onUpperBoundary_(globalPos)` from the `initialAtPos(globalPos)` method and the `dirichlet(element, scvf)` method. - --Now it is sufficient to only calulate half of the domain height for the free-flow domain. For this, adapt the grid coordinates as well as the number of cells in y-direction in your `params.input` - file accordingly. +-Now it is sufficient to only calculate half of the domain height for the free-flow domain. For this, adapt the grid coordinates as well as the number of cells in y-direction in your `params.input` - file accordingly. -After recompiling and running your simulation with the new boundary condition, check your results with paraview. -Does your velocity profile at the symmetry boundary look reasonable? - diff --git a/README.md b/README.md index 7abfa3dfcfc4f84687f1c7a8cbcda551160edc1c..17db4f47415d55a411e331f4c825e11cc024203c 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ software packages are needed: * gnuplot (to plot some curves) * wget (to download some config files during the installation) -For some excercises you might need UMFPack. UMFPack can be installed via Suitesparse. +For some exercises you might need UMFPack. UMFPack can be installed via Suitesparse. For instance on Ubuntu use `apt-get install libsuitesparse-dev`. ## Troubleshooting diff --git a/exercises/exercise-coupling-ff-pm/interface/main.cc b/exercises/exercise-coupling-ff-pm/interface/main.cc index 81c3c568c490c10e47f950f4b9d241420f56db26..acfbe9fe93436cf85de1c2df698958305806ccb7 100644 --- a/exercises/exercise-coupling-ff-pm/interface/main.cc +++ b/exercises/exercise-coupling-ff-pm/interface/main.cc @@ -161,7 +161,7 @@ int main(int argc, char** argv) auto porousMediumGridVariables = std::make_shared<PorousMediumGridVariables>(porousMediumProblem, porousMediumFvGridGeometry); porousMediumGridVariables->init(sol[porousMediumIdx]); - // intialize the vtk output module + // initialize the vtk output module const auto freeflowName = getParam<std::string>("Problem.Name") + "_" + freeflowProblem->name(); const auto porousMediumName = getParam<std::string>("Problem.Name") + "_" + porousMediumProblem->name(); diff --git a/exercises/exercise-coupling-ff-pm/models/main.cc b/exercises/exercise-coupling-ff-pm/models/main.cc index 37ecae8ece96436520fc5d3469e810d9ec4c01e1..d2bd31ba3a2bc1f2720175869ab2b871bf3c36d0 100644 --- a/exercises/exercise-coupling-ff-pm/models/main.cc +++ b/exercises/exercise-coupling-ff-pm/models/main.cc @@ -127,7 +127,7 @@ int main(int argc, char** argv) auto porousMediumGridVariables = std::make_shared<PorousMediumGridVariables>(porousMediumProblem, porousMediumFvGridGeometry); porousMediumGridVariables->init(sol[porousMediumIdx]); - // intialize the vtk output module + // initialize the vtk output module const auto freeflowName = getParam<std::string>("Problem.Name") + "_" + freeflowProblem->name(); const auto porousMediumName = getParam<std::string>("Problem.Name") + "_" + porousMediumProblem->name(); diff --git a/exercises/exercise-coupling-ff-pm/turbulence/README.md b/exercises/exercise-coupling-ff-pm/turbulence/README.md index d1ec1252d021f0287ff25476f76f87e8e0094a39..c4126a5d4371299dbb98b9b14008be93623699ae 100644 --- a/exercises/exercise-coupling-ff-pm/turbulence/README.md +++ b/exercises/exercise-coupling-ff-pm/turbulence/README.md @@ -89,7 +89,7 @@ values.setAllSymmetry(); In addition, you have to remove the condition `onUpperBoundary_(globalPos)` from the `initialAtPos(globalPos)` method and the `dirichlet(element, scvf)` method. -Now it is sufficient to only calulate half of the domain height for the free-flow domain. For this, adapt the grid coordinates as well as the number of cells in y-direction in your `params.input` - file accordingly. +Now it is sufficient to only calculate half of the domain height for the free-flow domain. For this, adapt the grid coordinates as well as the number of cells in y-direction in your `params.input` - file accordingly. After recompiling and running your simulation with the new boundary condition, check your results with paraview. Does your velocity profile at the symmetry boundary look reasonable? diff --git a/exercises/exercise-coupling-ff-pm/turbulence/main.cc b/exercises/exercise-coupling-ff-pm/turbulence/main.cc index 68714797c97469ee4211a61f44c91fde0739e996..545c11373ee9a082e7c79797db24eb40069ba6a3 100644 --- a/exercises/exercise-coupling-ff-pm/turbulence/main.cc +++ b/exercises/exercise-coupling-ff-pm/turbulence/main.cc @@ -136,7 +136,7 @@ int main(int argc, char** argv) auto porousMediumGridVariables = std::make_shared<PorousMediumGridVariables>(porousMediumProblem, porousMediumFvGridGeometry); porousMediumGridVariables->init(sol[porousMediumIdx]); - // intialize the vtk output module + // initialize the vtk output module const auto freeflowName = getParam<std::string>("Problem.Name") + "_" + freeflowProblem->name(); const auto porousMediumName = getParam<std::string>("Problem.Name") + "_" + porousMediumProblem->name(); diff --git a/exercises/solution/exercise-coupling-ff-pm/interface/main.cc b/exercises/solution/exercise-coupling-ff-pm/interface/main.cc index f4d21addce35e71c0aa9fac5b8ddb95df5bfb03f..626b5bde27ec6f7baaf018dc4ef1c580e5c724b5 100644 --- a/exercises/solution/exercise-coupling-ff-pm/interface/main.cc +++ b/exercises/solution/exercise-coupling-ff-pm/interface/main.cc @@ -153,7 +153,7 @@ int main(int argc, char** argv) auto porousMediumGridVariables = std::make_shared<PorousMediumGridVariables>(porousMediumProblem, porousMediumFvGridGeometry); porousMediumGridVariables->init(sol[porousMediumIdx]); - // intialize the vtk output module + // initialize the vtk output module const auto freeflowName = getParam<std::string>("Problem.Name") + "_" + freeflowProblem->name(); const auto porousMediumName = getParam<std::string>("Problem.Name") + "_" + porousMediumProblem->name(); diff --git a/exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc b/exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc index 168f78676dd2451d156cb5e5a135715065712966..76159fc8a0df2f2e4aa953f4b5c67d451ab646d1 100644 --- a/exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc +++ b/exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc @@ -137,7 +137,7 @@ int main(int argc, char** argv) auto porousMediumGridVariables = std::make_shared<PorousMediumGridVariables>(porousMediumProblem, porousMediumFvGridGeometry); porousMediumGridVariables->init(sol[porousMediumIdx]); - // intialize the vtk output module + // initialize the vtk output module const auto freeflowName = getParam<std::string>("Problem.Name") + "_" + freeflowProblem->name(); const auto porousMediumName = getParam<std::string>("Problem.Name") + "_" + porousMediumProblem->name(); diff --git a/prerequisites.md b/prerequisites.md index 852f33822bc22c37c98530f4e342679cae128ff9..e9c8459e6064f42b516f471bff1f613133bc506c 100644 --- a/prerequisites.md +++ b/prerequisites.md @@ -2,11 +2,11 @@ For mastering the DuMu<sup>x</sup> course, we recommend the following prerequisites: -- **CLI:** Knowledge of basic Unix shell commands and interaction with a corresponding terminal is essential for the installation process as well as the compiliation and execution of the exercise programs. We can recommend this [Software Carpentry course](https://swcarpentry.github.io/shell-novice/) for learning the basics and this [cheat sheet](https://phoenixnap.com/kb/wp-content/uploads/2022/11/linuxCommandsAllUsersShouldKnow.pdf) for remembering them. +- **CLI:** Knowledge of basic Unix shell commands and interaction with a corresponding terminal is essential for the installation process as well as the compilation and execution of the exercise programs. We can recommend this [Software Carpentry course](https://swcarpentry.github.io/shell-novice/) for learning the basics and this [cheat sheet](https://phoenixnap.com/kb/wp-content/uploads/2022/11/linuxCommandsAllUsersShouldKnow.pdf) for remembering them. - **C++:** DuMu<sup>x</sup> is a module on top of the C++ code base DUNE and itself contains several more advanced C++ language features. We recommend to be familiar with C++ templates and can recommend the following educational resources: - In general we recommend most CppCon Back to Basics videos, but here is a list of taylored suggestions for this course. + In general we recommend most CppCon Back to Basics videos, but here is a list of tailored suggestions for this course. - OOP: - https://www.youtube.com/watch?v=32tDTD9UJCE - Compiling and Linking: diff --git a/slides/intro.md b/slides/intro.md index 0369ae13b489bb1ae607448ea44dd04d6b0f34ab..25ded6ac703b40e58b521ffbf8a5aa3d8cb92d6f 100644 --- a/slides/intro.md +++ b/slides/intro.md @@ -76,8 +76,8 @@ subtitle: Overview and Available Models ## Funding -Efforts mainly funded through ressources at the LH^2^: [Department of Hydromechanics and Modelling of Hydrosystems at the University of Stuttgart](https://www.iws.uni-stuttgart.de/en/lh2/) -and third-party funding aquired at the LH^2^ +Efforts mainly funded through resources at the LH^2^: [Department of Hydromechanics and Modelling of Hydrosystems at the University of Stuttgart](https://www.iws.uni-stuttgart.de/en/lh2/) +and third-party funding acquired at the LH^2^ <img src="img/lh2.jpeg" width="300"/> @@ -413,7 +413,7 @@ Control-volume finite element scheme based on $\mathrm{P}_1/\mathrm{Q}_1$ basis * Typically, the following components have to be specified * **Model**: Equations and constitutive models * **Assembler**: Key properties (Discretization, Variables, LocalResidual) - * **Solver**: Type of solution stategy (e.g. Newton) + * **Solver**: Type of solution strategy (e.g. Newton) * **LinearSolver**: Method for solving linear equation systems (e.g. direct / Krylov subspace methods) * **Problem**: Initial and boundary conditions, source terms * **TimeLoop**: For time-dependent problems diff --git a/slides/materialsystem.md b/slides/materialsystem.md index 9b1ba27260adc4fb364efbf0ee102ba27b04f38e..5bc09035e115457715a5067c15d6f532127f715c 100644 --- a/slides/materialsystem.md +++ b/slides/materialsystem.md @@ -118,7 +118,7 @@ static Scalar heatCapacity(const FluidState& fluidState, int phaseIdx) ## Example implementations -* _H2O_Air_ : Henry coefficient, gas diffusion coefficient, liquid diffusion coefficent for water and air +* _H2O_Air_ : Henry coefficient, gas diffusion coefficient, liquid diffusion coefficient for water and air * More, see [DuMu^x^ binary coefficients docs](https://dumux.org/docs/doxygen/master/namespace_dumux_1_1_binary_coeff.html) ## Example interface diff --git a/slides/model.md b/slides/model.md index 92c1cdcf1c26276c04ec2fd9a9718ef1aa17febe..5ba1131623cd88cb73c5fedccd665e1c5be868c9 100644 --- a/slides/model.md +++ b/slides/model.md @@ -268,4 +268,4 @@ Implementation of a **nonlinear diffusion model** for denoising of an MRI image - Use model in test case - Customize volume variables -* Go to [Model excercise](https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/tree/master/exercises/exercise-model#exercise-model-dumux-course) +* Go to [Model exercise](https://git.iws.uni-stuttgart.de/dumux-repositories/dumux-course/tree/master/exercises/exercise-model#exercise-model-dumux-course) diff --git a/slides/problem.md b/slides/problem.md index 275db90858941fcd1b09bb47452870f0f8e23376..a142c7e4fa105cb9029045d7930e0e7a490853a6 100644 --- a/slides/problem.md +++ b/slides/problem.md @@ -362,7 +362,7 @@ Inherit from `FVPorousMediumFlowSpatialParamsMP` where ## -A function returning the instrinsic permeability $K$: +A function returning the intrinsic permeability $K$: ```cpp auto permeabilityAtPos(const GlobalPosition& globalPos) const