From a5c2e7babc691e49760c346e925a868a44ec545e Mon Sep 17 00:00:00 2001 From: Stefanie Kiemle <stefanie.kiemle@iws.uni-stuttgart.de> Date: Wed, 17 Jul 2024 12:44:37 +0000 Subject: [PATCH] Cleanup/exercise fluidsystem --- .gitignore | 19 +- .patches/exercise-basic/exercise-basic.patch | 300 ++++++++++++++-- .../exercise-biomineralization.patch | 42 +-- .../exercise-coupling-ff-pm.patch | 74 ++-- .../exercise-dunemodule.patch | 2 +- .../exercise-fluidsystem.patch | 331 ++++++++++-------- .../exercise-fractures.patch | 40 +-- .patches/exercise-grids/exercise-grids.patch | 22 +- .../exercise-mainfile/exercise-mainfile.patch | 26 +- .patches/exercise-model/exercise-model.patch | 12 +- .../exercise-properties.patch | 18 +- .../exercise-runtimeparams.patch | 22 +- .../exercise-basic/injection2p2cproblem.hh | 229 ++++++++++++ .../exercise-basic/injection2pniproblem.hh | 20 +- .../exercise-basic/injection2pproblem.hh | 14 +- exercises/exercise-fluidsystem/2p2cproblem.hh | 24 +- .../exercise-fluidsystem/2p2cproperties.hh | 3 +- exercises/exercise-fluidsystem/2pproblem.hh | 24 +- .../exercise-fluidsystem/2pproperties.hh | 17 +- exercises/exercise-fluidsystem/README.md | 71 ++-- exercises/exercise-fluidsystem/aparams.input | 4 +- .../h2omycompressiblecomponent.hh | 9 +- exercises/exercise-fluidsystem/bparams.input | 4 +- .../components/mycompressiblecomponent.hh | 18 +- .../components/myincompressiblecomponent.hh | 20 +- .../h2omycompressiblecomponent.hh | 31 +- exercises/exercise-fluidsystem/main.cc | 12 +- .../exercise-fluidsystem/spatialparams.hh | 38 +- .../exercise-fluidsystem_a_solution.png | Bin 142019 -> 36813 bytes .../exercise-fluidsystem_a_solution2.png | Bin 60853 -> 25646 bytes .../exercise-basic/injection2pniproblem.hh | 24 +- .../exercise-fluidsystem/2p2cproblem.hh | 24 +- .../exercise-fluidsystem/2p2cproperties.hh | 3 +- .../exercise-fluidsystem/2pproblem.hh | 24 +- .../exercise-fluidsystem/2pproperties.hh | 12 +- .../exercise-fluidsystem/aparams.input | 4 +- .../h2omycompressiblecomponent.hh | 9 +- .../exercise-fluidsystem/bparams.input | 4 +- .../components/mycompressiblecomponent.hh | 14 +- .../components/myincompressiblecomponent.hh | 8 +- .../components/plotdensityfunction.py | 12 +- .../h2omycompressiblecomponent.hh | 29 +- .../solution/exercise-fluidsystem/main.cc | 13 +- .../exercise-fluidsystem/spatialparams.hh | 43 +-- 44 files changed, 1106 insertions(+), 563 deletions(-) create mode 100644 exercises/exercise-basic/injection2p2cproblem.hh diff --git a/.gitignore b/.gitignore index c29fadbc..4e163b8e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,10 @@ -# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder +# SPDX-FileCopyrightInfo: Copyright © DuMux Project contributors, see AUTHORS.md in root folder # SPDX-License-Identifier: CC0-1.0 # build system clutter build-* Testing +!bin/testing # auto-saved files *~ @@ -11,12 +12,14 @@ Testing # hidden files .cproject .project +.vscode # left overs from git rebase *.orig *.rej # latex clutter +*.pdf *.aux *.blg *.log @@ -26,6 +29,14 @@ Testing *.out *.tdo *.toc +*.synctex.gz + +# Python clutter +*.pyc +__pycache__ + +# macOS +.DS_Store # always consider files containing source code regardless of their name !*.cc @@ -37,3 +48,9 @@ Testing # always consider reference solutions !*reference.vtu + +# ignore files generated during python setup.py sdist +MANIFEST +_skbuild/ +dist +*.egg-info diff --git a/.patches/exercise-basic/exercise-basic.patch b/.patches/exercise-basic/exercise-basic.patch index 5b19ef06..fa829f8d 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 2024-07-17 14:02:52.088041093 +0200 +++ 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 2024-07-17 14:02:52.092041122 +0200 @@ -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 2024-07-17 14:37:31.109952737 +0200 ++++ exercises/solution/exercise-basic/CMakeLists.txt 2024-07-17 14:02:52.092041122 +0200 @@ -1,12 +1,9 @@ # SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-License-Identifier: GPL-3.0-or-later @@ -308,9 +308,242 @@ 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/injection2p2cproblem.hh exercises/solution/exercise-basic/injection2p2cproblem.hh +--- exercises/exercise-basic/injection2p2cproblem.hh 2024-07-17 14:37:31.221955214 +0200 ++++ exercises/solution/exercise-basic/injection2p2cproblem.hh 1970-01-01 01:00:00.000000000 +0100 +@@ -1,229 +0,0 @@ +-// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +-// vi: set et ts=4 sw=4 sts=4: +-/***************************************************************************** +- * See the file COPYING for full copying permissions. * +- * * +- * This program is free software: you can redistribute it and/or modify * +- * it under the terms of the GNU General Public License as published by * +- * the Free Software Foundation, either version 3 of the License, or * +- * (at your option) any later version. * +- * * +- * This program is distributed in the hope that it will be useful, * +- * but WITHOUT ANY WARRANTY; without even the implied warranty of * +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +- * GNU General Public License for more details. * +- * * +- * You should have received a copy of the GNU General Public License * +- * along with this program. If not, see <http://www.gnu.org/licenses/>. * +- *****************************************************************************/ +-/*! +- * \file +- * +- * \brief The two-phase porousmediumflow problem for exercise-basic +- */ +- +-#ifndef DUMUX_EX_BASIC_PROBLEM_2P2C_HH +-#define DUMUX_EX_BASIC_PROBLEM_2P2C_HH +- +-#include <dumux/common/properties.hh> +-#include <dumux/common/boundarytypes.hh> +-#include <dumux/common/numeqvector.hh> +-#include <dumux/porousmediumflow/problem.hh> +-#include <dumux/material/binarycoefficients/h2o_n2.hh> +- +-namespace Dumux { +- +-/*! +- * \ingroup TwoPTwoCModel +- * \ingroup ImplicitTestProblems +- * \brief Gas injection problem where a gas (here nitrogen) is injected into a fully +- * water saturated medium. During buoyancy-driven upward migration the gas +- * passes a high temperature area. +- * +- * The domain is sized 60 m times 40 m. +- * +- * For the mass conservation equation Neumann boundary conditions are used on +- * the top, on the bottom and on the right of the domain, while Dirichlet conditions +- * apply on the left boundary. +- * +- * Gas is injected at the right boundary from 7 m to 15 m at a rate of +- * 0.001 kg/(s m), the remaining Neumann boundaries are no-flow +- * boundaries. +- * +- * At the Dirichlet boundaries a hydrostatic pressure and a gas saturation of zero a +- * +- * This problem uses the \ref TwoPModel model. +- */ +-template<class TypeTag> +-class Injection2p2cProblem : public PorousMediumFlowProblem<TypeTag> +-{ +- using ParentType = PorousMediumFlowProblem<TypeTag>; +- using Scalar = GetPropType<TypeTag, Properties::Scalar>; +- using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; +- using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; +- using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; +- using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; +- using FVElementGeometry = typename GridGeometry::LocalView; +- using GridView = typename GridGeometry::GridView; +- using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; +- using NumEqVector = Dumux::NumEqVector<PrimaryVariables>; +- +- static constexpr int dimWorld = GridView::dimensionworld; +- using Element = typename GridView::template Codim<0>::Entity; +- using GlobalPosition = typename Element::Geometry::GlobalCoordinate; +- +-public: +- Injection2p2cProblem(std::shared_ptr<const GridGeometry> gridGeometry) +- : ParentType(gridGeometry) +- { +- // Initialize the tables of the fluid system +- FluidSystem::init(/*tempMin=*/273.15, +- /*tempMax=*/423.15, +- /*numTemp=*/50, +- /*pMin=*/0.0, +- /*pMax=*/30e6, +- /*numP=*/300); +- +- // Name of the problem and output file +- // getParam<TYPE>("GROUPNAME.PARAMNAME") reads and sets parameter PARAMNAME +- // of type TYPE given in the group GROUPNAME from the input file +- name_ = getParam<std::string>("Problem.Name"); +- // Depth of the aquifer, unit: m +- aquiferDepth_ = getParam<Scalar>("Problem.AquiferDepth"); +- // The duration of the injection, unit: seconds +- injectionDuration_ = getParam<Scalar>("Problem.InjectionDuration"); +- } +- +- /*! +- * \brief Returns the problem name +- * +- * This is used as a prefix for files generated by the simulation. +- */ +- std::string name() const +- { return name_+"-2p2c"; } +- +- /*! +- * \brief Specifies which kind of boundary condition should be +- * used for which equation on a given boundary segment. +- * +- * \param globalPos The position for which the bc type should be evaluated +- */ +- BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const +- { +- BoundaryTypes bcTypes; +- if (globalPos[0] < eps_) +- bcTypes.setAllDirichlet(); +- else +- bcTypes.setAllNeumann(); +- +- return bcTypes; +- } +- +- /*! +- * \brief Evaluates the boundary conditions for a Dirichlet +- * boundary segment +- * +- * \param globalPos The global position +- */ +- PrimaryVariables dirichletAtPos(const GlobalPosition &globalPos) const +- { +- return initialAtPos(globalPos); +- } +- +- /*! +- * \brief Evaluate the boundary conditions for a Neumann +- * boundary segment. +- * +- * \param globalPos The position of the integration point of the boundary segment. +- */ +- NumEqVector neumannAtPos(const GlobalPosition &globalPos) const +- { +- // Initialize values to zero, i.e. no-flow Neumann boundary conditions +- NumEqVector values(0.0); +- +- // If we are inside the injection zone set inflow Neumann boundary conditions +- if (injectionActive() && onInjectionBoundary(globalPos)) +- { +- // TODO: dumux-course-task +- // Instead of setting -1e-4 here directly use totalAreaSpecificInflow_ in the computation. +- +- // Inject nitrogen. negative values mean injection. +- // Convert units from kg/(s*m^2) to mole/(s*m^2) +- values[Indices::conti0EqIdx + FluidSystem::N2Idx] = -1e-4/FluidSystem::molarMass(FluidSystem::N2Idx); +- values[Indices::conti0EqIdx + FluidSystem::H2OIdx] = 0.0; +- } +- +- return values; +- } +- +- /*! +- * \brief Evaluate the source term for all phases within a given +- * sub-control-volume. +- * +- * \param globalPos The position for which the source term should be evaluated +- */ +- NumEqVector sourceAtPos(const GlobalPosition &globalPos) const +- { +- return NumEqVector(0.0); +- } +- +- /*! +- * \brief Evaluate the initial value for a control volume. +- * +- * \param globalPos The position for which the initial condition should be evaluated. +- */ +- PrimaryVariables initialAtPos(const GlobalPosition &globalPos) const +- { +- PrimaryVariables values(0.0); +- values.setState(Indices::firstPhaseOnly); +- // Get the water density at atmospheric conditions +- const Scalar densityW = FluidSystem::H2O::liquidDensity(this->spatialParams().temperatureAtPos(globalPos), 1.0e5); +- +- // Assume an initially hydrostatic liquid pressure profile +- // Note: we subtract rho_w*g*h because g is defined negative +- const Scalar pw = 1.0e5 - densityW*this->spatialParams().gravity(globalPos)[dimWorld-1]*(aquiferDepth_ - globalPos[dimWorld-1]); +- +- // Initially we have some nitrogen dissolved +- // Saturation mole fraction would be: +- // moleFracLiquidN2 = (pw + pc + p_vap^sat)/henry; +- const Scalar moleFracLiquidN2 = pw*0.95/BinaryCoeff::H2O_N2::henry(this->spatialParams().temperatureAtPos(globalPos)); +- +- // Note that because we start with a single phase system the primary variables +- // are pl and x^w_N2. This will switch as soon after we start injecting to a two +- // phase system so the primary variables will be pl and Sn (nonwetting saturation). +- values[Indices::pressureIdx] = pw; +- values[Indices::switchIdx] = moleFracLiquidN2; +- +- return values; +- } +- +- //! Set the time for the time dependent boundary conditions (called from main) +- void setTime(Scalar time) +- { time_ = time; } +- +- //! Return true if the injection is currently active +- bool injectionActive() const +- { return time_ < injectionDuration_; } +- +- //! Return true if the given position is in the injection boundary region +- bool onInjectionBoundary(const GlobalPosition& globalPos) const +- { +- return globalPos[1] < 15. + eps_ +- && globalPos[1] > 7. - eps_ +- && globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_; +- } +- +-private: +- static constexpr Scalar eps_ = 1e-6; +- std::string name_; //! Problem name +- Scalar aquiferDepth_; //! Depth of the aquifer in m +- Scalar injectionDuration_; //! Duration of the injection in seconds +- Scalar time_; +- //TODO: dumux-course-task +- //Define the Scalar totalAreaSpecificInflow_ here +- +-}; +- +-} //end namespace Dumux +- +-#endif 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 2024-07-17 14:37:31.221955214 +0200 ++++ exercises/solution/exercise-basic/injection2pniproblem.hh 2024-07-17 14:37:31.221955214 +0200 @@ -7,7 +7,7 @@ /*! * \file @@ -356,14 +589,18 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex } /*! -@@ -144,17 +133,18 @@ - // if we are inside the injection zone set inflow Neumann boundary conditions - if (injectionActive() && onInjectionBoundary(globalPos)) +@@ -142,19 +131,20 @@ + NumEqVector values(0.0); + + // If we are inside the injection zone set inflow Neumann boundary conditions +- if (injectionActive() && onInjectionBoundary(globalPos)) ++ if (injectionActive() && onInjectionBoundary(globalPos)) { +- // Inject nitrogen. negative values mean injection + const Scalar injectionRate = -1e-4; + - // inject nitrogen. Negative values mean injection - // unit: kg/(s*m^2) ++ // Inject nitrogen. Negative values mean injection + // Unit: kg/(s*m^2) - values[Indices::conti0EqIdx + FluidSystem::N2Idx] = -1e-4; + values[Indices::conti0EqIdx + FluidSystem::N2Idx] = injectionRate; values[Indices::conti0EqIdx + FluidSystem::H2OIdx] = 0.0; @@ -371,10 +608,10 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex - /*! - * TODO:dumux-course-task 4: - * Set Neumann noflow conditions for the energy equation everywhere else except the left boundary. -- * Additionally, consider the energy flux at the injection point which is equal to the product of the respective mass flux and the matching enthalpy. Use the function `gasEnthalpy(temperature,pressure)` from the N2 component to access the necessary enthalpy. +- * Additionally, consider the energy flux at the injection point which is equal to the product of the respective mass flux and the matching enthalpy. Use the function `gasEnthalpy(temperature,pressure)` from the N2 component to access the necessary enthalpy. - * hint: use `Indices::energyEqIdx` to access the entry belonging to the energy flux. - */ -+ // energy fluxes are always mass specific ++ // Energy fluxes are always mass specific + // unit: W/(m^2) + const Scalar temperatureAtInjection = initialAtPos(globalPos)[Indices::temperatureIdx];/*K*/ + const Scalar pressureAtInjection = initialAtPos(globalPos)[Indices::pressureIdx];/*Pa*/ @@ -382,6 +619,15 @@ diff -ruN exercises/exercise-basic/injection2pniproblem.hh exercises/solution/ex } return values; +@@ -180,7 +170,7 @@ + { + PrimaryVariables values(0.0); + +- // get the water density at atmospheric conditions ++ // Get the water density at atmospheric conditions + const Scalar densityW = FluidSystem::H2O::liquidDensity(283.15, 1.0e5); + + // Assume an initially hydrostatic liquid pressure profile @@ -190,13 +180,10 @@ values[Indices::pressureIdx] = pw; values[Indices::saturationIdx] = 0.0; @@ -401,7 +647,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 2024-07-17 14:37:31.221955214 +0200 +++ 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 -*- @@ -506,10 +752,10 @@ diff -ruN exercises/exercise-basic/injection2pproblem.hh exercises/solution/exer - BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const - { - BoundaryTypes bcTypes; -- // set the left of the domain (with the global position in "0 = x" direction as a Dirichlet boundary +- // Set the left of the domain (with the global position in "0 = x" direction as a Dirichlet boundary - if (globalPos[0] < eps_) - bcTypes.setAllDirichlet(); -- // set all other as Neumann boundaries +- // Set all other as Neumann boundaries - else - bcTypes.setAllNeumann(); - @@ -535,10 +781,10 @@ diff -ruN exercises/exercise-basic/injection2pproblem.hh exercises/solution/exer - */ - NumEqVector neumannAtPos(const GlobalPosition &globalPos) const - { -- // initialize values to zero, i.e. no-flow Neumann boundary conditions +- // Initialize values to zero, i.e. no-flow Neumann boundary conditions - NumEqVector values(0.0); - -- // if we are inside the injection zone set inflow Neumann boundary conditions +- // If we are inside the injection zone set inflow Neumann boundary conditions - // using < boundary + eps_ or > boundary - eps_ is safer for floating point comparisons - // than using <= or >= as it is robust with regard to imprecision introduced by rounding errors. - if (injectionActive() && onInjectionBoundary(globalPos)) @@ -573,11 +819,11 @@ diff -ruN exercises/exercise-basic/injection2pproblem.hh exercises/solution/exer - { - PrimaryVariables values(0.0); - -- // get the water density at atmospheric conditions +- // Get the water density at atmospheric conditions - const Scalar densityW = FluidSystem::H2O::liquidDensity(this->spatialParams().temperatureAtPos(globalPos), 1.0e5); - -- // assume an initially hydrostatic liquid pressure profile -- // note: we subtract rho_w*g*h because g is defined negative +- // Assume an initially hydrostatic liquid pressure profile +- // Note: we subtract rho_w*g*h because g is defined negative - const Scalar pw = 1.0e5 - densityW*this->spatialParams().gravity(globalPos)[dimWorld-1]*(aquiferDepth_ - globalPos[dimWorld-1]); - - values[Indices::pressureIdx] = pw; @@ -616,8 +862,8 @@ diff -ruN exercises/exercise-basic/injection2pproblem.hh exercises/solution/exer - -#endif diff -ruN exercises/exercise-basic/params.input exercises/solution/exercise-basic/params.input ---- exercises/exercise-basic/params.input 2023-10-13 18:08:54.710521000 +0200 -+++ exercises/solution/exercise-basic/params.input 2024-07-17 10:58:43.905583103 +0200 +--- exercises/exercise-basic/params.input 2024-06-26 11:12:30.497879893 +0200 ++++ exercises/solution/exercise-basic/params.input 2024-07-17 14:02:52.096041149 +0200 @@ -24,7 +24,7 @@ Aquifer.Snr = 0.0 @@ -631,7 +877,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 2024-07-17 14:02:52.088041093 +0200 +++ 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 +944,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 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-basic/properties2pni.hh 2024-07-17 14:02:52.096041149 +0200 @@ -24,13 +24,9 @@ namespace Dumux::Properties { @@ -716,7 +962,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 2024-07-17 14:37:31.109952737 +0200 +++ exercises/solution/exercise-basic/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,94 +0,0 @@ -# Exercise Basics (DuMuX course) diff --git a/.patches/exercise-biomineralization/exercise-biomineralization.patch b/.patches/exercise-biomineralization/exercise-biomineralization.patch index fb7d5f82..1f7592f6 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 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-biomineralization/biominproblem.hh 2024-07-17 14:02:52.096041149 +0200 @@ -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 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-biomineralization/biominspatialparams.hh 2024-07-17 14:02:52.096041149 +0200 @@ -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 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-biomineralization/chemistry/simplebiominreactions.hh 2024-07-17 14:02:52.096041149 +0200 @@ -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 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-biomineralization/CMakeLists.txt 2024-07-17 14:02:52.096041149 +0200 @@ -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 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-biomineralization/components/biofilm.hh 2024-07-17 14:02:52.096041149 +0200 @@ -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 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-biomineralization/fluidmatrixinteractions/permeabilitypowerlaw.hh 2024-07-17 14:02:52.096041149 +0200 @@ -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 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-biomineralization/fluidsystems/biomin.hh 2024-07-17 14:02:52.096041149 +0200 @@ -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 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-biomineralization/params.input 2024-07-17 14:02:52.096041149 +0200 @@ -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 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-biomineralization/properties.hh 2024-07-17 14:02:52.096041149 +0200 @@ -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 2024-07-17 14:02:52.088041093 +0200 +++ exercises/solution/exercise-biomineralization/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,257 +0,0 @@ -# Exercise Biomineralization (DuMuX Course) @@ -530,8 +530,8 @@ diff -ruN exercises/exercise-biomineralization/README.md exercises/solution/exer -output.CellData.append((S_gas_0-S_gas_1),'diffS_gas'); -``` diff -ruN exercises/exercise-biomineralization/solidsystems/biominsolidphase.hh exercises/solution/exercise-biomineralization/solidsystems/biominsolidphase.hh ---- exercises/exercise-biomineralization/solidsystems/biominsolidphase.hh 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 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-biomineralization/solidsystems/biominsolidphase.hh 2024-07-17 14:02:52.096041149 +0200 @@ -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 31522747..34e91e4c 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 13:58:18.208850308 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/interface/CMakeLists.txt 2024-07-17 13:58:18.216850425 +0200 +--- exercises/exercise-coupling-ff-pm/interface/CMakeLists.txt 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/interface/CMakeLists.txt 2024-07-17 14:02:52.096041149 +0200 @@ -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 13:58:18.208850308 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh 2024-07-17 13:58:18.216850425 +0200 +--- exercises/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/interface/freeflowsubproblem.hh 2024-07-17 14:02:52.096041149 +0200 @@ -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 13:58:18.208850308 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/interface/main.cc 2024-07-17 13:58:18.252850955 +0200 +--- exercises/exercise-coupling-ff-pm/interface/main.cc 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/interface/main.cc 2024-07-17 14:37:31.113952826 +0200 @@ -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/porousmediumsubproblem.hh exercises/solution/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh ---- exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh 2024-07-17 13:58:18.252850955 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh 2024-07-17 13:58:18.252850955 +0200 +--- exercises/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh 2024-07-17 14:37:31.109952737 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/interface/porousmediumsubproblem.hh 2024-07-17 14:37:31.113952826 +0200 @@ -68,9 +68,10 @@ // set Neumann BCs to all boundaries first values.setAllNeumann(); @@ -278,8 +278,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 13:58:18.252850955 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/interface/properties.hh 2024-07-17 13:58:18.216850425 +0200 +--- exercises/exercise-coupling-ff-pm/interface/properties.hh 2024-07-17 14:37:31.109952737 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/interface/properties.hh 2024-07-17 14:02:52.096041149 +0200 @@ -16,9 +16,9 @@ #include <dumux/multidomain/staggeredtraits.hh> #include <dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh> @@ -336,7 +336,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-17 14:00:29.510779420 +0200 +--- exercises/exercise-coupling-ff-pm/interface/readme.md 2024-07-17 14:37:31.109952737 +0200 +++ exercises/solution/exercise-coupling-ff-pm/interface/readme.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,169 +0,0 @@ -## 1. Changing the interface @@ -509,8 +509,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 2024-07-17 13:58:18.208850308 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/models/CMakeLists.txt 2024-07-17 13:58:18.216850425 +0200 +--- exercises/exercise-coupling-ff-pm/models/CMakeLists.txt 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/models/CMakeLists.txt 2024-07-17 14:02:52.096041149 +0200 @@ -1,9 +1,32 @@ # SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-License-Identifier: GPL-3.0-or-later @@ -549,8 +549,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 13:58:18.208850308 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/models/main.cc 2024-07-17 13:58:18.216850425 +0200 +--- exercises/exercise-coupling-ff-pm/models/main.cc 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/models/main.cc 2024-07-17 14:02:52.096041149 +0200 @@ -127,9 +127,15 @@ auto porousMediumGridVariables = std::make_shared<PorousMediumGridVariables>(porousMediumProblem, porousMediumFvGridGeometry); porousMediumGridVariables->init(sol[porousMediumIdx]); @@ -572,7 +572,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:28:05.559708538 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/models/params_b_c.input 2024-07-16 15:45:21.113991695 +0200 @@ -0,0 +1,57 @@ +[TimeLoop] +DtInitial = 100 # s @@ -632,7 +632,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 13:58:18.252850955 +0200 +--- exercises/exercise-coupling-ff-pm/models/params.input 2024-07-17 14:37:31.109952737 +0200 +++ exercises/solution/exercise-coupling-ff-pm/models/params.input 1970-01-01 01:00:00.000000000 +0100 @@ -1,58 +0,0 @@ -[TimeLoop] @@ -695,7 +695,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-16 16:28:05.563708580 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/models/params_orig_a.input 2024-07-16 15:45:21.113991695 +0200 @@ -0,0 +1,56 @@ +[TimeLoop] +DtInitial = 100 # s @@ -754,8 +754,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 13:58:18.252850955 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh 2024-07-17 13:58:18.252850955 +0200 +--- exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh 2024-07-17 14:37:31.109952737 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh 2024-07-17 14:37:31.113952826 +0200 @@ -52,10 +52,15 @@ // primary variable indices static constexpr int conti0EqIdx = Indices::conti0EqIdx; @@ -877,8 +877,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 13:58:18.252850955 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/models/properties.hh 2024-07-17 13:58:18.216850425 +0200 +--- exercises/exercise-coupling-ff-pm/models/properties.hh 2024-07-17 14:37:31.109952737 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/models/properties.hh 2024-07-17 14:02:52.096041149 +0200 @@ -25,12 +25,14 @@ #include <dumux/discretization/cctpfa.hh> #include <dumux/material/fluidmatrixinteractions/diffusivityconstanttortuosity.hh> @@ -961,7 +961,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-17 14:03:33.957481940 +0200 +--- exercises/exercise-coupling-ff-pm/models/readme.md 2024-07-17 14:37:31.109952737 +0200 +++ 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 @@ -1083,7 +1083,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-17 14:00:29.510779420 +0200 +--- exercises/exercise-coupling-ff-pm/README.md 2024-07-17 14:37:31.109952737 +0200 +++ 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) @@ -1212,8 +1212,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 13:58:18.208850308 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/CMakeLists.txt 2024-07-17 13:58:18.216850425 +0200 +--- exercises/exercise-coupling-ff-pm/turbulence/CMakeLists.txt 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/CMakeLists.txt 2024-07-17 14:02:52.096041149 +0200 @@ -1,10 +1,33 @@ # SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-License-Identifier: GPL-3.0-or-later @@ -1252,8 +1252,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 13:58:18.252850955 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh 2024-07-17 13:58:18.252850955 +0200 +--- exercises/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh 2024-07-17 14:37:31.113952826 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/freeflowsubproblem.hh 2024-07-17 14:37:31.113952826 +0200 @@ -8,8 +8,8 @@ * \file * \brief The free-flow sub problem @@ -1469,8 +1469,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 13:58:18.208850308 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc 2024-07-17 13:58:18.256851014 +0200 +--- exercises/exercise-coupling-ff-pm/turbulence/main.cc 2024-07-17 14:02:52.088041093 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/main.cc 2024-07-17 14:37:31.113952826 +0200 @@ -122,11 +122,12 @@ couplingManager->init(freeflowProblem, porousMediumProblem, sol); @@ -1501,7 +1501,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:28:05.563708580 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_b.input 2024-07-16 15:45:21.113991695 +0200 @@ -0,0 +1,72 @@ +[TimeLoop] +DtInitial = 1e-1 # [s] @@ -1577,7 +1577,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:28:05.563708580 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_c_d.input 2024-07-16 15:45:21.113991695 +0200 @@ -0,0 +1,72 @@ +[TimeLoop] +DtInitial = 1e-1 # [s] @@ -1652,7 +1652,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:28:05.559708538 +0200 +--- exercises/exercise-coupling-ff-pm/turbulence/params.input 2024-07-16 15:45:21.113991695 +0200 +++ exercises/solution/exercise-coupling-ff-pm/turbulence/params.input 1970-01-01 01:00:00.000000000 +0100 @@ -1,73 +0,0 @@ -[TimeLoop] @@ -1730,7 +1730,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:28:05.563708580 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/params_orig_a.input 2024-07-16 15:45:21.113991695 +0200 @@ -0,0 +1,72 @@ +[TimeLoop] +DtInitial = 1e-1 # [s] @@ -1805,8 +1805,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 13:58:18.252850955 +0200 -+++ exercises/solution/exercise-coupling-ff-pm/turbulence/properties.hh 2024-07-17 13:58:18.216850425 +0200 +--- exercises/exercise-coupling-ff-pm/turbulence/properties.hh 2024-07-17 14:37:31.113952826 +0200 ++++ exercises/solution/exercise-coupling-ff-pm/turbulence/properties.hh 2024-07-17 14:02:52.096041149 +0200 @@ -8,8 +8,8 @@ * \file * \brief The coupled exercise properties file or the turbulent case. @@ -1848,7 +1848,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-16 16:28:05.559708538 +0200 +--- exercises/exercise-coupling-ff-pm/turbulence/readme.md 2024-07-16 15:45:21.113991695 +0200 +++ 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 diff --git a/.patches/exercise-dunemodule/exercise-dunemodule.patch b/.patches/exercise-dunemodule/exercise-dunemodule.patch index 381f901f..088dc39d 100644 --- a/.patches/exercise-dunemodule/exercise-dunemodule.patch +++ b/.patches/exercise-dunemodule/exercise-dunemodule.patch @@ -1,5 +1,5 @@ diff -ruN exercises/exercise-dunemodule/README.md exercises/solution/exercise-dunemodule/README.md ---- exercises/exercise-dunemodule/README.md 2024-07-17 14:00:29.510779420 +0200 +--- exercises/exercise-dunemodule/README.md 2024-07-17 14:37:31.113952826 +0200 +++ exercises/solution/exercise-dunemodule/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,114 +0,0 @@ -# Exercise New Dune Module (DuMuX course) diff --git a/.patches/exercise-fluidsystem/exercise-fluidsystem.patch b/.patches/exercise-fluidsystem/exercise-fluidsystem.patch index db24b46f..6af0be58 100644 --- a/.patches/exercise-fluidsystem/exercise-fluidsystem.patch +++ b/.patches/exercise-fluidsystem/exercise-fluidsystem.patch @@ -1,36 +1,59 @@ +diff -ruN exercises/exercise-fluidsystem/2p2cproblem.hh exercises/solution/exercise-fluidsystem/2p2cproblem.hh +--- exercises/exercise-fluidsystem/2p2cproblem.hh 2024-07-17 14:37:31.333957691 +0200 ++++ exercises/solution/exercise-fluidsystem/2p2cproblem.hh 2024-07-17 14:37:31.333957691 +0200 +@@ -12,7 +12,7 @@ + #ifndef DUMUX_EXERCISE_FLUIDSYSTEM_B_PROBLEM_HH + #define DUMUX_EXERCISE_FLUIDSYSTEM_B_PROBLEM_HH + +-// The base porous media box problem. ++// The base porous media box problem. + #include <dumux/porousmediumflow/problem.hh> + #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-17 11:27:28.874349112 +0200 -+++ exercises/solution/exercise-fluidsystem/2pproperties.hh 2024-07-17 11:27:28.882349286 +0200 -@@ -25,10 +25,8 @@ +--- exercises/exercise-fluidsystem/2pproperties.hh 2024-07-17 14:37:31.357958221 +0200 ++++ exercises/solution/exercise-fluidsystem/2pproperties.hh 2024-07-17 14:37:31.357958221 +0200 +@@ -25,15 +25,13 @@ #include "spatialparams.hh" // The components that will be created in this exercise --// TODO: dumux-course-task 2.2 --//****** Include the corresponding header for the task *****// +-// TODO: dumux-course-task 2.2: +-// Include the corresponding header for the task #include "components/myincompressiblecomponent.hh" -// #include "components/mycompressiblecomponent.hh" +#include "components/mycompressiblecomponent.hh" // We will only have liquid phases here #include <dumux/material/fluidsystems/1pliquid.hh> -@@ -77,10 +75,10 @@ + +-// The two-phase immiscible fluidsystem ++// The two-phase immiscible fluid system + #include <dumux/material/fluidsystems/2pimmiscible.hh> + + // The interface to create plots during simulation +@@ -76,12 +74,13 @@ using Scalar = GetPropType<TypeTag, Properties::Scalar>; using TabulatedH2O = Components::TabulatedComponent<Components::H2O<Scalar>>; using LiquidWaterPhase = typename FluidSystems::OnePLiquid<Scalar, TabulatedH2O>; - -- // TODO: dumux-course-task 2.2 -- //****** Select the corresponding component for the task *****// +- // TODO: dumux-course-task 2.2: +- // Select the corresponding component for the task - // Uncomment first line and comment second line for using the compressible component +- using LiquidMyComponentPhase = typename FluidSystems::OnePLiquid<Scalar, MyIncompressibleComponent<Scalar> >; +- // using LiquidMyComponentPhase = typename FluidSystems::OnePLiquid<Scalar, MyCompressibleComponent<Scalar> >; + /*! ++ * TODO: dumux-course-task 2.2: + * Uncomment first line and comment second line for using the incompressible component + * Uncomment second line and comment first line for using the compressible component + */ - using LiquidMyComponentPhase = typename FluidSystems::OnePLiquid<Scalar, MyIncompressibleComponent<Scalar> >; - // using LiquidMyComponentPhase = typename FluidSystems::OnePLiquid<Scalar, MyCompressibleComponent<Scalar> >; ++ using LiquidMyComponentPhase = typename FluidSystems::OnePLiquid<Scalar, MyIncompressibleComponent<Scalar> >; ++ //using LiquidMyComponentPhase = typename FluidSystems::OnePLiquid<Scalar, MyCompressibleComponent<Scalar> >; + 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 2023-10-13 18:08:54.714521020 +0200 -+++ exercises/solution/exercise-fluidsystem/aparams.input 2020-11-12 12:07:04.129814352 +0100 +--- exercises/exercise-fluidsystem/aparams.input 2024-07-17 14:37:31.333957691 +0200 ++++ exercises/solution/exercise-fluidsystem/aparams.input 2024-07-17 14:37:31.333957691 +0200 @@ -3,7 +3,7 @@ DtInitial = 10 # initial time step size [s] @@ -39,7 +62,7 @@ diff -ruN exercises/exercise-fluidsystem/aparams.input exercises/solution/exerci +Name = exercise-fluidsystem_a_solution # name will be given to e.g. to the vtk result files [SpatialParams] - BrooksCoreyPcEntry = 5.0e2 # Pa + BrooksCoreyPcEntry = 5.0e2 # [Pa] @@ -20,4 +20,4 @@ Cells = 60 60 # x-/y-resolution of the grid @@ -47,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 2023-10-13 18:08:54.714521020 +0200 -+++ exercises/solution/exercise-fluidsystem/bparams.input 2020-11-12 12:07:04.129814352 +0100 +--- exercises/exercise-fluidsystem/bparams.input 2024-07-17 14:37:31.333957691 +0200 ++++ exercises/solution/exercise-fluidsystem/bparams.input 2024-07-17 14:37:31.333957691 +0200 @@ -3,7 +3,7 @@ DtInitial = 10 # initial time step size [s] @@ -57,10 +80,10 @@ diff -ruN exercises/exercise-fluidsystem/bparams.input exercises/solution/exerci +Name = exercise-fluidsystem_b_solution # name will be given to e.g. to the vtk result files [SpatialParams] - BrooksCoreyPcEntry = 5.0e2 # Pa + 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 11:27:28.798347462 +0200 -+++ exercises/solution/exercise-fluidsystem/CMakeLists.txt 2024-07-17 11:27:28.798347462 +0200 +--- exercises/exercise-fluidsystem/CMakeLists.txt 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-fluidsystem/CMakeLists.txt 2024-07-17 14:02:52.096041149 +0200 @@ -3,18 +3,16 @@ # executables for exercise part a & b @@ -87,25 +110,25 @@ 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-17 11:27:28.874349112 +0200 -+++ exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh 2024-07-17 11:27:28.882349286 +0200 +--- exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh 2024-07-17 14:37:31.265956187 +0200 ++++ exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh 2024-07-17 14:37:31.265956187 +0200 @@ -38,7 +38,7 @@ static std::string name() { return "MyCompressibleComponent"; } - /*! + /*! - * \brief Returns true if the liquid phase is assumed to be compressible + * \brief Returns true if the liquid phase is assumed to be compressible. */ static constexpr bool liquidIsCompressible() @@ -49,11 +49,7 @@ */ static Scalar molarMass() { -- // TODO: dumux-course-task 2.2 +- // TODO: dumux-course-task 2.2: - // Copy the methods implemented in MyIncompressibleComponent and substitute - // the density calculation by the expression given in the exercise description. -- // Replace the line below by a meaningful return statement +- // Replace the line below by a meaningful return statement. - DUNE_THROW(Dune::NotImplemented, "Todo: implement molar mass"); + return 131.39e-3; // [kg/mol] } @@ -116,11 +139,11 @@ diff -ruN exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh e static Scalar liquidDensity(Scalar temperature, Scalar pressure) { - // TODO: dumux-course-task 2.2: -- // Replace the line below by a meaningful return statement +- // Replace the line below by a meaningful return statement. - DUNE_THROW(Dune::NotImplemented, "Todo: implement liquid density"); -+ static const Scalar rho_min = 1440; -+ static const Scalar rho_max = 1480; -+ static const Scalar k = 5e-7; ++ static const Scalar rho_min = 1440.0; ++ static const Scalar rho_max = 1480.0; ++ static const Scalar k = 5.0e-7; + + using std::exp; + return rho_min + (rho_max - rho_min)/(1 + rho_min*exp(-1.0*k*(rho_max - rho_min)*pressure)); // [kg/m^3] @@ -132,7 +155,7 @@ diff -ruN exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh e static Scalar liquidViscosity(Scalar temperature, Scalar pressure) { - // TODO: dumux-course-task 2.2: -- // Replace the line below by a meaningful return statement +- // Replace the line below by a meaningful return statement. - DUNE_THROW(Dune::NotImplemented, "Todo: implement liquid viscosity"); + return 5.7e-4;// [Pa*s] } @@ -142,41 +165,23 @@ diff -ruN exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh e */ static Scalar vaporPressure(Scalar t) { -- // TODO: dumux-course-task 3 -- // Replace the line below by a meaningful return statement +- // TODO: dumux-course-task 3: +- // Replace the line below by a meaningful return statement. - DUNE_THROW(Dune::NotImplemented, "Todo: implement vapour pressure"); -+ return 3900; // [Pa] (at 20C) ++ return 3900.0; // [Pa] (at 20°C) } }; diff -ruN exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh ---- exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh 2024-07-17 11:27:28.874349112 +0200 -+++ exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh 2024-07-17 11:27:28.882349286 +0200 -@@ -7,7 +7,7 @@ - /*! - * \file - * \ingroup Components -- * \brief A fictitious component to be implemented in exercise-fluidsystem. -+ * \brief A fictitious component to be implemented in exercise-fluidsystem a. - */ - #ifndef DUMUX_MYINCOMPRESSIBLECOMPONENT_HH - #define DUMUX_MYINCOMPRESSIBLECOMPONENT_HH -@@ -21,7 +21,7 @@ - { - /*! - * \ingroup Components -- * \brief A fictitious component to be implemented in exercise-fluidsystem. -+ * \brief A fictitious component to be implemented in exercise-fluidsystem a. - * - * \tparam Scalar The type used for scalar values - */ +--- exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh 2024-07-17 14:37:31.265956187 +0200 ++++ exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh 2024-07-17 14:37:31.265956187 +0200 @@ -48,10 +48,7 @@ */ static Scalar molarMass() { -- // TODO: dumux-course-task 2.1 +- // TODO: dumux-course-task 2.1: - // Implement the methods for the component data given in the exercise description. -- // Replace the line below by a meaningful return statement +- // Replace the line below by a meaningful return statement. - DUNE_THROW(Dune::NotImplemented, "Todo: implement molarMass()"); + return 131.39e-3; // [kg/mol] } @@ -186,9 +191,9 @@ diff -ruN exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh */ static Scalar liquidDensity(Scalar temperature, Scalar pressure) { -- // TODO: dumux-course-task 2.1 +- // TODO: dumux-course-task 2.1: - // Implement the methods for the component data given in the exercise description. -- // Replace the line below by a meaningful return statement +- // Replace the line below by a meaningful return statement. - DUNE_THROW(Dune::NotImplemented, "Todo: implement liquidDensity()"); + return 1460.0; // [kg/m^3] } @@ -198,9 +203,9 @@ diff -ruN exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh */ static Scalar liquidViscosity(Scalar temperature, Scalar pressure) { -- // TODO: dumux-course-task 2.1 +- // TODO: dumux-course-task 2.1: - // Implement the methods for the component data given in the exercise description. -- // Replace the line below by a meaningful return statement +- // Replace the line below by a meaningful return statement. - DUNE_THROW(Dune::NotImplemented, "Todo: implement liquidViscosity()"); + return 5.7e-4;// [Pa*s] } @@ -208,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-17 11:27:28.842348417 +0200 ++++ exercises/solution/exercise-fluidsystem/components/plotdensityfunction.py 2024-07-17 14:37:31.265956187 +0200 @@ -0,0 +1,22 @@ +#!usr/bin/env python +# SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder @@ -217,34 +222,37 @@ diff -ruN exercises/exercise-fluidsystem/components/plotdensityfunction.py exerc +import numpy as np +import matplotlib.pyplot as plt + -+# function to calculate rho dependent on pressure -+rho_min = 1440; -+rho_max = 1480; -+k = 5e-7; ++# Function to calculate rho dependent on pressure. ++rho_min = 1440.0; ++rho_max = 1480.0; ++k = 5.0e-7; + +def rho(p): + return rho_min + (rho_max - rho_min)/(1 + rho_min*np.exp(-1.0*k*(rho_max - rho_min)*p)); + -+# sample pressure in range (1e4, 1e7) and compute corresponding densities ++# Sample pressure in range (1e4, 1e7) and compute corresponding densities. +p = np.logspace(4, 7, 100) +r = rho(p) + -+# plot density vs. pressure ++# Plot density vs. pressure. +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-17 11:27:28.874349112 +0200 -+++ exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh 2024-07-17 11:27:28.882349286 +0200 -@@ -19,15 +19,15 @@ - +--- exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh 2024-07-17 14:37:31.357958221 +0200 ++++ exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh 2024-07-17 14:37:31.421959636 +0200 +@@ -1,4 +1,3 @@ +-// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + // vi: set et ts=4 sw=4 sts=4: + // + // SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder +@@ -20,14 +19,14 @@ #include <dumux/material/fluidsystems/base.hh> --// the fictitious component that was created in exercise-fluidsystem a + // The fictitious component that was created in exercise-fluidsystem 2.2 -#include <exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh> -+// the fictitious component that was created in exercise 3a +#include <exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh> - // the binary coefficients corresponding to this fluid system + // The binary coefficients corresponding to this fluid system -#include <exercises/exercise-fluidsystem/binarycoefficients/h2omycompressiblecomponent.hh> +#include <exercises/solution/exercise-fluidsystem/binarycoefficients/h2omycompressiblecomponent.hh> @@ -254,8 +262,8 @@ diff -ruN exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent + /*! * \brief A compositional fluid consisting of two liquid phases, - * which are water and a fictitious component from exercise-fluidsystem a. -@@ -39,7 +39,7 @@ + * which are water and a fictitious component from exercise-fluidsystem 2.2. +@@ -39,7 +38,7 @@ { using ThisType = H2OMyCompressibleComponent<Scalar, H2OType>; using Base = Dumux::FluidSystems::Base<Scalar, ThisType>; @@ -264,7 +272,7 @@ diff -ruN exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent public: using H2O = H2OType; using MyCompressibleComponent = Dumux::MyCompressibleComponent<Scalar>; -@@ -109,11 +109,13 @@ +@@ -109,11 +108,13 @@ assert(0 <= phaseIdx && phaseIdx < numPhases); return true; } @@ -279,8 +287,16 @@ diff -ruN exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent static constexpr bool isIdealGas(int phaseIdx) { return H2O::gasIsIdeal() && MyCompressibleComponent::gasIsIdeal(); } -@@ -211,16 +213,13 @@ - // See: doctoral thesis of Steffen Ochs 2007 +@@ -181,7 +182,6 @@ + DUNE_THROW(Dune::InvalidStateException, "Invalid component index " << compIdx); + } + +- + /*! + * \brief Return the molar mass of a component in [kg/mol]. + */ +@@ -212,16 +212,13 @@ + // see: doctoral thesis of Steffen Ochs 2007 // Steam injection into saturated porous media : process analysis including experimental and numerical investigations // http://elib.uni-stuttgart.de/bitstream/11682/271/1/Diss_Ochs_OPUS.pdf + Scalar rholH2O = H2O::liquidDensity(fluidState.temperature(phaseIdx), fluidState.pressure(phaseIdx)); @@ -293,8 +309,8 @@ diff -ruN exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent - // Scalar x_H2O = fluidState.moleFraction(phase0Idx, H2OIdx); - // Scalar x_myComp = fluidState.moleFraction(phase0Idx, NAPLIdx); - -- // TODO: dumux-course-task 3 -- // Implement the composition-dependent water density from the exercise sheet. +- // TODO: dumux-course-task 3: +- // implement the composition-dependent water density from the exercise sheet. - - DUNE_THROW(Dune::NotImplemented, "Todo: implement composition-dependent density"); + // return composition-dependent water phase density @@ -302,21 +318,38 @@ diff -ruN exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent } else { +@@ -397,8 +394,9 @@ + } + + /*! +- * \brief Partial pressures in the gas phase, taken from saturation vapor pressures. ++ * \brief Partial pressures in the gas phase, taken from saturation vapor pressures. + */ ++ + template <class FluidState> + static Scalar partialPressureGas(const FluidState &fluidState, int phaseIdx, + int compIdx) +@@ -417,6 +415,7 @@ + /*! + * \brief Inverse vapor pressures, taken from inverse saturation vapor pressures. + */ ++ + template <class FluidState> + static Scalar inverseVaporPressureCurve(const FluidState &fluidState, + int phaseIdx, diff -ruN exercises/exercise-fluidsystem/main.cc exercises/solution/exercise-fluidsystem/main.cc ---- exercises/exercise-fluidsystem/main.cc 2024-07-17 11:27:28.874349112 +0200 -+++ exercises/solution/exercise-fluidsystem/main.cc 2024-07-17 11:27:28.882349286 +0200 -@@ -39,8 +39,8 @@ - - // define the type tag for this problem - // TYPETAG is set in CMakeLists.txt as compile time definition -- // alternatively you could write `using TypeTag = Properties::TTag::ExerciseFluidsystemBoxTwoP;` -- // then, for the 2p2c problem you have to change this line to `using TypeTag = Properties::TTag::ExerciseFluidsystemBoxTwoPTwoC;` -+ // alternatively you could write `using TypeTag = Properties::TTag::ExerciseFluidsystemTwoP;` -+ // then, for the 2p2c problem you have to change this line to `using TypeTag = Properties::TTag::ExerciseFluidsystemTwoPTwoC;` - // and recompile the executable - using TypeTag = Properties::TTag::TYPETAG; - -@@ -80,13 +80,11 @@ +--- exercises/exercise-fluidsystem/main.cc 2024-07-17 14:37:31.333957691 +0200 ++++ exercises/solution/exercise-fluidsystem/main.cc 2024-07-17 14:37:31.333957691 +0200 +@@ -36,7 +36,7 @@ + int main(int argc, char** argv) + { + using namespace Dumux; +- ++ + // TODO: dumux-course-task 3: + // TYPETAG is set in CMakeLists.txt as compile time definition. + // Alternatively, you could write `using TypeTag = Properties::TTag::ExerciseFluidsystemTwoP;` +@@ -80,13 +80,12 @@ auto gridVariables = std::make_shared<GridVariables>(problem, gridGeometry); gridVariables->init(x); @@ -327,29 +360,28 @@ diff -ruN exercises/exercise-fluidsystem/main.cc exercises/solution/exercise-flu const auto maxDt = getParam<Scalar>("TimeLoop.MaxTimeStepSize"); auto dt = getParam<Scalar>("TimeLoop.DtInitial"); - ++ // initialize the vtk output module 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 2023-10-13 18:08:54.714521020 +0200 +--- exercises/exercise-fluidsystem/README.md 2024-07-17 14:37:31.377958664 +0200 +++ exercises/solution/exercise-fluidsystem/README.md 1970-01-01 01:00:00.000000000 +0100 -@@ -1,266 +0,0 @@ +@@ -1,265 +0,0 @@ -# Exercise Fluidsystem (DuMuX Course) - -The aim of this exercise is to get familiar with the _DuMu<sup>x</sup>_ way of implementing new components and using them in fluid systems (immiscible/mixture). In the scope of this exercise, different two-phase (liquid-liquid) fluid systems are implemented. A new fictitious component is implemented and used to describe a immiscible liquid phase. The second phase will only consist of water (Section 2). Furthermore, the mixture of the two components is implemented as two miscible phases (Section 3). - -## Problem set-up - --The domain has a size of 60 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). +-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"> - - --## Preparing the exercise +-## Task 1: Getting familiar with the code - --* Navigate to the directory `dumux-course/exercises/exercise-fluidsystem` -- --### 1. Getting familiar with the code +-* Navigate to the directory `dumux-course/exercises/exercise-fluidsystem`. - -Locate all the files you will need for this exercise -* The shared __main file__ : `main.cc` @@ -362,13 +394,13 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f -* The __spatial parameters file__: `spatialparams.hh` - -Furthermore you will find the following folders: --* `binarycoefficients`: Stores headers containing data/methods on binary mixtures --* `components`: Stores headers containing data/methods on pure components +-* `binarycoefficients`: Stores headers containing data/methods on binary mixtures. +-* `components`: Stores headers containing data/methods on pure components. -* `fluidsystems`: Stores headers containing data/methods on mixtures of pure components. Uses methods from `binarycoefficients`. - --To see more components, fluidsystems and binarycoefficients implementations, have a look at the folder `dumux/material`. +-To see more components, fluid systems and binarycoefficients implementations, have a look at the folder `dumux/material`. - --### 2. Implement a new component +-## Task 2: Implement a new component - Part a - -In the following, the basic steps required to set the desired fluid system are outlined. Here, this is done in the __properties file__, i.e. for this part of the exercise the code shown below is taken from the `2pproperties.hh` file. - @@ -399,14 +431,14 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f - -For a cell-centered scheme, you could derive from `CCTpfaModel` or `CCMpfaModel` instead (and, of course, include the right headers). - --One of the two phases should only contain the component water. We want to precompute tables on which the properties are then interpolated in order to save computational time. Since we need this part in both problem file and properties file, we have to include the following two headers in our problem file, i.e. `2pproblem.hh` file, and the properties file has access to them through problem file. +-One of the two phases should only contain the component water. We want to precompute tables on which the properties are then interpolated in order to save computational time. We need the properties of the component water in the properties file and in the problem file. We include the following two headers in our problem file, i.e. `2pproblem.hh` file. By including the problem file in the properties file, it can be accessed through it. - -```c++ -// The water component -#include <dumux/material/components/tabulatedcomponent.hh> -#include <dumux/material/components/h2o.hh> -``` --The other phase that will be created only contains our new component, where we want to implement an incompressible and a compressible variant. +-The other phase that will be created only contains our new component, where we want to implement an incompressible (Section 2.1) and a compressible (Section 2.2) variant. -The respective headers are prepared, but still incomplete. The compressible variant is still commented so that compilation does not fail when finishing the incompressible variant. - -```c++ @@ -428,9 +460,7 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f -#include <dumux/material/fluidsystems/1pliquid.hh> -``` - --which creates a _liquid phase_ from a given component. Finally, using all of the included classes we set the fluid system property by choosing that the water phase is liquid (`OnePLiquid`) and consists of the tabulated water component, and --the other phase is liquid as well and consists of the incompressible fictitious component. Both will make up the immiscible fluid system (`TwoPImmiscible`), consisting of two liquids each consisting of one component: -- +-which creates a _liquid phase_ from a given component. Finally, using all of the included classes, we set the fluid system property. The fluid system consists of two liquids, water (derived from the tabulated water component) and the new incompressible fictitious component. Both components need to be defined as liquid (`OnePLiquid`). The two liquid components are then form an immiscible fluid system (`TwoPImmiscible`). - -```c++ -// we use the immiscible fluid system here @@ -442,8 +472,8 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f - using TabulatedH2O = Components::TabulatedComponent<Components::H2O<Scalar>>; - using LiquidWaterPhase = typename FluidSystems::OnePLiquid<Scalar, TabulatedH2O>; - -- // TODO: dumux-course-task 2.2 -- //****** Select the corresponding component for the task *****// +- // TODO: dumux-course-task 2.2: +- // Select the corresponding component for the task - // Uncomment first line and comment second line for using the compressible component - using LiquidMyComponentPhase = typename FluidSystems::OnePLiquid<Scalar, MyIncompressibleComponent<Scalar> >; - // using LiquidMyComponentPhase = typename FluidSystems::OnePLiquid<Scalar, MyCompressibleComponent<Scalar> >; @@ -453,16 +483,16 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f -}; -``` - --### 2.1. Incompressible component +-### Task 2.1: Incompressible component - --Open the file `myincompressiblecomponent.hh`. A component should always derive from the _Base_ class - thus we include `dumux/material/components/base.hh`-, which defines the interface of a _DuMuX_ component with possibly required functions to be overloaded by the actual implementation. Additionally it is required for liquids to derive from the _Liquid_ class (see `dumux/material/components/liquid.hh`), for gases to derive from the _Gas_ class (see `dumux/material/components/gas.hh`) and for solids to derive from the _Solid_ class (see `dumux/material/components/solid.hh`), with functions specific to liquid, gas or solid. +-Open the file `myincompressiblecomponent.hh`. A component should always derive from the _Base_ class - thus we include `dumux/material/components/base.hh`-, which defines the interface of a _DuMuX_ component with the possibly required functions to be overloaded by the actual implementation. Additionally, it is required that liquids are derived from the _Liquid_ class (see `dumux/material/components/liquid.hh`), gases from the _Gas_ class (see `dumux/material/components/gas.hh`) and solids from the _Solid_ class (see `dumux/material/components/solid.hh`), with functions specific to liquid, gas or solid. - -```c++ -/*! - * \ingroup Components -- * \brief A ficitious component to be implemented in exercise 3. +- * \brief A ficitious component to be implemented in exercise-fluidsystem 2.1. - * -- * \tparam Scalar The type used for scalar values +- * \tparam Scalar The type used for scalar values. - */ -template <class Scalar> -class MyIncompressibleComponent @@ -477,7 +507,7 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f -| Parameter | unit | value | -| -----| --------| -------- | -| $`M`$ | $`kg/mol`$ | $`131.39 \cdot 10^{-3}`$ | --| $`\rho_{liquid}`$ | $`kg/m^3`$ | $`1460`$ | +-| $`\rho_{liquid}`$ | $`kg/m^3`$ | $`1460.0`$ | -| $`\mu_{liquid}`$ | $`Pa \cdot s`$ | $`5.7 \cdot 10^{-4}`$ | - -In order to do so, have a look at the files `dumux/material/components/base.hh` and `dumux/material/components/liquid.hh` to see how the interfaces are defined and overload them accordingly. @@ -490,30 +520,29 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f -./exercise_fluidsystem_a aparams.input -``` - --The saturation distribution of the nonwetting phase S$`_n`$ (the phase consisting of our fictitious incompressible component) at the final simulation time should look like this: +-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: - - - --### 2.2. Compressible component +-### Task 2.2: Compressible component - -We now want to implement a pressure-dependent density for our component. Open the file `mycompressiblecomponent.hh` and copy in the functions you implemented for the incompressible variant. Now substitute the method that returns the density by the following expression: - -$`\displaystyle \rho_{MyComp} = \rho_{min} + \frac{ \rho_{max} - \rho_{min} }{ 1 + \rho_{min}*e^{-1.0*k*(\rho_{max} - \rho_{min})*p} } `$ - --where $`p`$ is the pressure and $`\rho_{min} = 1440 `$, $`\rho_{max} = 1480 `$ 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 (rhoN) at the final simulation time should look like this: +-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"> - --### 3. Implement a new fluid system +-## Task 3: Implement a new fluid system - Part b - -The problem file and properties file for this part of the exercise are `2p2cproblem.hh` and `2p2cproperties.hh`, respectively. --We now want to implement a new fluid system, which still consists of two liquid phases. However, one phase consists mainly of water and the other consists mainly of the previously implemented compressible component. We will now consider compositional effects, which is why we have to derive our _TypeTag_ (`ExerciseFluidsystemTwoPTwoC`) from a _TypeTag_ (`TwoPTwoC`) that holds the miscible two-phase -- two-component model properties: +-We now want to implement a new fluid system, which still consists of two liquid phases. However, one phase consists mainly of water and the other consists mainly of the previously implemented compressible component. We will now consider compositional effects, which is why we have to derive our _TypeTag_ (`ExerciseFluidsystemTwoPTwoC`) from a _TypeTag_ (`TwoPTwoC`) that holds the miscible two-phase two-component model properties: - -```c++ -// The numerical model @@ -521,7 +550,7 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f -``` - -```c++ --// Create a new type tag for the problem +-// Create new type tags -namespace TTag { -struct ExerciseFluidsystemTwoPTwoC { using InheritsFrom = std::tuple<TwoPTwoC, BoxModel>; }; -} // end namespace TTag @@ -549,10 +578,10 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f -In the `fluidsystems/h2omycompressiblecomponent.hh` file, your implemented compressible component and the binary coefficient files are already included. - -```c++ --// the ficitious component that was created in exercise-fluidsystem a +-// The ficitious component that was created in exercise-fluidsystem 2.2 -#include <exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh> - --// the binary coefficients corresponding to this fluid system +-// The binary coefficients corresponding to this fluid system -#include <exercises/exercise-fluidsystem/binarycoefficients/h2omycompressiblecomponent.hh> -``` - @@ -570,9 +599,9 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f -./exercise_fluidsystem_b bparams.input -``` - --You will observe an error message and an abortion of the program. This is due to the fact that in order for the constraint solver and other mechanisms in the two-phase two-component model to work, an additional functionality in the component has to be implemented: the model has to know the vapour pressure. As in the previous exercise, check the `dumux/material/components/base.hh` file for this function and implement it into `mycompressiblecomponent.hh`. For the vapour pressure, use a value of $`3900`$ Pa. +-You will observe an error message and an abortion of the program. This is due to the fact that in order for the constraint solver and other mechanisms in the two-phase two-component model to work, an additional functionality in the component has to be implemented: the model has to know the vapour pressure. As in the previous exercise, check the `dumux/material/components/base.hh` file for this function and implement it into `mycompressiblecomponent.hh`. For the vapour pressure, use a value of $`3900.0 \, Pa`$. - --### 4. Change wettability of the porous medium +-## Task 4: Change wettability of the porous medium - Part b - -In the `spatialparams.hh` file, we can find the following function, with which we can specify which phase of the fluid system is to be considered as the wetting phase at a given position within the domain: - @@ -586,9 +615,13 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f -template<class FluidSystem> -int wettingPhaseAtPos(const GlobalPosition& globalPos) const -{ -- // Our fluid system is H2OMyCompressibleComponent +- // Our fluid system is H2OMyCompressibleComponent. - // We want to define water as the wetting phase in -- // the entire domain (see fluid system for the phase indices) +- // the entire domain (see fluid system for the phase indices). +- +- // TODO: dumux-course-task 4: +- // Adapt the following line so that the phase of our new component is +- // the wetting phase, only within the lenses. - return FluidSystem::phase0Idx; -} -``` @@ -601,21 +634,37 @@ diff -ruN exercises/exercise-fluidsystem/README.md exercises/solution/exercise-f -./exercise_fluidsystem_b exercise_fluidsystem_b.input -``` diff -ruN exercises/exercise-fluidsystem/spatialparams.hh exercises/solution/exercise-fluidsystem/spatialparams.hh ---- exercises/exercise-fluidsystem/spatialparams.hh 2024-07-17 11:27:28.874349112 +0200 -+++ exercises/solution/exercise-fluidsystem/spatialparams.hh 2024-07-17 11:27:28.882349286 +0200 -@@ -117,9 +117,12 @@ +--- exercises/exercise-fluidsystem/spatialparams.hh 2024-07-17 14:37:31.333957691 +0200 ++++ exercises/solution/exercise-fluidsystem/spatialparams.hh 2024-07-17 14:37:31.333957691 +0200 +@@ -113,13 +113,17 @@ + template<class FluidSystem> + int wettingPhaseAtPos(const GlobalPosition& globalPos) const + { +- // Our fluid system is H2OMyCompressibleComponent. ++ // Our fluid system is H2OMyCompressibleComponent. // We want to define water as the wetting phase in - // the entire domain (see fluid system for the phase indices) - -- // TODO: dumux-course-task 4 -- // Adapt the following line so that the phase of our new component is -- // the wetting phase, only within the lenses. -+ // For the last task (change of wettability), uncomment -+ // the two commented lines below +- // the entire domain (see fluid system for the phase indices). ++ // the entire domain (see fluidsystem for the phase indices). ++ ++ // TODO: dumux-course-task 4: ++ // For task 4 (change of wettability), uncomment ++ // the two commented lines below: + + //if (isInLens(globalPos)) + // return FluidSystem::phase1Idx; -+ + +- // TODO: dumux-course-task 4: +- // Adapt the following line so that the phase of our new component is +- // the wetting phase, only within the lenses. return FluidSystem::phase0Idx; } +@@ -147,7 +151,7 @@ + Dune::FieldMatrix<Scalar, dim, dim> K_; + Dune::FieldMatrix<Scalar, dim, dim> KLens_; + +- // Object that holds the values/parameters of the selected fluid matrix interaction relationship. ++ // Object that holds the values/parameters of the selected fluid-matrix interaction relationship. + const PcKrSwCurve pcKrSwCurve_; + const PcKrSwCurve lensPcKrSwCurve_; + }; diff --git a/.patches/exercise-fractures/exercise-fractures.patch b/.patches/exercise-fractures/exercise-fractures.patch index 2fab87df..c2e2d32c 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 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-fractures/CMakeLists.txt 2024-07-17 14:02:52.096041149 +0200 @@ -1,9 +1,26 @@ # SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-License-Identifier: GPL-3.0-or-later @@ -32,7 +32,7 @@ diff -ruN exercises/exercise-fractures/CMakeLists.txt exercises/solution/exercis add_input_file_links() diff -ruN exercises/exercise-fractures/exercise_fractures_solution_a.input exercises/solution/exercise-fractures/exercise_fractures_solution_a.input --- exercises/exercise-fractures/exercise_fractures_solution_a.input 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-fractures/exercise_fractures_solution_a.input 2020-11-12 12:07:04.129814352 +0100 ++++ exercises/solution/exercise-fractures/exercise_fractures_solution_a.input 2024-06-26 11:12:30.529881015 +0200 @@ -0,0 +1,41 @@ +[TimeLoop] +TEnd = 30000 # [s] @@ -77,7 +77,7 @@ diff -ruN exercises/exercise-fractures/exercise_fractures_solution_a.input exerc +SpatialParams.Barrier.Swr = 0.0 diff -ruN exercises/exercise-fractures/exercise_fractures_solution_b.input exercises/solution/exercise-fractures/exercise_fractures_solution_b.input --- exercises/exercise-fractures/exercise_fractures_solution_b.input 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-fractures/exercise_fractures_solution_b.input 2020-11-12 12:07:04.129814352 +0100 ++++ exercises/solution/exercise-fractures/exercise_fractures_solution_b.input 2024-06-26 11:12:30.529881015 +0200 @@ -0,0 +1,41 @@ +[TimeLoop] +TEnd = 30000 # [s] @@ -122,7 +122,7 @@ diff -ruN exercises/exercise-fractures/exercise_fractures_solution_b.input exerc +SpatialParams.Barrier.Swr = 0.0 diff -ruN exercises/exercise-fractures/exercise_fractures_solution_c.input exercises/solution/exercise-fractures/exercise_fractures_solution_c.input --- exercises/exercise-fractures/exercise_fractures_solution_c.input 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-fractures/exercise_fractures_solution_c.input 2020-11-12 12:07:04.129814352 +0100 ++++ exercises/solution/exercise-fractures/exercise_fractures_solution_c.input 2024-06-26 11:12:30.529881015 +0200 @@ -0,0 +1,41 @@ +[TimeLoop] +TEnd = 30000 # [s] @@ -166,8 +166,8 @@ diff -ruN exercises/exercise-fractures/exercise_fractures_solution_c.input exerc +SpatialParams.Barrier.Snr = 0.0 +SpatialParams.Barrier.Swr = 0.0 diff -ruN exercises/exercise-fractures/fractureproblem.hh exercises/solution/exercise-fractures/fractureproblem.hh ---- exercises/exercise-fractures/fractureproblem.hh 2024-07-17 11:27:28.874349112 +0200 -+++ exercises/solution/exercise-fractures/fractureproblem.hh 2024-07-17 11:27:28.882349286 +0200 +--- exercises/exercise-fractures/fractureproblem.hh 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-fractures/fractureproblem.hh 2024-07-17 14:02:52.096041149 +0200 @@ -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 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-fractures/fracturespatialparams.hh 2024-07-17 14:02:52.096041149 +0200 @@ -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 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-fractures/main.cc 2024-07-17 14:02:52.096041149 +0200 @@ -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 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-fractures/matrixproblem.hh 2024-07-17 14:02:52.096041149 +0200 @@ -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 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-fractures/matrixspatialparams.hh 2024-07-17 14:02:52.096041149 +0200 @@ -40,6 +40,7 @@ using Element = typename GridView::template Codim<0>::Entity; using GlobalPosition = typename Element::Geometry::GlobalCoordinate; @@ -467,8 +467,8 @@ diff -ruN exercises/exercise-fractures/matrixspatialparams.hh exercises/solution public: diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise-fractures/params.input ---- exercises/exercise-fractures/params.input 2023-10-13 18:08:54.714521020 +0200 -+++ exercises/solution/exercise-fractures/params.input 2020-05-08 12:16:18.919855703 +0200 +--- exercises/exercise-fractures/params.input 2024-06-26 11:12:30.501880032 +0200 ++++ exercises/solution/exercise-fractures/params.input 2024-06-26 11:12:30.529881015 +0200 @@ -5,6 +5,9 @@ [Problem] @@ -510,8 +510,8 @@ diff -ruN exercises/exercise-fractures/params.input exercises/solution/exercise- +SpatialParams.Swr = 0.0 +SpatialParams.SwrBarrier = 0.0 diff -ruN exercises/exercise-fractures/properties.hh exercises/solution/exercise-fractures/properties.hh ---- exercises/exercise-fractures/properties.hh 2024-07-17 11:27:28.874349112 +0200 -+++ exercises/solution/exercise-fractures/properties.hh 2024-07-17 11:27:28.886349373 +0200 +--- exercises/exercise-fractures/properties.hh 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-fractures/properties.hh 2024-07-17 14:02:52.096041149 +0200 @@ -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 2024-06-26 11:12:30.501880032 +0200 +++ exercises/solution/exercise-fractures/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,216 +0,0 @@ -# Exercise Discrete Fractures (DuMuX Course) diff --git a/.patches/exercise-grids/exercise-grids.patch b/.patches/exercise-grids/exercise-grids.patch index 18a57aa5..255f321c 100644 --- a/.patches/exercise-grids/exercise-grids.patch +++ b/.patches/exercise-grids/exercise-grids.patch @@ -1,6 +1,6 @@ diff -ruN exercises/exercise-grids/CMakeLists.txt exercises/solution/exercise-grids/CMakeLists.txt ---- exercises/exercise-grids/CMakeLists.txt 2024-07-17 13:58:18.212850366 +0200 -+++ exercises/solution/exercise-grids/CMakeLists.txt 2024-07-17 13:58:18.220850484 +0200 +--- exercises/exercise-grids/CMakeLists.txt 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-grids/CMakeLists.txt 2024-07-17 14:02:52.096041149 +0200 @@ -2,7 +2,7 @@ # SPDX-License-Identifier: GPL-3.0-or-later @@ -11,7 +11,7 @@ diff -ruN exercises/exercise-grids/CMakeLists.txt exercises/solution/exercise-gr # add a symlink for each input file diff -ruN exercises/exercise-grids/grids/grid_structured.dgf exercises/solution/exercise-grids/grids/grid_structured.dgf ---- exercises/exercise-grids/grids/grid_structured.dgf 2023-10-13 18:08:54.718521039 +0200 +--- exercises/exercise-grids/grids/grid_structured.dgf 2024-06-26 11:12:30.501880032 +0200 +++ exercises/solution/exercise-grids/grids/grid_structured.dgf 1970-01-01 01:00:00.000000000 +0100 @@ -1,6 +0,0 @@ -DGF @@ -21,7 +21,7 @@ diff -ruN exercises/exercise-grids/grids/grid_structured.dgf exercises/solution/ -30 20 % cells in x and y direction -# diff -ruN exercises/exercise-grids/grids/grid_structured.geo exercises/solution/exercise-grids/grids/grid_structured.geo ---- exercises/exercise-grids/grids/grid_structured.geo 2023-10-13 18:08:54.718521039 +0200 +--- exercises/exercise-grids/grids/grid_structured.geo 2024-06-26 11:12:30.501880032 +0200 +++ exercises/solution/exercise-grids/grids/grid_structured.geo 1970-01-01 01:00:00.000000000 +0100 @@ -1,30 +0,0 @@ -X = 60; @@ -55,8 +55,8 @@ diff -ruN exercises/exercise-grids/grids/grid_structured.geo exercises/solution/ -Transfinite Volume "*"; - diff -ruN exercises/exercise-grids/main.cc exercises/solution/exercise-grids/main.cc ---- exercises/exercise-grids/main.cc 2024-07-17 13:58:18.212850366 +0200 -+++ exercises/solution/exercise-grids/main.cc 2024-07-17 13:58:18.220850484 +0200 +--- exercises/exercise-grids/main.cc 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-grids/main.cc 2024-07-17 14:02:52.096041149 +0200 @@ -6,7 +6,7 @@ // /*! @@ -67,8 +67,8 @@ diff -ruN exercises/exercise-grids/main.cc exercises/solution/exercise-grids/mai #include <config.h> diff -ruN exercises/exercise-grids/params.input exercises/solution/exercise-grids/params.input ---- exercises/exercise-grids/params.input 2024-07-17 14:09:52.163005898 +0200 -+++ exercises/solution/exercise-grids/params.input 2024-07-17 14:10:01.563142989 +0200 +--- exercises/exercise-grids/params.input 2024-07-17 14:37:31.113952826 +0200 ++++ exercises/solution/exercise-grids/params.input 2024-06-26 11:12:30.529881015 +0200 @@ -3,13 +3,34 @@ TEnd = 3.154e9 # in seconds, i.e ten years @@ -110,8 +110,8 @@ diff -ruN exercises/exercise-grids/params.input exercises/solution/exercise-grid [Problem] Name = grid_exercise diff -ruN exercises/exercise-grids/properties.hh exercises/solution/exercise-grids/properties.hh ---- exercises/exercise-grids/properties.hh 2024-07-17 13:58:18.212850366 +0200 -+++ exercises/solution/exercise-grids/properties.hh 2024-07-17 13:58:18.220850484 +0200 +--- exercises/exercise-grids/properties.hh 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-grids/properties.hh 2024-07-17 14:02:52.096041149 +0200 @@ -5,9 +5,9 @@ // SPDX-License-Identifier: GPL-3.0-or-later // @@ -163,7 +163,7 @@ diff -ruN exercises/exercise-grids/properties.hh exercises/solution/exercise-gri // Set the problem property template<class TypeTag> diff -ruN exercises/exercise-grids/README.md exercises/solution/exercise-grids/README.md ---- exercises/exercise-grids/README.md 2024-07-17 10:58:43.901583076 +0200 +--- exercises/exercise-grids/README.md 2024-07-17 14:02:52.092041122 +0200 +++ exercises/solution/exercise-grids/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,159 +0,0 @@ -# Exercise Grids (DuMuX course) diff --git a/.patches/exercise-mainfile/exercise-mainfile.patch b/.patches/exercise-mainfile/exercise-mainfile.patch index 4ef11fa0..1a3a3a6b 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 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-mainfile/CMakeLists.txt 2024-07-17 14:02:52.096041149 +0200 @@ -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 2024-07-17 14:02:52.092041122 +0200 +++ 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 2024-07-17 14:02:52.096041149 +0200 @@ -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 2024-07-17 14:02:52.092041122 +0200 +++ 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 2024-07-17 14:02:52.092041122 +0200 +++ exercises/solution/exercise-mainfile/exercise1pcmain.cc 1970-01-01 01:00:00.000000000 +0100 @@ -1,146 +0,0 @@ -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- @@ -564,7 +564,7 @@ diff -ruN exercises/exercise-mainfile/exercise1pcmain.cc exercises/solution/exer - -}// end main diff -ruN exercises/exercise-mainfile/exercise_mainfile_a.input exercises/solution/exercise-mainfile/exercise_mainfile_a.input ---- exercises/exercise-mainfile/exercise_mainfile_a.input 2023-10-13 18:08:54.718521039 +0200 +--- exercises/exercise-mainfile/exercise_mainfile_a.input 2024-06-26 11:12:30.505880174 +0200 +++ exercises/solution/exercise-mainfile/exercise_mainfile_a.input 1970-01-01 01:00:00.000000000 +0100 @@ -1,18 +0,0 @@ -[Grid] @@ -587,7 +587,7 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_a.input exercises/soluti -BaseEpsilon = 1e-10 diff -ruN exercises/exercise-mainfile/exercise_mainfile_a_solution.input exercises/solution/exercise-mainfile/exercise_mainfile_a_solution.input --- exercises/exercise-mainfile/exercise_mainfile_a_solution.input 1970-01-01 01:00:00.000000000 +0100 -+++ exercises/solution/exercise-mainfile/exercise_mainfile_a_solution.input 2024-07-17 14:08:11.237533494 +0200 ++++ exercises/solution/exercise-mainfile/exercise_mainfile_a_solution.input 2024-07-17 14:37:31.113952826 +0200 @@ -0,0 +1,18 @@ +[Grid] +LowerLeft = 0 0 @@ -608,7 +608,7 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_a_solution.input exercis +PriVarMagnitude = 1e5 +BaseEpsilon = 1e-10 diff -ruN exercises/exercise-mainfile/exercise_mainfile_b.input exercises/solution/exercise-mainfile/exercise_mainfile_b.input ---- exercises/exercise-mainfile/exercise_mainfile_b.input 2023-10-13 18:08:54.718521039 +0200 +--- exercises/exercise-mainfile/exercise_mainfile_b.input 2024-06-26 11:12:30.505880174 +0200 +++ exercises/solution/exercise-mainfile/exercise_mainfile_b.input 1970-01-01 01:00:00.000000000 +0100 @@ -1,17 +0,0 @@ -[Grid] @@ -629,7 +629,7 @@ diff -ruN exercises/exercise-mainfile/exercise_mainfile_b.input exercises/soluti -[Assembly.NumericDifference] -PriVarMagnitude = 1e5 diff -ruN exercises/exercise-mainfile/exercise_mainfile_c.input exercises/solution/exercise-mainfile/exercise_mainfile_c.input ---- exercises/exercise-mainfile/exercise_mainfile_c.input 2024-07-17 14:08:27.885776444 +0200 +--- exercises/exercise-mainfile/exercise_mainfile_c.input 2024-07-17 14:37:31.113952826 +0200 +++ 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 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-mainfile/properties.hh 2024-07-17 14:02:52.096041149 +0200 @@ -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 2024-07-17 14:02:52.092041122 +0200 +++ exercises/solution/exercise-mainfile/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,196 +0,0 @@ -# Exercise Mainfiles (DuMuX course) diff --git a/.patches/exercise-model/exercise-model.patch b/.patches/exercise-model/exercise-model.patch index a7c60cd7..aa74587f 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 11:27:28.798347462 +0200 -+++ exercises/solution/exercise-model/CMakeLists.txt 2024-07-17 11:27:28.802347549 +0200 +--- exercises/exercise-model/CMakeLists.txt 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-model/CMakeLists.txt 2024-07-17 14:02:52.096041149 +0200 @@ -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 11:27:28.878349199 +0200 -+++ exercises/solution/exercise-model/main.cc 2024-07-17 11:27:28.886349373 +0200 +--- exercises/exercise-model/main.cc 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-model/main.cc 2024-07-17 14:02:52.096041149 +0200 @@ -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-17 11:27:28.886349373 +0200 ++++ exercises/solution/exercise-model/model.hh 2024-07-17 14:02:52.096041149 +0200 @@ -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-16 16:28:05.559708538 +0200 +--- exercises/exercise-model/README.md 2024-07-16 15:45:21.113991695 +0200 +++ exercises/solution/exercise-model/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,195 +0,0 @@ -# Exercise Model (DuMuX course) diff --git a/.patches/exercise-properties/exercise-properties.patch b/.patches/exercise-properties/exercise-properties.patch index d181a525..51b23841 100644 --- a/.patches/exercise-properties/exercise-properties.patch +++ b/.patches/exercise-properties/exercise-properties.patch @@ -1,6 +1,6 @@ diff -ruN exercises/exercise-properties/CMakeLists.txt exercises/solution/exercise-properties/CMakeLists.txt ---- exercises/exercise-properties/CMakeLists.txt 2024-07-17 11:27:28.798347462 +0200 -+++ exercises/solution/exercise-properties/CMakeLists.txt 2024-07-17 11:27:28.802347549 +0200 +--- exercises/exercise-properties/CMakeLists.txt 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-properties/CMakeLists.txt 2024-07-17 14:02:52.096041149 +0200 @@ -1,8 +1,8 @@ # SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder # SPDX-License-Identifier: GPL-3.0-or-later @@ -13,8 +13,8 @@ diff -ruN exercises/exercise-properties/CMakeLists.txt exercises/solution/exerci # add a symlink for each input file diff -ruN exercises/exercise-properties/mylocalresidual.hh exercises/solution/exercise-properties/mylocalresidual.hh ---- exercises/exercise-properties/mylocalresidual.hh 2024-07-17 11:27:28.878349199 +0200 -+++ exercises/solution/exercise-properties/mylocalresidual.hh 2024-07-17 11:27:28.886349373 +0200 +--- exercises/exercise-properties/mylocalresidual.hh 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-properties/mylocalresidual.hh 2024-07-17 14:02:52.096041149 +0200 @@ -59,8 +59,6 @@ * \note The volVars can be different to allow computing * the implicit euler time derivative here @@ -51,8 +51,8 @@ diff -ruN exercises/exercise-properties/mylocalresidual.hh exercises/solution/ex auto eqIdx = conti0EqIdx + phaseIdx; flux[eqIdx] = fluxVars.advectiveFlux(phaseIdx, upwindTerm); diff -ruN exercises/exercise-properties/problem.hh exercises/solution/exercise-properties/problem.hh ---- exercises/exercise-properties/problem.hh 2024-07-17 11:27:28.878349199 +0200 -+++ exercises/solution/exercise-properties/problem.hh 2024-07-17 11:27:28.886349373 +0200 +--- exercises/exercise-properties/problem.hh 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-properties/problem.hh 2024-07-17 14:02:52.096041149 +0200 @@ -11,6 +11,7 @@ #ifndef DUMUX_INCOMPRESSIBLE_TWOP_TEST_PROBLEM_HH #define DUMUX_INCOMPRESSIBLE_TWOP_TEST_PROBLEM_HH @@ -77,8 +77,8 @@ diff -ruN exercises/exercise-properties/problem.hh exercises/solution/exercise-p return values; } diff -ruN exercises/exercise-properties/properties.hh exercises/solution/exercise-properties/properties.hh ---- exercises/exercise-properties/properties.hh 2024-07-17 11:27:28.878349199 +0200 -+++ exercises/solution/exercise-properties/properties.hh 2024-07-17 11:27:28.886349373 +0200 +--- exercises/exercise-properties/properties.hh 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-properties/properties.hh 2024-07-17 14:02:52.096041149 +0200 @@ -27,9 +27,7 @@ #include "spatialparams.hh" @@ -103,7 +103,7 @@ diff -ruN exercises/exercise-properties/properties.hh exercises/solution/exercis // Set the fluid system template<class TypeTag> diff -ruN exercises/exercise-properties/README.md exercises/solution/exercise-properties/README.md ---- exercises/exercise-properties/README.md 2023-10-13 18:08:54.718521039 +0200 +--- exercises/exercise-properties/README.md 2024-06-26 11:12:30.505880174 +0200 +++ exercises/solution/exercise-properties/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,75 +0,0 @@ -# Exercise Properties (DuMuX course) diff --git a/.patches/exercise-runtimeparams/exercise-runtimeparams.patch b/.patches/exercise-runtimeparams/exercise-runtimeparams.patch index 4de557eb..e9ba4159 100644 --- a/.patches/exercise-runtimeparams/exercise-runtimeparams.patch +++ b/.patches/exercise-runtimeparams/exercise-runtimeparams.patch @@ -1,6 +1,6 @@ diff -ruN exercises/exercise-runtimeparams/CMakeLists.txt exercises/solution/exercise-runtimeparams/CMakeLists.txt ---- exercises/exercise-runtimeparams/CMakeLists.txt 2024-07-17 13:58:18.212850366 +0200 -+++ exercises/solution/exercise-runtimeparams/CMakeLists.txt 2024-07-17 13:58:18.220850484 +0200 +--- exercises/exercise-runtimeparams/CMakeLists.txt 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-runtimeparams/CMakeLists.txt 2024-07-17 14:02:52.096041149 +0200 @@ -2,7 +2,7 @@ # SPDX-License-Identifier: GPL-3.0-or-later @@ -11,8 +11,8 @@ diff -ruN exercises/exercise-runtimeparams/CMakeLists.txt exercises/solution/exe # add a symlink for each input file diff -ruN exercises/exercise-runtimeparams/params.input exercises/solution/exercise-runtimeparams/params.input ---- exercises/exercise-runtimeparams/params.input 2024-07-17 14:07:04.624561096 +0200 -+++ exercises/solution/exercise-runtimeparams/params.input 2024-07-17 14:06:46.236292578 +0200 +--- exercises/exercise-runtimeparams/params.input 2024-06-26 11:12:30.505880174 +0200 ++++ exercises/solution/exercise-runtimeparams/params.input 2024-07-17 14:37:31.117952914 +0200 @@ -12,11 +12,12 @@ AquiferDepth = 2700.0 # m InjectionDuration = 2.628e6 # in seconds, i.e. one month @@ -28,8 +28,8 @@ diff -ruN exercises/exercise-runtimeparams/params.input exercises/solution/exerc Aquitard.Swr = 0.2 Aquitard.Snr = 0.0 diff -ruN exercises/exercise-runtimeparams/problem.hh exercises/solution/exercise-runtimeparams/problem.hh ---- exercises/exercise-runtimeparams/problem.hh 2024-07-17 13:58:18.212850366 +0200 -+++ exercises/solution/exercise-runtimeparams/problem.hh 2024-07-17 13:58:18.220850484 +0200 +--- exercises/exercise-runtimeparams/problem.hh 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-runtimeparams/problem.hh 2024-07-17 14:02:52.096041149 +0200 @@ -81,12 +81,16 @@ injectionDuration_ = getParamFromGroup<Scalar>("Problem","InjectionDuration"); // TODO: dumux-course-task 2 @@ -67,8 +67,8 @@ diff -ruN exercises/exercise-runtimeparams/problem.hh exercises/solution/exercis }; diff -ruN exercises/exercise-runtimeparams/properties.hh exercises/solution/exercise-runtimeparams/properties.hh ---- exercises/exercise-runtimeparams/properties.hh 2024-07-17 13:58:18.212850366 +0200 -+++ exercises/solution/exercise-runtimeparams/properties.hh 2024-07-17 13:58:18.220850484 +0200 +--- exercises/exercise-runtimeparams/properties.hh 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-runtimeparams/properties.hh 2024-07-17 14:02:52.096041149 +0200 @@ -58,6 +58,6 @@ FluidSystems::H2ON2DefaultPolicy</*fastButSimplifiedRelations=*/ true> >; }; @@ -78,7 +78,7 @@ diff -ruN exercises/exercise-runtimeparams/properties.hh exercises/solution/exer #endif diff -ruN exercises/exercise-runtimeparams/README.md exercises/solution/exercise-runtimeparams/README.md ---- exercises/exercise-runtimeparams/README.md 2024-07-17 10:58:43.901583076 +0200 +--- exercises/exercise-runtimeparams/README.md 2024-07-17 14:02:52.092041122 +0200 +++ exercises/solution/exercise-runtimeparams/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,171 +0,0 @@ -# Exercise Runtime Parameters (DuMuX course) @@ -253,8 +253,8 @@ diff -ruN exercises/exercise-runtimeparams/README.md exercises/solution/exercise - -* > __Task 4__: Using one of the bool `hasParam` functions, place an output in the problem file to alert the user where the parameter value comes from. diff -ruN exercises/exercise-runtimeparams/spatialparams.hh exercises/solution/exercise-runtimeparams/spatialparams.hh ---- exercises/exercise-runtimeparams/spatialparams.hh 2024-07-17 13:58:18.212850366 +0200 -+++ exercises/solution/exercise-runtimeparams/spatialparams.hh 2024-07-17 13:58:18.220850484 +0200 +--- exercises/exercise-runtimeparams/spatialparams.hh 2024-07-17 14:02:52.092041122 +0200 ++++ exercises/solution/exercise-runtimeparams/spatialparams.hh 2024-07-17 14:02:52.096041149 +0200 @@ -12,8 +12,8 @@ * fully implicit model. */ diff --git a/exercises/exercise-basic/injection2p2cproblem.hh b/exercises/exercise-basic/injection2p2cproblem.hh new file mode 100644 index 00000000..06fa35d8 --- /dev/null +++ b/exercises/exercise-basic/injection2p2cproblem.hh @@ -0,0 +1,229 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: +/***************************************************************************** + * See the file COPYING for full copying permissions. * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see <http://www.gnu.org/licenses/>. * + *****************************************************************************/ +/*! + * \file + * + * \brief The two-phase porousmediumflow problem for exercise-basic + */ + +#ifndef DUMUX_EX_BASIC_PROBLEM_2P2C_HH +#define DUMUX_EX_BASIC_PROBLEM_2P2C_HH + +#include <dumux/common/properties.hh> +#include <dumux/common/boundarytypes.hh> +#include <dumux/common/numeqvector.hh> +#include <dumux/porousmediumflow/problem.hh> +#include <dumux/material/binarycoefficients/h2o_n2.hh> + +namespace Dumux { + +/*! + * \ingroup TwoPTwoCModel + * \ingroup ImplicitTestProblems + * \brief Gas injection problem where a gas (here nitrogen) is injected into a fully + * water saturated medium. During buoyancy-driven upward migration the gas + * passes a high temperature area. + * + * The domain is sized 60 m times 40 m. + * + * For the mass conservation equation Neumann boundary conditions are used on + * the top, on the bottom and on the right of the domain, while Dirichlet conditions + * apply on the left boundary. + * + * Gas is injected at the right boundary from 7 m to 15 m at a rate of + * 0.001 kg/(s m), the remaining Neumann boundaries are no-flow + * boundaries. + * + * At the Dirichlet boundaries a hydrostatic pressure and a gas saturation of zero a + * + * This problem uses the \ref TwoPModel model. + */ +template<class TypeTag> +class Injection2p2cProblem : public PorousMediumFlowProblem<TypeTag> +{ + using ParentType = PorousMediumFlowProblem<TypeTag>; + using Scalar = GetPropType<TypeTag, Properties::Scalar>; + using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices; + using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>; + using BoundaryTypes = Dumux::BoundaryTypes<GetPropType<TypeTag, Properties::ModelTraits>::numEq()>; + using GridGeometry = GetPropType<TypeTag, Properties::GridGeometry>; + using FVElementGeometry = typename GridGeometry::LocalView; + using GridView = typename GridGeometry::GridView; + using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>; + using NumEqVector = Dumux::NumEqVector<PrimaryVariables>; + + static constexpr int dimWorld = GridView::dimensionworld; + using Element = typename GridView::template Codim<0>::Entity; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + +public: + Injection2p2cProblem(std::shared_ptr<const GridGeometry> gridGeometry) + : ParentType(gridGeometry) + { + // Initialize the tables of the fluid system + FluidSystem::init(/*tempMin=*/273.15, + /*tempMax=*/423.15, + /*numTemp=*/50, + /*pMin=*/0.0, + /*pMax=*/30e6, + /*numP=*/300); + + // Name of the problem and output file + // getParam<TYPE>("GROUPNAME.PARAMNAME") reads and sets parameter PARAMNAME + // of type TYPE given in the group GROUPNAME from the input file + name_ = getParam<std::string>("Problem.Name"); + // Depth of the aquifer, unit: m + aquiferDepth_ = getParam<Scalar>("Problem.AquiferDepth"); + // The duration of the injection, unit: seconds + injectionDuration_ = getParam<Scalar>("Problem.InjectionDuration"); + } + + /*! + * \brief Returns the problem name + * + * This is used as a prefix for files generated by the simulation. + */ + std::string name() const + { return name_+"-2p2c"; } + + /*! + * \brief Specifies which kind of boundary condition should be + * used for which equation on a given boundary segment. + * + * \param globalPos The position for which the bc type should be evaluated + */ + BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const + { + BoundaryTypes bcTypes; + if (globalPos[0] < eps_) + bcTypes.setAllDirichlet(); + else + bcTypes.setAllNeumann(); + + return bcTypes; + } + + /*! + * \brief Evaluates the boundary conditions for a Dirichlet + * boundary segment + * + * \param globalPos The global position + */ + PrimaryVariables dirichletAtPos(const GlobalPosition &globalPos) const + { + return initialAtPos(globalPos); + } + + /*! + * \brief Evaluate the boundary conditions for a Neumann + * boundary segment. + * + * \param globalPos The position of the integration point of the boundary segment. + */ + NumEqVector neumannAtPos(const GlobalPosition &globalPos) const + { + // Initialize values to zero, i.e. no-flow Neumann boundary conditions + NumEqVector values(0.0); + + // If we are inside the injection zone set inflow Neumann boundary conditions + if (injectionActive() && onInjectionBoundary(globalPos)) + { + // TODO: dumux-course-task + // Instead of setting -1e-4 here directly use totalAreaSpecificInflow_ in the computation. + + // Inject nitrogen. negative values mean injection. + // Convert units from kg/(s*m^2) to mole/(s*m^2) + values[Indices::conti0EqIdx + FluidSystem::N2Idx] = -1e-4/FluidSystem::molarMass(FluidSystem::N2Idx); + values[Indices::conti0EqIdx + FluidSystem::H2OIdx] = 0.0; + } + + return values; + } + + /*! + * \brief Evaluate the source term for all phases within a given + * sub-control-volume. + * + * \param globalPos The position for which the source term should be evaluated + */ + NumEqVector sourceAtPos(const GlobalPosition &globalPos) const + { + return NumEqVector(0.0); + } + + /*! + * \brief Evaluate the initial value for a control volume. + * + * \param globalPos The position for which the initial condition should be evaluated. + */ + PrimaryVariables initialAtPos(const GlobalPosition &globalPos) const + { + PrimaryVariables values(0.0); + values.setState(Indices::firstPhaseOnly); + // Get the water density at atmospheric conditions + const Scalar densityW = FluidSystem::H2O::liquidDensity(this->spatialParams().temperatureAtPos(globalPos), 1.0e5); + + // Assume an initially hydrostatic liquid pressure profile + // Note: we subtract rho_w*g*h because g is defined negative + const Scalar pw = 1.0e5 - densityW*this->spatialParams().gravity(globalPos)[dimWorld-1]*(aquiferDepth_ - globalPos[dimWorld-1]); + + // Initially we have some nitrogen dissolved + // Saturation mole fraction would be: + // moleFracLiquidN2 = (pw + pc + p_vap^sat)/henry; + const Scalar moleFracLiquidN2 = pw*0.95/BinaryCoeff::H2O_N2::henry(this->spatialParams().temperatureAtPos(globalPos)); + + // Note that because we start with a single phase system the primary variables + // are pl and x^w_N2. This will switch as soon after we start injecting to a two + // phase system so the primary variables will be pl and Sn (nonwetting saturation). + values[Indices::pressureIdx] = pw; + values[Indices::switchIdx] = moleFracLiquidN2; + + return values; + } + + //! Set the time for the time dependent boundary conditions (called from main) + void setTime(Scalar time) + { time_ = time; } + + //! Return true if the injection is currently active + bool injectionActive() const + { return time_ < injectionDuration_; } + + //! Return true if the given position is in the injection boundary region + bool onInjectionBoundary(const GlobalPosition& globalPos) const + { + return globalPos[1] < 15. + eps_ + && globalPos[1] > 7. - eps_ + && globalPos[0] > this->gridGeometry().bBoxMax()[0] - eps_; + } + +private: + static constexpr Scalar eps_ = 1e-6; + std::string name_; //! Problem name + Scalar aquiferDepth_; //! Depth of the aquifer in m + Scalar injectionDuration_; //! Duration of the injection in seconds + Scalar time_; + //TODO: dumux-course-task + //Define the Scalar totalAreaSpecificInflow_ here + +}; + +} //end namespace Dumux + +#endif diff --git a/exercises/exercise-basic/injection2pniproblem.hh b/exercises/exercise-basic/injection2pniproblem.hh index e2b277e7..4206d730 100644 --- a/exercises/exercise-basic/injection2pniproblem.hh +++ b/exercises/exercise-basic/injection2pniproblem.hh @@ -71,13 +71,13 @@ public: /*pMax=*/30e6, /*numP=*/300); - // name of the problem and output file + // Name of the problem and output file // getParam<TYPE>("GROUPNAME.PARAMNAME") reads and sets parameter PARAMNAME // of type TYPE given in the group GROUPNAME from the input file name_ = getParam<std::string>("Problem.Name"); - // depth of the aquifer, unit: m + // Depth of the aquifer, unit: m aquiferDepth_ = getParam<Scalar>("Problem.AquiferDepth"); - // the duration of the injection, unit: seconds + // The duration of the injection, unit: seconds injectionDuration_ = getParam<Scalar>("Problem.InjectionDuration"); } @@ -138,21 +138,21 @@ public: */ NumEqVector neumannAtPos(const GlobalPosition &globalPos) const { - // initialize values to zero, i.e. no-flow Neumann boundary conditions + // Initialize values to zero, i.e. no-flow Neumann boundary conditions NumEqVector values(0.0); - // if we are inside the injection zone set inflow Neumann boundary conditions + // If we are inside the injection zone set inflow Neumann boundary conditions if (injectionActive() && onInjectionBoundary(globalPos)) { - // inject nitrogen. Negative values mean injection - // unit: kg/(s*m^2) + // Inject nitrogen. negative values mean injection + // Unit: kg/(s*m^2) values[Indices::conti0EqIdx + FluidSystem::N2Idx] = -1e-4; values[Indices::conti0EqIdx + FluidSystem::H2OIdx] = 0.0; /*! * TODO:dumux-course-task 4: * Set Neumann noflow conditions for the energy equation everywhere else except the left boundary. - * Additionally, consider the energy flux at the injection point which is equal to the product of the respective mass flux and the matching enthalpy. Use the function `gasEnthalpy(temperature,pressure)` from the N2 component to access the necessary enthalpy. + * Additionally, consider the energy flux at the injection point which is equal to the product of the respective mass flux and the matching enthalpy. Use the function `gasEnthalpy(temperature,pressure)` from the N2 component to access the necessary enthalpy. * hint: use `Indices::energyEqIdx` to access the entry belonging to the energy flux. */ } @@ -183,8 +183,8 @@ public: // get the water density at atmospheric conditions const Scalar densityW = FluidSystem::H2O::liquidDensity(283.15, 1.0e5); - // assume an initially hydrostatic liquid pressure profile - // note: we subtract rho_w*g*h because g is defined negative + // Assume an initially hydrostatic liquid pressure profile + // Note: we subtract rho_w*g*h because g is defined negative const Scalar pw = 1.0e5 - densityW*this->spatialParams().gravity(globalPos)[dimWorld-1]*(aquiferDepth_ - globalPos[dimWorld-1]); values[Indices::pressureIdx] = pw; diff --git a/exercises/exercise-basic/injection2pproblem.hh b/exercises/exercise-basic/injection2pproblem.hh index 02e7a99c..a171f36f 100644 --- a/exercises/exercise-basic/injection2pproblem.hh +++ b/exercises/exercise-basic/injection2pproblem.hh @@ -100,10 +100,10 @@ public: BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const { BoundaryTypes bcTypes; - // set the left of the domain (with the global position in "0 = x" direction as a Dirichlet boundary + // Set the left of the domain (with the global position in "0 = x" direction as a Dirichlet boundary if (globalPos[0] < eps_) bcTypes.setAllDirichlet(); - // set all other as Neumann boundaries + // Set all other as Neumann boundaries else bcTypes.setAllNeumann(); @@ -129,10 +129,10 @@ public: */ NumEqVector neumannAtPos(const GlobalPosition &globalPos) const { - // initialize values to zero, i.e. no-flow Neumann boundary conditions + // Initialize values to zero, i.e. no-flow Neumann boundary conditions NumEqVector values(0.0); - // if we are inside the injection zone set inflow Neumann boundary conditions + // If we are inside the injection zone set inflow Neumann boundary conditions // using < boundary + eps_ or > boundary - eps_ is safer for floating point comparisons // than using <= or >= as it is robust with regard to imprecision introduced by rounding errors. if (injectionActive() && onInjectionBoundary(globalPos)) @@ -167,11 +167,11 @@ public: { PrimaryVariables values(0.0); - // get the water density at atmospheric conditions + // Get the water density at atmospheric conditions const Scalar densityW = FluidSystem::H2O::liquidDensity(this->spatialParams().temperatureAtPos(globalPos), 1.0e5); - // assume an initially hydrostatic liquid pressure profile - // note: we subtract rho_w*g*h because g is defined negative + // Assume an initially hydrostatic liquid pressure profile + // Note: we subtract rho_w*g*h because g is defined negative const Scalar pw = 1.0e5 - densityW*this->spatialParams().gravity(globalPos)[dimWorld-1]*(aquiferDepth_ - globalPos[dimWorld-1]); values[Indices::pressureIdx] = pw; diff --git a/exercises/exercise-fluidsystem/2p2cproblem.hh b/exercises/exercise-fluidsystem/2p2cproblem.hh index 2cf74590..3c78896f 100644 --- a/exercises/exercise-fluidsystem/2p2cproblem.hh +++ b/exercises/exercise-fluidsystem/2p2cproblem.hh @@ -7,12 +7,12 @@ /*! * \file * - * \brief Tutorial problem for a fully coupled two phase-two component box model. + * \brief Tutorial problem for a fully coupled two-phase two-component box model. */ #ifndef DUMUX_EXERCISE_FLUIDSYSTEM_B_PROBLEM_HH #define DUMUX_EXERCISE_FLUIDSYSTEM_B_PROBLEM_HH -// The base porous media box problem +// The base porous media box problem. #include <dumux/porousmediumflow/problem.hh> #include <dumux/common/boundarytypes.hh> #include <dumux/common/properties.hh> @@ -23,7 +23,7 @@ namespace Dumux { /*! * \ingroup TwoPBoxModel * - * \brief Tutorial problem for a fully coupled two phase-two component box model. + * \brief Tutorial problem for a fully coupled two-phase two-component box model. */ template <class TypeTag> class ExerciseFluidsystemProblemTwoPTwoC : public PorousMediumFlowProblem<TypeTag> @@ -64,7 +64,7 @@ public: * \brief Specifies which kind of boundary condition should be * used for which equation on a given boundary segment. * - * \param globalPos The position for which the bc type should be evaluated + * \param globalPos The position for which the bc type should be evaluated. */ BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const { @@ -80,9 +80,9 @@ public: /*! * \brief Evaluates the boundary conditions for a Dirichlet - * boundary segment + * boundary segment. * - * \param globalPos The global position + * \param globalPos The global position. */ PrimaryVariables dirichletAtPos(const GlobalPosition &globalPos) const { @@ -113,7 +113,7 @@ public: } else { - // no-flow on the remaining Neumann-boundaries. + // no-flow on the remaining Neumann-boundaries values[Indices::conti0EqIdx + FluidSystem::H2OIdx] = 0; values[Indices::conti0EqIdx + FluidSystem::NAPLIdx] = 0; } @@ -125,7 +125,7 @@ public: /*! * \brief Evaluate the initial value for a control volume. * - * \param globalPos The position for which the initial condition should be evaluated + * \param globalPos The position for which the initial condition should be evaluated. * * For this method, the \a values parameter stores primary * variables. @@ -149,9 +149,9 @@ public: /*! - * \brief Returns the source term + * \brief Returns the source term. * - * \param globalPos The global position + * \param globalPos The global position. */ NumEqVector sourceAtPos(const GlobalPosition &globalPos) const { @@ -162,8 +162,8 @@ public: private: - Scalar eps_; //! small epsilon value - Scalar depthBOR_; //! depth at the bottom of the reservoir + Scalar eps_; //! Small epsilon value + Scalar depthBOR_; //! Depth at the bottom of the reservoir }; } // end namespace Dumux diff --git a/exercises/exercise-fluidsystem/2p2cproperties.hh b/exercises/exercise-fluidsystem/2p2cproperties.hh index 5bdc04c7..fc13a8a6 100644 --- a/exercises/exercise-fluidsystem/2p2cproperties.hh +++ b/exercises/exercise-fluidsystem/2p2cproperties.hh @@ -27,12 +27,11 @@ // The fluid system that is created in this exercise #include "fluidsystems/h2omycompressiblecomponent.hh" -// The problem file, where setup-specific boundary and initial conditions are defined. +// The problem file, where setup-specific boundary and initial conditions are defined #include"2p2cproblem.hh" namespace Dumux::Properties { -// Create a new type tag for the problem // Create new type tags namespace TTag { struct ExerciseFluidsystemTwoPTwoC { using InheritsFrom = std::tuple<TwoPTwoC, BoxModel>; }; diff --git a/exercises/exercise-fluidsystem/2pproblem.hh b/exercises/exercise-fluidsystem/2pproblem.hh index 8258644f..4f9d17b2 100644 --- a/exercises/exercise-fluidsystem/2pproblem.hh +++ b/exercises/exercise-fluidsystem/2pproblem.hh @@ -7,7 +7,7 @@ /*! * \file * - * \brief Tutorial problem for a fully coupled twophase box model. + * \brief Tutorial problem for a fully coupled two-phase box model. */ #ifndef DUMUX_EXERCISE_FLUIDSYSTEM_A_PROBLEM_HH #define DUMUX_EXERCISE_FLUIDSYSTEM_A_PROBLEM_HH @@ -29,7 +29,7 @@ namespace Dumux { /*! * \ingroup TwoPBoxModel - * \brief Tutorial problem for a fully coupled twophase box model. + * \brief Tutorial problem for a fully coupled two-phase box model. */ template <class TypeTag> class ExerciseFluidsystemProblemTwoP : public PorousMediumFlowProblem<TypeTag> @@ -86,7 +86,7 @@ public: * \brief Specifies which kind of boundary condition should be * used for which equation on a given boundary segment. * - * \param globalPos The position for which the bc type should be evaluated + * \param globalPos The position for which the bc type should be evaluated. */ BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const { @@ -102,9 +102,9 @@ public: /*! * \brief Evaluates the boundary conditions for a Dirichlet - * boundary segment + * boundary segment. * - * \param globalPos The global position + * \param globalPos The global position. */ PrimaryVariables dirichletAtPos(const GlobalPosition& globalPos) const { @@ -136,7 +136,7 @@ public: } else { - // no-flow on the remaining Neumann-boundaries. + // no-flow on the remaining Neumann-boundaries values[contiWEqIdx] = 0; values[contiNEqIdx] = 0; } @@ -148,7 +148,7 @@ public: /*! * \brief Evaluate the initial value for a control volume. * - * \param globalPos The position for which the initial condition should be evaluated + * \param globalPos The position for which the initial condition should be evaluated. * * For this method, the \a values parameter stores primary * variables. @@ -167,9 +167,9 @@ public: /*! - * \brief Returns the source term + * \brief Returns the source term. * - * \param globalPos The global position + * \param globalPos The global position. */ NumEqVector sourceAtPos(const GlobalPosition& globalPos) const { @@ -207,9 +207,9 @@ private: gnuplot_.plot("YourComponentPhase_density"); } - Scalar eps_; //! small epsilon value - Scalar depthBOR_; //! depth at the bottom of the reservoir - Dumux::GnuplotInterface<double> gnuplot_; //! collects data for plotting + Scalar eps_; //! Small epsilon value + Scalar depthBOR_; //! Depth at the bottom of the reservoir + Dumux::GnuplotInterface<double> gnuplot_; //! Collects data for plotting }; } // end namespace Dumux diff --git a/exercises/exercise-fluidsystem/2pproperties.hh b/exercises/exercise-fluidsystem/2pproperties.hh index af595309..3807ca64 100644 --- a/exercises/exercise-fluidsystem/2pproperties.hh +++ b/exercises/exercise-fluidsystem/2pproperties.hh @@ -7,7 +7,7 @@ /*! * \file * - * \brief The properties file for two phase exercise-fluidsystem. + * \brief The properties file for two-phase exercise-fluidsystem. */ #ifndef DUMUX_EXERCISE_FLUIDSYSTEM_A_PROPERTIES_HH #define DUMUX_EXERCISE_FLUIDSYSTEM_A_PROPERTIES_HH @@ -25,26 +25,25 @@ #include "spatialparams.hh" // The components that will be created in this exercise -// TODO: dumux-course-task 2.2 -//****** Include the corresponding header for the task *****// +// TODO: dumux-course-task 2.2: +// Include the corresponding header for the task #include "components/myincompressiblecomponent.hh" // #include "components/mycompressiblecomponent.hh" // We will only have liquid phases here #include <dumux/material/fluidsystems/1pliquid.hh> -// The two-phase immiscible fluid system +// The two-phase immiscible fluidsystem #include <dumux/material/fluidsystems/2pimmiscible.hh> // The interface to create plots during simulation #include <dumux/io/gnuplotinterface.hh> -// The problem file, where setup-specific boundary and initial conditions are defined. +// The problem file, where setup-specific boundary and initial conditions are defined #include"2pproblem.hh" namespace Dumux::Properties { -// Create a new type tag for the problem // Create new type tags namespace TTag { struct ExerciseFluidsystemTwoP { using InheritsFrom = std::tuple<TwoP, BoxModel>; }; @@ -69,7 +68,7 @@ public: template<class TypeTag> struct Grid<TypeTag, TTag::ExerciseFluidsystemTwoP> { using type = Dune::YaspGrid<2>; }; -// we use the immiscible fluid system here +// We use the immiscible fluid system here template<class TypeTag> struct FluidSystem<TypeTag, TTag::ExerciseFluidsystemTwoP> { @@ -78,8 +77,8 @@ private: using TabulatedH2O = Components::TabulatedComponent<Components::H2O<Scalar>>; using LiquidWaterPhase = typename FluidSystems::OnePLiquid<Scalar, TabulatedH2O>; - // TODO: dumux-course-task 2.2 - //****** Select the corresponding component for the task *****// + // TODO: dumux-course-task 2.2: + // Select the corresponding component for the task // Uncomment first line and comment second line for using the compressible component using LiquidMyComponentPhase = typename FluidSystems::OnePLiquid<Scalar, MyIncompressibleComponent<Scalar> >; // using LiquidMyComponentPhase = typename FluidSystems::OnePLiquid<Scalar, MyCompressibleComponent<Scalar> >; diff --git a/exercises/exercise-fluidsystem/README.md b/exercises/exercise-fluidsystem/README.md index 6a5ea99f..0eb7631c 100644 --- a/exercises/exercise-fluidsystem/README.md +++ b/exercises/exercise-fluidsystem/README.md @@ -4,16 +4,14 @@ The aim of this exercise is to get familiar with the _DuMu<sup>x</sup>_ way of i ## Problem set-up -The domain has a size of 60 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). +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"> -## Preparing the exercise +## Task 1: Getting familiar with the code -* Navigate to the directory `dumux-course/exercises/exercise-fluidsystem` - -### 1. Getting familiar with the code +* Navigate to the directory `dumux-course/exercises/exercise-fluidsystem`. Locate all the files you will need for this exercise * The shared __main file__ : `main.cc` @@ -26,13 +24,13 @@ Locate all the files you will need for this exercise * The __spatial parameters file__: `spatialparams.hh` Furthermore you will find the following folders: -* `binarycoefficients`: Stores headers containing data/methods on binary mixtures -* `components`: Stores headers containing data/methods on pure components +* `binarycoefficients`: Stores headers containing data/methods on binary mixtures. +* `components`: Stores headers containing data/methods on pure components. * `fluidsystems`: Stores headers containing data/methods on mixtures of pure components. Uses methods from `binarycoefficients`. -To see more components, fluidsystems and binarycoefficients implementations, have a look at the folder `dumux/material`. +To see more components, fluid systems and binarycoefficients implementations, have a look at the folder `dumux/material`. -### 2. Implement a new component +## Task 2: Implement a new component - Part a In the following, the basic steps required to set the desired fluid system are outlined. Here, this is done in the __properties file__, i.e. for this part of the exercise the code shown below is taken from the `2pproperties.hh` file. @@ -63,14 +61,14 @@ while the `BoxModel` _TypeTag_ can be found in the `discretization/box.hh` heade For a cell-centered scheme, you could derive from `CCTpfaModel` or `CCMpfaModel` instead (and, of course, include the right headers). -One of the two phases should only contain the component water. We want to precompute tables on which the properties are then interpolated in order to save computational time. Since we need this part in both problem file and properties file, we have to include the following two headers in our problem file, i.e. `2pproblem.hh` file, and the properties file has access to them through problem file. +One of the two phases should only contain the component water. We want to precompute tables on which the properties are then interpolated in order to save computational time. We need the properties of the component water in the properties file and in the problem file. We include the following two headers in our problem file, i.e. `2pproblem.hh` file. By including the problem file in the properties file, it can be accessed through it. ```c++ // The water component #include <dumux/material/components/tabulatedcomponent.hh> #include <dumux/material/components/h2o.hh> ``` -The other phase that will be created only contains our new component, where we want to implement an incompressible and a compressible variant. +The other phase that will be created only contains our new component, where we want to implement an incompressible (Section 2.1) and a compressible (Section 2.2) variant. The respective headers are prepared, but still incomplete. The compressible variant is still commented so that compilation does not fail when finishing the incompressible variant. ```c++ @@ -92,9 +90,7 @@ This fluid system expects __phases__ as input and so far we have only included t #include <dumux/material/fluidsystems/1pliquid.hh> ``` -which creates a _liquid phase_ from a given component. Finally, using all of the included classes we set the fluid system property by choosing that the water phase is liquid (`OnePLiquid`) and consists of the tabulated water component, and -the other phase is liquid as well and consists of the incompressible fictitious component. Both will make up the immiscible fluid system (`TwoPImmiscible`), consisting of two liquids each consisting of one component: - +which creates a _liquid phase_ from a given component. Finally, using all of the included classes, we set the fluid system property. The fluid system consists of two liquids, water (derived from the tabulated water component) and the new incompressible fictitious component. Both components need to be defined as liquid (`OnePLiquid`). The two liquid components are then form an immiscible fluid system (`TwoPImmiscible`). ```c++ // we use the immiscible fluid system here @@ -106,8 +102,8 @@ private: using TabulatedH2O = Components::TabulatedComponent<Components::H2O<Scalar>>; using LiquidWaterPhase = typename FluidSystems::OnePLiquid<Scalar, TabulatedH2O>; - // TODO: dumux-course-task 2.2 - //****** Select the corresponding component for the task *****// + // TODO: dumux-course-task 2.2: + // Select the corresponding component for the task // Uncomment first line and comment second line for using the compressible component using LiquidMyComponentPhase = typename FluidSystems::OnePLiquid<Scalar, MyIncompressibleComponent<Scalar> >; // using LiquidMyComponentPhase = typename FluidSystems::OnePLiquid<Scalar, MyCompressibleComponent<Scalar> >; @@ -117,16 +113,16 @@ public: }; ``` -### 2.1. Incompressible component +### Task 2.1: Incompressible component -Open the file `myincompressiblecomponent.hh`. A component should always derive from the _Base_ class - thus we include `dumux/material/components/base.hh`-, which defines the interface of a _DuMuX_ component with possibly required functions to be overloaded by the actual implementation. Additionally it is required for liquids to derive from the _Liquid_ class (see `dumux/material/components/liquid.hh`), for gases to derive from the _Gas_ class (see `dumux/material/components/gas.hh`) and for solids to derive from the _Solid_ class (see `dumux/material/components/solid.hh`), with functions specific to liquid, gas or solid. +Open the file `myincompressiblecomponent.hh`. A component should always derive from the _Base_ class - thus we include `dumux/material/components/base.hh`-, which defines the interface of a _DuMuX_ component with the possibly required functions to be overloaded by the actual implementation. Additionally, it is required that liquids are derived from the _Liquid_ class (see `dumux/material/components/liquid.hh`), gases from the _Gas_ class (see `dumux/material/components/gas.hh`) and solids from the _Solid_ class (see `dumux/material/components/solid.hh`), with functions specific to liquid, gas or solid. ```c++ /*! * \ingroup Components - * \brief A ficitious component to be implemented in exercise 3. + * \brief A ficitious component to be implemented in exercise-fluidsystem 2.1. * - * \tparam Scalar The type used for scalar values + * \tparam Scalar The type used for scalar values. */ template <class Scalar> class MyIncompressibleComponent @@ -141,7 +137,7 @@ Implement an incompressible component into the file `myincompressiblecomponent.h | Parameter | unit | value | | -----| --------| -------- | | $`M`$ | $`kg/mol`$ | $`131.39 \cdot 10^{-3}`$ | -| $`\rho_{liquid}`$ | $`kg/m^3`$ | $`1460`$ | +| $`\rho_{liquid}`$ | $`kg/m^3`$ | $`1460.0`$ | | $`\mu_{liquid}`$ | $`Pa \cdot s`$ | $`5.7 \cdot 10^{-4}`$ | In order to do so, have a look at the files `dumux/material/components/base.hh` and `dumux/material/components/liquid.hh` to see how the interfaces are defined and overload them accordingly. @@ -154,30 +150,29 @@ make exercise_fluidsystem_a ./exercise_fluidsystem_a aparams.input ``` -The saturation distribution of the nonwetting phase S$`_n`$ (the phase consisting of our fictitious incompressible component) at the final simulation time should look like this: +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:  -### 2.2. Compressible component +### Task 2.2: Compressible component We now want to implement a pressure-dependent density for our component. Open the file `mycompressiblecomponent.hh` and copy in the functions you implemented for the incompressible variant. Now substitute the method that returns the density by the following expression: $`\displaystyle \rho_{MyComp} = \rho_{min} + \frac{ \rho_{max} - \rho_{min} }{ 1 + \rho_{min}*e^{-1.0*k*(\rho_{max} - \rho_{min})*p} } `$ -where $`p`$ is the pressure and $`\rho_{min} = 1440 `$, $`\rho_{max} = 1480 `$ 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 (rhoN) at the final simulation time should look like this: +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"> -### 3. Implement a new fluid system +## Task 3: Implement a new fluid system - Part b The problem file and properties file for this part of the exercise are `2p2cproblem.hh` and `2p2cproperties.hh`, respectively. -We now want to implement a new fluid system, which still consists of two liquid phases. However, one phase consists mainly of water and the other consists mainly of the previously implemented compressible component. We will now consider compositional effects, which is why we have to derive our _TypeTag_ (`ExerciseFluidsystemTwoPTwoC`) from a _TypeTag_ (`TwoPTwoC`) that holds the miscible two-phase - two-component model properties: +We now want to implement a new fluid system, which still consists of two liquid phases. However, one phase consists mainly of water and the other consists mainly of the previously implemented compressible component. We will now consider compositional effects, which is why we have to derive our _TypeTag_ (`ExerciseFluidsystemTwoPTwoC`) from a _TypeTag_ (`TwoPTwoC`) that holds the miscible two-phase two-component model properties: ```c++ // The numerical model @@ -185,7 +180,7 @@ We now want to implement a new fluid system, which still consists of two liquid ``` ```c++ -// Create a new type tag for the problem +// Create new type tags namespace TTag { struct ExerciseFluidsystemTwoPTwoC { using InheritsFrom = std::tuple<TwoPTwoC, BoxModel>; }; } // end namespace TTag @@ -213,10 +208,10 @@ public: In the `fluidsystems/h2omycompressiblecomponent.hh` file, your implemented compressible component and the binary coefficient files are already included. ```c++ -// the ficitious component that was created in exercise-fluidsystem a +// The ficitious component that was created in exercise-fluidsystem 2.2 #include <exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh> -// the binary coefficients corresponding to this fluid system +// The binary coefficients corresponding to this fluid system #include <exercises/exercise-fluidsystem/binarycoefficients/h2omycompressiblecomponent.hh> ``` @@ -234,9 +229,9 @@ make exercise_fluidsystem_b ./exercise_fluidsystem_b bparams.input ``` -You will observe an error message and an abortion of the program. This is due to the fact that in order for the constraint solver and other mechanisms in the two-phase two-component model to work, an additional functionality in the component has to be implemented: the model has to know the vapour pressure. As in the previous exercise, check the `dumux/material/components/base.hh` file for this function and implement it into `mycompressiblecomponent.hh`. For the vapour pressure, use a value of $`3900`$ Pa. +You will observe an error message and an abortion of the program. This is due to the fact that in order for the constraint solver and other mechanisms in the two-phase two-component model to work, an additional functionality in the component has to be implemented: the model has to know the vapour pressure. As in the previous exercise, check the `dumux/material/components/base.hh` file for this function and implement it into `mycompressiblecomponent.hh`. For the vapour pressure, use a value of $`3900.0 \, Pa`$. -### 4. Change wettability of the porous medium +## Task 4: Change wettability of the porous medium - Part b In the `spatialparams.hh` file, we can find the following function, with which we can specify which phase of the fluid system is to be considered as the wetting phase at a given position within the domain: @@ -250,9 +245,13 @@ In the `spatialparams.hh` file, we can find the following function, with which w template<class FluidSystem> int wettingPhaseAtPos(const GlobalPosition& globalPos) const { - // Our fluid system is H2OMyCompressibleComponent + // Our fluid system is H2OMyCompressibleComponent. // We want to define water as the wetting phase in - // the entire domain (see fluid system for the phase indices) + // the entire domain (see fluid system for the phase indices). + + // TODO: dumux-course-task 4: + // Adapt the following line so that the phase of our new component is + // the wetting phase, only within the lenses. return FluidSystem::phase0Idx; } ``` diff --git a/exercises/exercise-fluidsystem/aparams.input b/exercises/exercise-fluidsystem/aparams.input index 60897262..8969d5d5 100644 --- a/exercises/exercise-fluidsystem/aparams.input +++ b/exercises/exercise-fluidsystem/aparams.input @@ -6,11 +6,11 @@ DtInitial = 10 # initial time step size [s] Name = exercise-fluidsystem_a # name will be given to e.g. to the vtk result files [SpatialParams] -BrooksCoreyPcEntry = 5.0e2 # Pa +BrooksCoreyPcEntry = 5.0e2 # [Pa] BrooksCoreyLambda = 2.0 Swr = 0.1 Snr = 0.0 -Lens.BrooksCoreyPcEntry = 1e3 # Pa +Lens.BrooksCoreyPcEntry = 1e3 # [Pa] Lens.BrooksCoreyLambda = 2.0 Lens.Swr = 0.1 Lens.Snr = 0.0 diff --git a/exercises/exercise-fluidsystem/binarycoefficients/h2omycompressiblecomponent.hh b/exercises/exercise-fluidsystem/binarycoefficients/h2omycompressiblecomponent.hh index dbaad539..79a4e55a 100644 --- a/exercises/exercise-fluidsystem/binarycoefficients/h2omycompressiblecomponent.hh +++ b/exercises/exercise-fluidsystem/binarycoefficients/h2omycompressiblecomponent.hh @@ -7,7 +7,7 @@ /*! * \file * - * \brief Binary coefficients for water and a fictitious component implemented in exercise-fluidsystem a. + * \brief Binary coefficients for water and a fictitious component implemented in exercise-fluidsystem 2.1. */ #ifndef DUMUX_BINARY_COEFF_H2O_MYCOMPRESSIBLECOMPONENT_HH #define DUMUX_BINARY_COEFF_H2O_MYCOMPRESSIBLECOMPONENT_HH @@ -18,8 +18,7 @@ namespace BinaryCoeff { /*! - * \brief Binary coefficients for water and a fictitious component implemented in exercise-fluidsystem a - * The implementation of the missing methods in this file is part of exercise-fluidsystem b. + * \brief Binary coefficients for water and a fictitious component implemented in exercise-fluidsystem 2.1. */ class H2O_MyCompressibleComponent { @@ -30,7 +29,7 @@ public: template <class Scalar> static Scalar henryMyCompressibleComponentInWater(Scalar temperature) { - Scalar dumuxH = 1.5e-1 / 101.325; // unit [(mol/m^3)/Pa] + Scalar dumuxH = 1.5e-1 / 101.325; // [(mol/m^3)/Pa] dumuxH *= 18.02e-6; //multiplied by molar volume of reference phase = water return 1.0/dumuxH; // [Pa] } @@ -52,7 +51,7 @@ public: static Scalar liquidDiffCoeff(Scalar temperature, Scalar pressure) { // arbitrary - return 1.e-9; + return 1.e-9; // [m^2/s] } }; diff --git a/exercises/exercise-fluidsystem/bparams.input b/exercises/exercise-fluidsystem/bparams.input index 2b6595f3..372f314f 100644 --- a/exercises/exercise-fluidsystem/bparams.input +++ b/exercises/exercise-fluidsystem/bparams.input @@ -6,11 +6,11 @@ DtInitial = 10 # initial time step size [s] Name = exercise-fluidsystem_b # name will be given to e.g. to the vtk result files [SpatialParams] -BrooksCoreyPcEntry = 5.0e2 # Pa +BrooksCoreyPcEntry = 5.0e2 # [Pa] BrooksCoreyLambda = 2.0 Swr = 0.1 Snr = 0.0 -Lens.BrooksCoreyPcEntry = 1e3 # Pa +Lens.BrooksCoreyPcEntry = 1e3 # [Pa] Lens.BrooksCoreyLambda = 2.0 Lens.Swr = 0.1 Lens.Snr = 0.0 diff --git a/exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh b/exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh index 308ea171..9cce5a98 100644 --- a/exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh +++ b/exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh @@ -7,7 +7,7 @@ /*! * \file * \ingroup Components - * \brief A fictitious component to be implemented in exercise 3. + * \brief A fictitious component to be implemented in exercise 2.2. */ #ifndef DUMUX_MYCOMPRESSIBLECOMPONENT_HH #define DUMUX_MYCOMPRESSIBLECOMPONENT_HH @@ -21,7 +21,7 @@ namespace Dumux { /*! * \ingroup Components - * \brief A fictitious component to be implemented in exercise 3. + * \brief A fictitious component to be implemented in exercise 2.2. * * \tparam Scalar The type used for scalar values */ @@ -39,7 +39,7 @@ public: { return "MyCompressibleComponent"; } /*! - * \brief Returns true if the liquid phase is assumed to be compressible + * \brief Returns true if the liquid phase is assumed to be compressible. */ static constexpr bool liquidIsCompressible() { return true; } @@ -49,10 +49,10 @@ public: */ static Scalar molarMass() { - // TODO: dumux-course-task 2.2 + // TODO: dumux-course-task 2.2: // Copy the methods implemented in MyIncompressibleComponent and substitute // the density calculation by the expression given in the exercise description. - // Replace the line below by a meaningful return statement + // Replace the line below by a meaningful return statement. DUNE_THROW(Dune::NotImplemented, "Todo: implement molar mass"); } @@ -66,7 +66,7 @@ public: static Scalar liquidDensity(Scalar temperature, Scalar pressure) { // TODO: dumux-course-task 2.2: - // Replace the line below by a meaningful return statement + // Replace the line below by a meaningful return statement. DUNE_THROW(Dune::NotImplemented, "Todo: implement liquid density"); } @@ -92,7 +92,7 @@ public: static Scalar liquidViscosity(Scalar temperature, Scalar pressure) { // TODO: dumux-course-task 2.2: - // Replace the line below by a meaningful return statement + // Replace the line below by a meaningful return statement. DUNE_THROW(Dune::NotImplemented, "Todo: implement liquid viscosity"); } @@ -104,8 +104,8 @@ public: */ static Scalar vaporPressure(Scalar t) { - // TODO: dumux-course-task 3 - // Replace the line below by a meaningful return statement + // TODO: dumux-course-task 3: + // Replace the line below by a meaningful return statement. DUNE_THROW(Dune::NotImplemented, "Todo: implement vapour pressure"); } }; diff --git a/exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh b/exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh index 3a5c0f4c..3ce86568 100644 --- a/exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh +++ b/exercises/exercise-fluidsystem/components/myincompressiblecomponent.hh @@ -7,7 +7,7 @@ /*! * \file * \ingroup Components - * \brief A fictitious component to be implemented in exercise-fluidsystem. + * \brief A fictitious component to be implemented in exercise-fluidsystem 2.1. */ #ifndef DUMUX_MYINCOMPRESSIBLECOMPONENT_HH #define DUMUX_MYINCOMPRESSIBLECOMPONENT_HH @@ -21,9 +21,9 @@ namespace Dumux { /*! * \ingroup Components - * \brief A fictitious component to be implemented in exercise-fluidsystem. + * \brief A fictitious component to be implemented in exercise-fluidsystem 2.1. * - * \tparam Scalar The type used for scalar values + * \tparam Scalar The type used for scalar values. */ template <class Scalar> class MyIncompressibleComponent @@ -38,7 +38,7 @@ public: { return "MyIncompressibleComponent"; } /*! - * \brief Returns true if the liquid phase is assumed to be compressible + * \brief Returns true if the liquid phase is assumed to be compressible. */ static constexpr bool liquidIsCompressible() { return false; } @@ -48,9 +48,9 @@ public: */ static Scalar molarMass() { - // TODO: dumux-course-task 2.1 + // TODO: dumux-course-task 2.1: // Implement the methods for the component data given in the exercise description. - // Replace the line below by a meaningful return statement + // Replace the line below by a meaningful return statement. DUNE_THROW(Dune::NotImplemented, "Todo: implement molarMass()"); } @@ -63,9 +63,9 @@ public: */ static Scalar liquidDensity(Scalar temperature, Scalar pressure) { - // TODO: dumux-course-task 2.1 + // TODO: dumux-course-task 2.1: // Implement the methods for the component data given in the exercise description. - // Replace the line below by a meaningful return statement + // Replace the line below by a meaningful return statement. DUNE_THROW(Dune::NotImplemented, "Todo: implement liquidDensity()"); } @@ -90,9 +90,9 @@ public: */ static Scalar liquidViscosity(Scalar temperature, Scalar pressure) { - // TODO: dumux-course-task 2.1 + // TODO: dumux-course-task 2.1: // Implement the methods for the component data given in the exercise description. - // Replace the line below by a meaningful return statement + // Replace the line below by a meaningful return statement. DUNE_THROW(Dune::NotImplemented, "Todo: implement liquidViscosity()"); } }; diff --git a/exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh b/exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh index bbed8af5..14490adf 100644 --- a/exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh +++ b/exercises/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh @@ -8,8 +8,8 @@ * \file * * \brief A fluid system with water and a fictitious component, which is to be - * implemented in exercise-fluidsystem a, as phases and components. This - * fluid system is to be implemented in exercise-fluidsystem b. + * implemented in exercise-fluidsystem 2.2, as phases and components. This + * fluid system is to be implemented in exercise-fluidsystem 3. */ #ifndef DUMUX_H2O_MYCOMPRESSIBLECOMPONENT_FLUID_SYSTEM_HH #define DUMUX_H2O_MYCOMPRESSIBLECOMPONENT_FLUID_SYSTEM_HH @@ -19,10 +19,10 @@ #include <dumux/material/fluidsystems/base.hh> -// the fictitious component that was created in exercise-fluidsystem a +// The fictitious component that was created in exercise-fluidsystem 2.2 #include <exercises/exercise-fluidsystem/components/mycompressiblecomponent.hh> -// the binary coefficients corresponding to this fluid system +// The binary coefficients corresponding to this fluid system #include <exercises/exercise-fluidsystem/binarycoefficients/h2omycompressiblecomponent.hh> namespace Dumux { @@ -30,7 +30,7 @@ namespace FluidSystems { /*! * \brief A compositional fluid consisting of two liquid phases, - * which are water and a fictitious component from exercise-fluidsystem a. + * which are water and a fictitious component from exercise-fluidsystem 2.2. */ template <class Scalar, class H2OType = Dumux::Components::TabulatedComponent<Dumux::Components::H2O<Scalar> > > @@ -47,12 +47,12 @@ public: static constexpr int numPhases = 2; static constexpr int numComponents = 2; - static constexpr int phase0Idx = 0; // index of the first phase - static constexpr int phase1Idx = 1; // index of the second phase + static constexpr int phase0Idx = 0; // Index of the first phase + static constexpr int phase1Idx = 1; // Index of the second phase static constexpr int H2OIdx = 0; static constexpr int NAPLIdx = 1; - // export component indices to indicate the main component + // Export component indices to indicate the main component // of the corresponding phase at atmospheric pressure 1 bar // and room temperature 20°C: static constexpr int comp0Idx = H2OIdx; @@ -181,6 +181,7 @@ public: DUNE_THROW(Dune::InvalidStateException, "Invalid component index " << compIdx); } + /*! * \brief Return the molar mass of a component in [kg/mol]. */ @@ -208,7 +209,7 @@ public: if (phaseIdx == phase0Idx) { - // See: doctoral thesis of Steffen Ochs 2007 + // see: doctoral thesis of Steffen Ochs 2007 // Steam injection into saturated porous media : process analysis including experimental and numerical investigations // http://elib.uni-stuttgart.de/bitstream/11682/271/1/Diss_Ochs_OPUS.pdf @@ -217,8 +218,8 @@ public: // Scalar x_H2O = fluidState.moleFraction(phase0Idx, H2OIdx); // Scalar x_myComp = fluidState.moleFraction(phase0Idx, NAPLIdx); - // TODO: dumux-course-task 3 - // Implement the composition-dependent water density from the exercise sheet. + // TODO: dumux-course-task 3: + // implement the composition-dependent water density from the exercise sheet. DUNE_THROW(Dune::NotImplemented, "Todo: implement composition-dependent density"); } @@ -237,7 +238,7 @@ public: * The molar density for the simple relation is defined by the * mass density \f$\rho_\alpha\f$ and the molar mass of the main component * - * The molar density for the complrex relation is defined by the + * The molar density for the complex relation is defined by the * mass density \f$\rho_\alpha\f$ and the mean molar mass \f$\overline M_\alpha\f$: * * \f[\rho_{mol,\alpha} = \frac{\rho_\alpha}{\overline M_\alpha} \;.\f] @@ -395,7 +396,8 @@ public: DUNE_THROW(Dune::NotImplemented, "FluidSystems::H2OMyCompressibleComponent::kelvinVaporPressure()"); } - /* partial pressures in the gas phase, taken from saturation vapor pressures + /*! + * \brief Partial pressures in the gas phase, taken from saturation vapor pressures. */ template <class FluidState> static Scalar partialPressureGas(const FluidState &fluidState, int phaseIdx, @@ -412,7 +414,8 @@ public: DUNE_THROW(Dune::InvalidStateException, "non-existent component index " << compIdx); } - /* inverse vapor pressures, taken from inverse saturation vapor pressures + /*! + * \brief Inverse vapor pressures, taken from inverse saturation vapor pressures. */ template <class FluidState> static Scalar inverseVaporPressureCurve(const FluidState &fluidState, diff --git a/exercises/exercise-fluidsystem/main.cc b/exercises/exercise-fluidsystem/main.cc index 741f0621..5f8394b7 100644 --- a/exercises/exercise-fluidsystem/main.cc +++ b/exercises/exercise-fluidsystem/main.cc @@ -6,7 +6,7 @@ // /*! * \file - * \brief The main file for exercise 3. This solves an instationary problem + * \brief The main file for exercise-fluidsystem. This solves an instationary problem * with an implicit time discretization. */ #include <config.h> @@ -37,11 +37,11 @@ int main(int argc, char** argv) { using namespace Dumux; - // define the type tag for this problem - // TYPETAG is set in CMakeLists.txt as compile time definition - // alternatively you could write `using TypeTag = Properties::TTag::ExerciseFluidsystemBoxTwoP;` - // then, for the 2p2c problem you have to change this line to `using TypeTag = Properties::TTag::ExerciseFluidsystemBoxTwoPTwoC;` - // and recompile the executable + // TODO: dumux-course-task 3: + // TYPETAG is set in CMakeLists.txt as compile time definition. + // Alternatively, you could write `using TypeTag = Properties::TTag::ExerciseFluidsystemTwoP;` + // then, for the 2p2c problem you have to change this line to `using TypeTag = Properties::TTag::ExerciseFluidsystemTwoPTwoC;` + // and recompile the executable. using TypeTag = Properties::TTag::TYPETAG; // initialize MPI+x, finalize is done automatically on exit diff --git a/exercises/exercise-fluidsystem/spatialparams.hh b/exercises/exercise-fluidsystem/spatialparams.hh index 7601c3af..11c74faa 100644 --- a/exercises/exercise-fluidsystem/spatialparams.hh +++ b/exercises/exercise-fluidsystem/spatialparams.hh @@ -13,10 +13,10 @@ #ifndef DUMUX_EXERCISE_FLUIDSYSTEM_SPATIAL_PARAMS_HH #define DUMUX_EXERCISE_FLUIDSYSTEM_SPATIAL_PARAMS_HH -// include parent spatialparameters +// Include parent spatial parameters #include <dumux/porousmediumflow/fvspatialparamsmp.hh> -//include fluid matrix interaction relationship +// Include fluid-matrix interaction relationship #include <dumux/material/fluidmatrixinteractions/2p/brookscorey.hh> #include <dumux/material/fluidmatrixinteractions/2p/linearmaterial.hh> @@ -44,13 +44,13 @@ class ExerciseFluidsystemSpatialParams using PcKrSwCurve = FluidMatrix::BrooksCoreyDefault<Scalar>; public: - // export permeability type + // Export permeability type using PermeabilityType = Dune::FieldMatrix<Scalar, dim, dim>; /*! - * \brief The constructor + * \brief The constructor. * - * \param gridGeometry The finite volume grid geometry + * \param gridGeometry The finite volume grid geometry. */ ExerciseFluidsystemSpatialParams(std::shared_ptr<const GridGeometry>& gridGeometry) : ParentType(gridGeometry) @@ -59,8 +59,8 @@ public: , pcKrSwCurve_("SpatialParams") , lensPcKrSwCurve_("SpatialParams.Lens") { - //set main diagonal entries of the permeability tensor to a value - //setting to one value means: isotropic, homogeneous + // set main diagonal entries of the permeability tensor to a value + // setting to one value means: isotropic, homogeneous for (int i = 0; i < dim; i++) { K_[i][i] = 1e-7; @@ -71,7 +71,7 @@ public: /*! * \brief Define the intrinsic permeability \f$\mathrm{[m^2]}\f$. * - * \param globalPos The global position + * \param globalPos The global position. */ PermeabilityType permeabilityAtPos(const GlobalPosition& globalPos) const @@ -84,7 +84,7 @@ public: /*! * \brief Define the porosity \f$\mathrm{[-]}\f$. * - * \param globalPos The global position + * \param globalPos The global position. */ Scalar porosityAtPos(const GlobalPosition& globalPos) const { @@ -94,8 +94,8 @@ public: } /*! - * \brief Returns the fluid-matrix interaction law at a given location - * \param globalPos The global coordinates for the given location + * \brief Returns the fluid-matrix interaction law at a given location. + * \param globalPos The global coordinates for the given location. */ auto fluidMatrixInteractionAtPos(const GlobalPosition& globalPos) const { @@ -107,17 +107,17 @@ public: /*! * \brief Function for defining which phase is to be considered as the wetting phase. * - * \return the wetting phase index - * \param globalPos The position of the center of the element + * \return The wetting phase index. + * \param globalPos The position of the center of the element. */ template<class FluidSystem> int wettingPhaseAtPos(const GlobalPosition& globalPos) const { - // Our fluid system is H2OMyCompressibleComponent + // Our fluid system is H2OMyCompressibleComponent. // We want to define water as the wetting phase in - // the entire domain (see fluid system for the phase indices) + // the entire domain (see fluid system for the phase indices). - // TODO: dumux-course-task 4 + // TODO: dumux-course-task 4: // Adapt the following line so that the phase of our new component is // the wetting phase, only within the lenses. return FluidSystem::phase0Idx; @@ -133,8 +133,8 @@ public: } /*! - * \brief Returns the temperature at the domain at the given position - * \param globalPos The position in global coordinates where the temperature should be specified + * \brief Returns the temperature at the domain at the given position. + * \param globalPos The position in global coordinates where the temperature should be specified. */ Scalar temperatureAtPos(const GlobalPosition& globalPos) const { @@ -147,7 +147,7 @@ private: Dune::FieldMatrix<Scalar, dim, dim> K_; Dune::FieldMatrix<Scalar, dim, dim> KLens_; - // Object that holds the values/parameters of the selected fluid matrix interaction relationship + // Object that holds the values/parameters of the selected fluid matrix interaction relationship. const PcKrSwCurve pcKrSwCurve_; const PcKrSwCurve lensPcKrSwCurve_; }; diff --git a/exercises/extradoc/exercise-fluidsystem_a_solution.png b/exercises/extradoc/exercise-fluidsystem_a_solution.png index fdf3ef23c81a0bc414554a9bc2e4f1e784e134c4..71a3634f5a5c09646d62ec091ae72ec4e5941cd8 100644 GIT binary patch literal 36813 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 E0Wh{z3IG5A literal 142019 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�H71hrClG-}9va$l5IyX0+O8OY+ z=-9pDIjTWzM`Lo^`vJV*I=_AUHalx+V`Jm&T&$A`<6tWkRa;vNT`cf;Je*E8@l96N z9W)``)dttsyI>)p7mt|0k8&=LfS>AE@dHRD0nX0?_lRDnWPgf5{r``k;rM@ZT*kO$ WT#8}~zLf14Ul}R+-!dd_KmI=~+vHaO diff --git a/exercises/extradoc/exercise-fluidsystem_a_solution2.png b/exercises/extradoc/exercise-fluidsystem_a_solution2.png index ba90e6fcfa783fcc5a4eaf1c5fbe252dc46ea8d9..4004196f000c2de22328d38ed8637bd154616e20 100644 GIT binary patch literal 25646 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 O{O%8Y-`9G6dg?Db6vQ<E literal 60853 zcmeEud038J`|h2njAf`4&6yfRgJ_;mFG*-n6dIL^(m<m`5gI5eiljjjY1Aa7jFsk@ ziZn~JrhTrb-uLtU_V@ek{r5iha~$7yc%Pp8zSq6hwXW;D&g;C^rM-K0E?&U7fTF0y z8tQ8MD2nMaMKK&;nuBi^zU*F3QM{Cfn(_gcy6(m^E(g9fDo#mU_nEtFIoqpcbEV$# z3+aRkt^c`RWqZMMr3=wYtVyf(S$7o<*x2ZtDBGEot-mlNy2?PUlVPL&W!<Mj-rmK! z+e7avy=3DJH1qKMpvBFt<Tu|TT*D|?_~y;XZ4wtp+_p-zPu(6@2+|i}!x->k35{o( z`Pa)BdHR{JgnBq=|M1#-ykzEYK7Y9~(Ei1HpiW}ut9zd#>1h9A3K?ER`-f6|s>RIT zR37~QTVZYg|6CDs_<z9|qz>=cv7^npr#>TjV!7|)Rcy6UH;vA2NHw1F7t32IWpyCi zsfSb2vh>N(R~rvMpBT=_7u~qA$vVTPKE2VU^=c81=fqK8E~n0fIEB$K=UG`<o6cG# zs*A8)C!T;((sZiS(F+L)nWwzzRLg6po;p#ZoXlXY?uvx+%dEm1bAG<eO%LFd>XdCB z+ryMU_FgPs?&Oyj!NI{36BD2A$g;Dt=8iPE8fMta|0))+_;mYB_tT;`&h=Ri7S)dr zvy14LChU*HPq#UIe{}HK_m>OB+=go{1cLnL+#N2P*~RLdLFzHTdcuDF`t|71qi3IF zx(eBiCjutYFI>2=lgItEhQ?c;`O7!v4t{pI{~$H>^x%)O)}jEr^4O2-qTGT*L)qpQ z+;MK&X8z$;y<Ps~^kn`t`z5t>n|i0FGwqX;eV$R`X765{qtETDP+*g$xtaJo3gg|+ z@D8olWP25d7B;w#G~x|%zl9pMSU)P1j(zZeyp7^$0duIR;qV8ElGoDY3eAWuxgD_) zE!k$~=1r%HxRhDsrY8oPc3Q2O@mgMW9oMxK=6ioptceVhvesppE3o5A&B#6L$60Hc zyhlY(9(!7Y8=f8R=7`c*&OV*SE^5%`9-}+!&f@Q|Z9KH{z;k&CyQZ9bs=nz~l|u6J zxn}P}-N%RBf4yDj+*9ZH#UjnFd5RjjcreXMXV0EJMn+9}%!Pe2&#-j7O#DH`!E1KK z?hZ?7U()|(_w}`!IRO=a&HBx>{cgh_u&9{fM{701O)V^(`<mQ;wY_z140bEJ#-%u3 zTk`yL2d3+W`Nwd~=^5D2<j+^kVwn5#J+eK|N)!@*i9NxSc3kD`8M)`uY&Q9OXxx1e zmguLI%(2ZrW+cc!1OD2p&ZI8&_(+3832fv%?|LyYPb_<s$M25ZPjcsZU4|<4c3$Ol zER9IW``wwyKab)~D6}Y9#39~xRl3Qq@YsU~4;;RK;81WIy})jidAvM!RN<+9ckr%_ zS?!Uo49wg)Zezcg6-JM|yRqS!`A37?vqJ&_aw#XjzJ&QC#>dB7<tvG>?b6a}?o;L9 z;812caNt09n)~R_uj?XRjzw&-`Ho>Zb=UArd|~{1`K$u++{ZmIuoAg}-LSdmj$LeG zMsDvm#C4~ARylKK%sM$&*T6u=rY_Z8R@&7d-(xbx?0w7vN-0=KRP=C)sRqkjc4N2x zmlqaFpQw4_*i}{g%)<Fc=~p|?@%qKm4J^$zofQcs@*@p?O9dj`e!Z<qGVJp>yJN?j zN<HIAY>Y?xPg~j*r_WgCI~f=l{PovgIcFqXhr7k{Mqe6gB#{WI)DsjIHg=z9((-Na z8Xk|)ubHP>G0o4~JIoqj`-io)%QEbm7q8lKq9Jp0-l;cNIJD&Y)s7$UxW*;BcK5AK zj-3@ru=AQHN1Jlakkz(*-VvKWJ=xcS1;~1R>}huI^RCC)y=Q-S#04l$jao{Ehlkfa zvncVL>@wcT<yaA;aoxNml51|k{Qw1nWTRZ!z8r`AjKGfaxRSB<sOiCSt-eT`>z2#$ zFhx%fW#xioTp1=|5qai&SXWijfbG8V7{Cy(y0#jV0QuiP?qkCa4-O7Gl*mg<NjWAj zuYfN}hE+B`cQk}wOH9s_F)a?{WqR(^^Bb3l>OVQs+mM9?eBKtkOI%zW588``=t|Dd zJNV3e-n@A!<V`9P_3Yp!#%)X9z2lU&Z3yI3H9Fhzz$o`@?)22SGRt6h?LdT)MeCcZ zFarI|lV3aHqPXW4Xz%1o>$?(~Yak2rb9HB(PEScmvCaAx`uX$c=BeQfY>0L&U+dxr zp~Q9F)z#RwOSUJqoEs~#$~N<!$K-EU`R6cJ4heHf>naghSy=%Alg}|4?1xS&!-?a0 zhN+hQ#R360Zrr%Cax;Hk;7gbgwp<GK8?5hpTU#+3?pxP)BS>xQ&v(!Hx|(ubS>_J3 zmjo0ZD=aL8_wF|<UGfE9_{#MA%|)x1PrqC}f{hgt8k%lhZJS^6mxe~|Q<EYO9-$2z zE_t3)d@(&38)1t{I5fe1-72Kc>1TpA<2;IrkG&)7OnexeEIuR6p3`4_dGgxtXEdGd z!l1U;)E&^*zjgh3Io4bPTjJMyF=p?(PoDhrUbu1Vw;TK4T;p1$Sl?ZCzi7?PLuC9g z_`@d)<~5Hujl5n+?N!aWUA6I)n1^jgaQK8pfEs^KU7BHzOaD1%?9a@p-(B@-*3woL z@$Ni_^F7?lV>M+RJ0+ca8+4Nl9>m6az+32a9e}IzfT=f2e!6}0W(H;!QLt}(ud=f8 z`%uyG!H$7A#mVCp@!I5}k26~?yF1Ia_z7&WZOF8#-(sdE+S&xfSiy~H+aJ4o!^Vwy zzupOBOT50cd>zclVdTE7bFavT4IOo9UD!(BKZH3HaXF`2Ra$j?e(>$vH(cjA_TIQI z-6s3!tBcZ2E&_R;_jg<km$G&$WYs&}Rn_z0rqMDniqa6|yb2@m&Hr7Q{MW8sBkreh zdu5hXjDpEq!TmSc+T~h`jeT9%WJTPrCniSwb+SwI;o6A>K0Q{L$1G})x}M29Cnu-7 zyBjf+#GCQnXYl-K*40iwN()x~B|5Q72tnKG>dTieAMCn0^<$@EXX(9HY1KyAm>PB? zmwVCC{8K+*9Jj;6&-SEMN4m6JQf9e*`m;v<)KId&zkl=Dt|V`7@2jh%uW`#iw<w8> za{Hy>Hg>^M^0(sjfMQ?nh!M-&4I4JVAKYE*Z+tbiJ=EdTHVdo{_GO=uYv|3J<QB>- zi@0PYnY_#H@7&2B^!1f*-_T&@{N-yWMvD}u-~<x4WPG0(C}H;gG6L_C$2|E>%yYi? zUAyMIu&}T=M1fUyIZxribBDtukMG;QeY@L+E%9aq!N<#Epq^>Ajn5Hl%Pb{@g{_MN z`QWn}-GdKmYoCH+>O156`S(y))Y;Ai?29NEY8g;M!>OXh9O8nqvhbL-Sk>;P-0>e} z_nSS&d*I13^^%Qf?==3&IqzBZM|Qi+uNQ$zj3-*yndJvdd;LRUG+R&qD0OajcmDaM zU~+sUK(YUOgx%Da^UR;Nwq7|i@V&?5?5R`zHBU`ECt7);PQIL<(dcAY>5=$;WA-EM z`#YQ)9jjXd6!ToCG`DXre8sFN2R!xtV}$YPvhB(&6Tfcei-?IS0x#SYHB2AR+8?)v zU<rE%2V!DpJrmp;X7U_$afy_=b-jh-tYVMfdJfw?ANk<XNB7M1ZSd6OxR`NX4mKLu zyQ#;^8F}1DoPqarMieKj+Q;T!Xq(-WZfKV)#pa)8Q$IY~8qkbTHr|(?k9UAO(F&LB z@DsQ;8r$6dVkC0D_mQec2iXswE_-uzRfOd6&#<;vOJutN>c(6A#ZsO<Gd}Yz1nW`g zoZXi<ZkyBpMqk9~<@|N2Kp_A-2U9JzZEbsvr+(dpm)QSt|G4E$-lnm`H8!{>jF&0> zMC~tM#fh&8aghdjZf5{l;`ZEOSj;Jj*>-0aHiY}7XO`Q9a1YC56E!&9UDJ;zbBmi6 zpSvklpLxmzu@}C{!^?faf(6_zU(O-Qp8EDK1RFHTAWf$Iwu8siKves;Z#`M{cuh}O zao*VX2$&U@%;_JngOAe9w<97Fza)grB#B;v`)}4uDD?yi&9TY|5!TBauCq?gpZXoW z-T&9XKnd0eo?ObV>5zCOK`@$;a#?rp9zjUL7PTyk-hOlAVS+~CsphvEW?@#0-1-ZX z^L{_v8Ndx>s`u)iS>naS*!cJ#>GigTz$P%)2r28Te9vjJn@ap+R@k(p=%nhTV@0H! z-39;v+}rOs?~xy>zygi*)Q>!QwPb(Br6sy$+{@ths}DJR4BE-P4X$E)#E&DaHZ7l) z&~A}YsjaI!T&l|aF-p<1tvCpK>$$^b3hA_}O}hQJcfyY|kG;CM7(*wKJyhhNxW~k3 zT;$nKEzjTk;X=Rd*Cg->{^!<a6WwGZE@KaDIed1BH|ydx!=>$}fPQa;hCcjSnxgYc zXTQF_OTj$$ZaB<aCf7LRTz=j(_89vCI55_BT}yHDG!W+s8<l4|sg?Z!o)ac7edZ5! zR%UlTO#EIFrRe^95DP!pRb5iB<z9hMooe)>M}R7)2);aMap&7AmFV+2sh4DB_omL5 zAJ~^sxmwx<c?-j$m8EIcdhN$F*6kDHpUazYyku|0$1sVwoSccN@xBs#-oF=KzkcPW zBQNYc1|kr`tg(lGC0x6F`7!|%aCFU+z0Tu9T{o{^7q~7YJ2_YmEIougL&PwB_hR4B zB+kd-$f^=zV%jdQvi$*QW@~GU-HuT?j`w8bBW|erF40My|53M0_n-)yE717+ckgU- zhpP76k@*-QZ3k>ez)bH(@8_C(pIjae9EArocKLb%q0y!xvrO7YjWN-3xwF$<%jGwd zo+km4IW@rB0M@<}PTsAhrI$+ih`=KIGim@d;!KLJHD)^pG@HU}B*U;^%Pttn`}gm+ zAK-#bbX6xSBG$oR?@$MfH8eDwoQ84Fij!MwAAS{DrRd@2;V}j9>{6k<6Y0tp>#FY8 z%eCYNK1g6gvu=+lJ;7?@c%nYN2XJJyf}0CAr8n<Ztm61cU;dGTIgIr_42hP^mC}z% z_98DonLpK)@20AL`pM-jrz{vRZ@Fh-)R``Go?-dAJrj6UUuGV-r2X3$DvhRE#HVe+ z_Bn8%0)fnO(6dWUN-E8v{S&sNtI?XBtRjapH_6Io!}|T%M1yw>J;1cLwXI-hPyBk4 zSlM#_!cT~Q5}&r3l<ZmvIP3C;!-C|E2*{VWDAx+rSv@q)pMuS9%>3d#>dCfZMb1!_ z;Zyw&Gj`Pp3(m&EpXXhP@cMRLRL=N5`t1>S|K2$&B{>x~A*^g{Q&S`PT3T9mWzmI^ zg$b5)Ojm~&rB%UQDgc`zvUI2A9?o`J$R@I0L}Z1wquWG((V8`Duw^)rnH-P1vjsqZ z!~WP4b*UQSI&y3~@7LDW)~DO-fA!TA9^k}>Tbs%DFp5hP%lWAS0F2dRweiN*ue=c) zY!ARtWN3_Fbz9zb816i8B)4x{&00zQ?S}4&x=ClhUSJ0{{0ztrQ~(<jt|Ln_V?t-Y zKd?=V#Rj;vE^@t)&~F4<cjOj>ot0e$j64lbj-HR!OexPzRd4Zlz0l{>>g9B4IwA-T z$KW#StX(mdR_06bGHgiDf%YyeWRG+ouFW5B>_a{=fGFPod6$?YhjwL5ObqhGKB-r# zi`Q*5lsY68q%J5RARsj~-H>TJKHP&<<=T4kNVhdC-U9X#g8Zx(SaJHTmPg8w0`ESz zcG)HA^A}^=lp`nK5x|Ws<rG3C)?CuANsh^TsH<AI?)5yp*lDM|+S>Olm($+O9DXA} z;kPBs8p(TK{`3@ZRL*FNzrfCGhkzIl9t?|~$GbX#|E`mN@-o*iq6d_b2mpK`k&Orq ztpc9I^OnGPfDb*V$D75T|KJ~UGwf%3nI|Dv@sscEmUZhanom^z<a>%OisWt!j1;NI z@#Dv5Y)timb@gKe8N^kOZy|af2-6DKKAPc@+8LLa(vfdmPM3N2{yj;=kSHKwe>2W_ zimdX-kMLp(b<5VabRT))MK`-wtjs^%4vUBwuh_5kt*uScs$zX)y^h}Dq0Yo)5<o7q zd7Zo^uPUmyckjtkyv_8~B#&!18JiTK36nQc?lh~)&Kvvpgo&H|wSD^qx4a~hM_jq` z;lpmJ+kPj?%gaYT>MrI9rtfCeJEX0x-4DME3*EHr()zl&W@K>?vJiNG0L!_LeY?4T z|9)8Kw?@7EhxMwf9z`cjDSrvGh}`!5mdWGioeyzyUZ%W>U+<3uXmDdn;IP$hb8Y>+ z_V<Tfjk?N+%2zlfJ|Q83w*-<0c)hrI6*vnL28q3&Ig>?Js7|7yspZ-ZfuQ1dA;Ked zc?e6ElAMY>t)&bKm>t-)p>M`JOyG>`>LdX(z+><}FH>*ccyFv`1RhH)>mJ4f)`GA< zA$mra)c8BMEX9yI0mzEL->}au0CiAvSNS|I69|el3wGtQwd)Zt?>;*Zz_q^a^_??4 zwu15Xc4ml(*j_SyIRnvU(_C!+YW#qE###2?@URs&DSk0KmW>D)@m>jVT)Nkg3#$uP zeF&+GQ9Ynr6&^PlzUsh7lCzThMbEzuWS0or`{H62?aJ<dc8aF3-s9DqkEsbRBb<dn znpK+XL5b}Vnee+ItnBOoT(ZLeCJhcINDE80wckc+v-7^TV}#!k0CoH(7cr+iPD`;P z<~qp*qG_M8f%ase;eqcTt*ahw5EIi&y~N~%oigi_m1`N4f5I6j)(fd?X_2V7VMDF; z_~XObAlER(D@3WUrIGil-o1T$ydkqc=gh#ncki6+t`r`F5g)}sgdH}>Hw%i1*-cH1 zA(Yoi)WiR2-jNwX?6_eQ(!+X(bI+l4t4tXM09gQkz<<}i+zfzF*YvzuR8xgDKn6@g zjq8$v6(9&f@c_TMNOJ06<7^QX)hyGk?W{};*xKT^-Jk6+kTcdCUsM+d3Gke03(`r{ z1^l=9J=l?ukO0TRI1VhKTDJB_H?M?5c@W|cLXQ=&DL#l>U`w96njAb>3m=LvSw*RP zWq3)X!W~sf_1^Oq63)Vyhgbzr<`@vM*0ygq<l{CC*xUgRv+nlEmu+vaTYL;pqj6}! z!vg?>0DJMkf!TeE1sQ48i<qTuXP&4$86s+&=l12rIpoY4%^t4i=HGj>xGrxgLri+; zS$lPd=jbb*Jdg~?H^+ct(}9w|AqEVV?S#2~B3{}NaR^%#D-6)R9VFHlWDQfmnetPk ztyqHWuNPM_ELmLxw~VB7sJm7IaIB2`*AYg*pr<A~w@3IrJ3so@-pgB-)>b7OHy5P8 zi#m3mVexOgm$B#M5P;@uYkTq%?Ik>tmU{)4X#-gZq>OKI-#ZQt)*SSYVfu*<ByaHF zihx4+PRgck5E$FGJoc*FL&OQugDIx3{g#@UnE{U~4A+>jZ#*=LJj=|~ba$BeH^9^7 z+N>f*Ipn*mVwWCYTz-c@C~RhC02Mr(Tn5WUdV^0ZGaMdZpH|u0jfUF|xqw}!5qWw1 z3$KA?f^|N|_CVf-Pyn*_uRVLN&0?taqU6(vEe8k<2ObUkFLKSmt7GT;L~_ymnr-4h zk9Fx?Ws>y)aQH6aBBX6^cHbL^fg#>YIZeMtU+20+NkyrzRF~}Gu*wq4pRk8*5uo2v z=sz$p0AT3+X<IwM{jua-9b@S*108++(KoB?c1LVU0-cCF9p;dUtO6EyVZW3=yO_sF zqw~%yEAL%=^;UPWUcs+#?~4L>@=w&JU=G;vVPhk-5Q4?qj~`)pT}Vb*XMpk3Q>|~n zCA5NcGJ1acIL7-4BLTOXjVy8|R&v*sq<~bL9*k22=0xyZJJ_uRcV_5lXoj`R>PfFB zyeVEpTv~br8@{hT!wznZ)n?h5*5c*MMp|<7_17QeE&Ds+xi3#IDEr=wM)^~JRMZmq zNfCew-X$nSfOXg(wX@F4$R-S!yhB7&SRb8O`sjq2{}D4`!?_EUH1Eo*9`64n+sCB* zBxQR#e&HRGH2Vv>`1uX47dhh|J?g&a%N?%hIfXrq#9&aK#{eD{VRra;SF#wm4n@2) z240<P3~wepkg`hJ_J$2VlWuy-_9rQ<A}JwBM}m@0blE?d&sp^4ZuEx7vW&qKTi4F9 z3P;MOFjTRBY-|k9snL2I(QY&Hnudl3LSB-*MA2hnhLz$pHoU`J%vQTVH+}ZbA)?bk zN0v)oqf<(<7+xgx9+(-Xl82-gF+Mgfu5YaL_BIEEbpkm+5deB2FQubrnD{Q8f2J!b z1MG9Rb>aYBEx%#GJGO#%Gk0Foc4WEq-#1kU0RWDPydZp}v`yXVWM6QHcL?V1Ymyfe z6QdD5-129U1ApzwXx<2B;HNPAiWS{c>wE)g(=2RQz;9T)fUWjj`X`2n%u|b~&N(pN zKyW|J*gPE_9k58h9n)H;Y@2ejV51-uTy3>9HG4p8fe2O>J8=*UYOkj~)BOKBrzf6V zT2*vcoPR^m>q$R$rgNBw?Fi>c53~;)80-UD0*LE?KR(Z_kO?O=dLO7}9B6`&&DGE9 z(yTK8?JyGh{LIA5%haBv&`f}=*F66dW`@$|HGgbnpd8P+mh9dC$SC(Wyu`;(pSS@O zqZHhYTzk?8QI2p8XE{|GuYDgSVgEuBBCDSnWY}_f{&*pl2OxnbXeo@D!YKk*9|YnH z3j=(KH_rC}n|k)_+1z9hwP(bfgyAEG(m;xY-nh{XJOIB26fTT1Sc=&$W#w~ZLJMF5 z#7xbE^=q+aX(Ba<GLsfXo2mGPNLV)fS8x`O+6Q(NNnMTHhbmFw*qW#1mR2R-)3i@l zH#GeD^x2IfBDXi2y!rfK7iw(%z$SjbS%i=%%x)EZ)0s7_N;zWj;nu1CLUx|5^;XwR zC@;)6DJc94J{9Si*}yG>8wuc+H$u{Qj-K(2Gg8``F4qszn$jEBuh-9ZvH_v~P$v<E zt{~6dz5)iK+wPBSFLK^0BO&21QmEG7bqPc@KKu6XFUSAy+n>WVJ)U<X<Ys7SC@OrR zp>L8m0jsq4zV`<-9)25LvdbyAV9n1Je`^6w?&uqsD-5gC#SX+<VEmY>lq9YK+vffg zQ=7SVTv=I`Y@81m30#~;+~rq4zzS8_Ys##ds*3^#i#9*okT9S4rh!kgb}g?jk>DCx zk2>H<Fs2hdcAoW!YXI~F+V0nqcP!y*0(j$@9xVcMVhj%qE-$s;I@{ULc-USoaf?m9 zL(j#ltkFaQu;k0n9c2%A<a5qerr-s7x1EbEt0ox|vdkcXow{dMw}J|997&gSGqj65 zY2RX$)Bf_zGKOUzyE&|UP-ehhM$s=fy{|4!7@JU7I1wd*zrmfcHNpl#cgy!|y$6gH zR6K1Y`P6mz16f~;R^qI&WV=Z&ktclN-E!j5){N;F2kmwfm<D6Z?&}WI7a@dB=M@u> z|GPg?YTK1G1MiTJJPI#Zm&R3~41h61@fA!N+&YpJT!FRe8FT*u%8-yDy1G@7x!}!! z*kqi0<p7c4*kD|%o4;D}k@988DL3Eypz4AnB4qJbRI>Wglnx3mOPJbvF^~@M&V0o& zNg2!1yQG9ORBdeh%v_UYE^?VWfCdv|1B{C~S6outw{IWv+;r??l&OlUkHeMr!0{;n zgzVq5ZB5>XE)O#c3r6L@u&@oLc<Np8mRC&ud>1DFYS_vU!mfEquy<#U5|fDS4ox75 z07ejVhzS24fXz)!Z=>Yb&xMNTwxch7uvq}#?}O7Ol|W#TaOBt^9O-jTOnBcwh~Kpm zPl~@Xy6NS)_Dn&`)%0G^Rb4NJ^RHXij+M=w4SR&l&dSQFKJ0wBInUj}-o8aP6(l1F z#&G0_gup`r+TPx7>{M$8c5n|!h9y5!`WG6ZU?fQNA_sQ3t^E38*QtM=zzO1b9AQA= z#S(<?{O%NRy4@-7^38#(ym<ko*+KGCdpY`#`ius?q!T<wM)vBjn-%u`W5u-Us?wT5 z-=&XkEKyPkLk`Ct6>vK=bS+We+!Y6~W!K-3`^G;;&4&_{dS(&-t%W`3b-o_au&h2X zA*8kI6cxA^d6Iqqn=7?M<3hXJp|1H#DxkXF7v}GJ5NlAxj6cNR7~SLz&C8|9%%yZ` z^}V$cL4M|f_`}JQ<|Tp`;$2Iqw;o9L9lx#$`PZFj<N6PJ8eKOUAPC+q*!kRnH*4GF z8CA_6_+YkjOx?5Zqv>*Z->U87SD}K#X*b7n|B&JoevB99*OoA%-6VeL-_T>Z<C=|u z-9?+1;@9~2kn%A3{2@{K<K`g2)osmZDC9qZ%0C17NBX1lkSSh(|J-;Xd0xe`p!j>- zyjgz&7}`_*&=I}MrAdUm1ea@`YTOps_J28~=%sv=hNkPq=l$onE{%R5gBKE5w)rBZ z^zvZCjQZ%0S4qjF%~PQ1BNJvp*=PTQC@E`%c5$F7d1a@6Uin=&N9Tf@2WW%et9t7X zKsNh6vkz4lFI!Q4hhBrMHtjD;w`OMi-&8LnGZG7|Fz3=affWdJ5>d71N>0$Ou$t>1 z@xQJ3tVAOC3NfWm-T#9ct5;sN@yKQ<%c#4-iv$D<v)h^^l!D76?|pJhx*RS{CTjI< zZBI(&$O}%|^ZwH`@mD=%48DDz?0cB~e^POcMBcmRrv{_LN9Yx=ig=EOw%zi;h7U8Z zM*WW(u!jd`%<k=)@MV~QhJUU3Tg>xCb(Tw3JIEdgIikxzU9$LRptH-N@kV8XQi{Wh z8FAWwdeS#iVZ_LTFR2NTeKEYqv6WtyDSByCExvwHz@bd>&iz|<(g6p=Z)^>xWfm#! z^7BisQywHI{LO?YbX9N%0vK;3CB<J(N<*`jytn-7%FUq3MVP!%wA3}9ZjbVu0!dSA zZGy~qWB$Z1cW0wKx3TWpXA<J#!wsmWyaZEp7#PB}r{STFupQ%ps2P!5plRoqTnldZ z!Lrf(1F`bYP%}h*oz$y=?&=-J0Z>VWyC-}4OTl?irzpVmiXzSvUkx5y>gdb4LkyRW zoT9z3m%%rrM~4tJfD!e>?&u{M40S&%8AfV{NRlm03b>$3QBJ+RiBEafGOYrj1(-r% zKn}?;Dgg(=CP})FNQV&8m(@=b&nUSvEGud;uiyysqivA*#>@Wx$tdokF1nNZjNraY zbWg#RC?Y8()nG^ufG?n%u`E&IhwtUON7MKm2tMj#>T*50?DeFeqj>&kp_uL?{Zj}T zX-Lt;#}z?zgN?2>_H-Ydo+@a4W<ma3b<jfU_-Dj|Y}b+A>+7_x6&`!Xyk!30;+`*L zets4(x(;<p*|!zH>qY|Gi!1@O7vUL`eOsPcTwKKQ3loDfF9JS9Pm6dICZO$TNIiZ% z{@(A|c?dRwz67*DWMt$NN@IKmS=*E(EIu6q{6V%PAt5o+U<6JBB|l!Kjd`Ojpl69_ z1Iq+0MlVXfM2!H&fpXnm_ud%~5jco~e6~w}3nUptrxfD$j*wzkcOc=a%S|t$X*&{A zQwK4)E6p#~a$ZHgJzzZjyBY-Y*5jXJmI~|udA#fUUalEeODwvP|Ht$#X}c!8cP%hh z)YM=c?h8B=rxoP^cADF<LfcjT0E8f9{l;%VzJ=Ttb=Wo-@#n~MR-dtV-HwgVIL#s! z6)uOt*X+YhlAHOqv-lS-8{CNmKNr!~oA=hHqbgQbX1;DbDDd$z4cA}X=GEJn&8WP| zbIL7*zH(L|T5&ka*rUnF@LKp!H~Yz@gdqea5Wpev9p$ITZTo>IP{WM5zDFhjEF{JT zvUzf-Is@7W(7@vgPr>LYvw)LISREfbt3C~`25WGhHxpto{&6PnBM=+}skh<I^#dDF z+-LyQ1ZZg;@80n5MgB?8k9TCHnY{7$%UloPPpq;=<J6I*tjEsxdgsS1fVvr^WE$sV zPPPT@WMgOV8@ab;S7^+G2jAM;!5vzTyn*Taa-Ur<ElrBf<L*`90bvNY!KsZvwo&Kc ziZmf9qlt5FLFql!!X=mnRZ+amV_v3r!_}RPcu<X=+sdPm+SN%&h1D<W+o0fTKCQf+ zAIULDiYA9vz@hwOg_k4j^0q;Yl3(&1^b$AH6;k>}GL`u~+&a3<l4UN^?;ODPW>`(Z zdB%~xX5;R?;QxS0hIb!7SerK>NkYZ2j)5-pcA#v;B_tjwC!L<29Ep4I;4m_z=2TU% zVS^pzC?F|<7)8Y~5!C_0<DrJ0ZrgaaH>+J?;^!-IpH7E94y$dn;OJ#%Hqy<Zy;m5x zs}FqWL;<r$DGIUl-Box9k`<C3fJF(zUP9(TO7W0zwV-kbto(H4z26@q?=hUgo!4qb z9@@M22`bg7A(JxguA3WC(K`;NS19XMo>Ol_$0}C5!QM03f9*P-?7LzK@6y(ldpVx! zKa!D!4B~Bw+XZ+SC=>dzMQ&^p1k92u21bQr*o>5`GEtA`)a#|nET$mE%*=E=eBDEk zZB7|MOhcXA+n*@cs=9zN(C^eDA+cp?A}oOoB&!q>5(3$t8!7MVF_PWf1F~b!o=+K# zNAn>*TY8|yn;jQ>WsYuAaZ~>q@edpgkIu|=fwFGr>QibS9v+oWHOX*wjLJ_2j<Dz8 z3hFh$W{c{AW<llFl~e_GY{iO&>>EFP`UEau46}#2_udO!!`4Vllv%phZvb1aLd&46 zc4}z+9146Xtx-x6bYHw<ArzvA_U#h~p-l7y$cTzoJACk>qX$J+4pHe}y-$o$Z!9SI zE<nOyHyh6mKjsZ?*XLd}*?T4^Uij3xw(m;}FaS0Y%i5H0kiV6HuO{_YDCNdld8S=D z9^8Z?=V`EPcQsNh@AHR$l92nv&}}83Ld;LiWrU1r46=VOnxTF!oR`f%2?;(5$8mR@ z3}8Jnm@4=iFv_SAzK)}KPW#HUu2>;*_&E{TV0nK-G#A$R(@#uVYMD50d~$EXH(|Do zF4Nf2!XhG9O73mze)4L#uD$e{$=-Q}MpM=;Msn>9{%aNq8VIuaYn%&Dh>kvn%nNTY zIuJFz`sxnmC$G4i8wkbq0THXU+NlqP?@VNx6DC?#ry7R%$)Yc@>WO1^OLz0YEF&FD zaW%Q0><B?61S{jvNw%(RPNi>t_t1LdUk&~lXH6gaoKquq|JYJe25FloGz%b+QC!-i zp)nTAh5f|H%sl}@<m8AdglyR4S4-{@HSO=)@<*oHm(d>ixOp4Bk*C=>Dj>D+J4k3@ z?QP$_aSa{};VD9u^25iEAr4Z&mVw={zop=DvOw=PLg<Bz)77>ar3yFiYB&W?FD{^w z;pd%T`|(M}Rz<|Kg<8#bc&EqU1sX>D@<k?9@z<-7h_>(Fm!Q0!FMGgqwQ4bSYp2H5 zz?(OvJ*Or#uCFEeYf~l$j2J;AM__6g8^1;vZG!-g$(vz%<UI?f>xJ|sW`WnfD~5$n z{cW^N5b*w*zwY*?Gr!s}%A~{DkV_#+&4C~TNgHasaMwf3IjVxcu1c7+G`nzCB#Zr% zj51nA3)<2WF`xw|)DKq4pB;p@a%wz(Iva&N=&ZV7jfyDcqDU4sJ<%Rg`!(YAx}_Es z$vksceIw{%^?@CezYD5W7mSC1V#CgLL}t*ix-g!DCq76W6?BvoJbqn|5;4x3DDj+f zIC_-$T13r!Zl{`~<bF_I^D=o~89Y6cn=hs9j&8k{Hz1Z|`TNI1lx@;rI0&y-vRj>{ zo3qsj7=EFAHTPblXTVqo<aN-O318*3{y3zl4oh+Sk~~XUWMSC6OrJX|my@;M%Q5u1 zoH#Cu7kDcE+voD~^StWSG!!fp2fToNJ%<uhM_Tl)Ili-Up*OFTs3y1_O3CcC@6yh! zs%Pf@G>|&px?^sIZGYcBlsbd_W*7Q1u!*{ye}wk?$?2Z319#MM;oW`6`2hz6Z=ftb zxk|^tfMsq14IU_c!!1A4@=8TpHT;yK1jGEgKEW5PpGogngpla2;#WrELEOg4lNVWV z|9=u9v%fK^$c;JwF;BuscB=8O&7q<5V=Q!DKIOBy%uHs|VorPNp9$zcy&zzqW%!oO z4f30(fuQAeUcx(YwcY*-$95(A{{xn<V4cmUl|+|bdaeO4zDR!t{QoyeF>;76RkW1- zL1x^1>QdYc91{#vuXvF8A0G$C<nYo<`devDFkYO>7^|`cnX`DoS4?mDI<L+Np4haO zyf%iu>7T6q9gKWwZ1z-KGc_`Ww~7ze7g_7`v*g%zN+}vFfkmGFal#OMabvS8F<$(B z4&B?2+B5+DXQus6_8bCgR$9$ly}}?D7b&e-siJ<_`R!ijz_$O8S7FF^mTqn(;gcdG zrme8Lcu>6AIj=t!{GZmHgAG^6{A<r-pF#y_I^rvxT|LbMJd4$Ty}I>x=a1>|qQLb_ zZ$8DX52!riUptqIw}yGI;$NCX=D_O5wnT|4&XG`;os|04fAUpi$z(8~Bce%NAOdOE zcL~F}<U6WjQTPYiKmN3h!jI%DFVp2ugXL+Vc~w-kGRvjkG-$fy6B*%?nbiHyEY$3j zMCauhE26CY)&H+7XmOAqQfGWZjxFNb(DWcaWBz|+G}xr?e=7B-4f(G5KeO}t->s%r zqGEm!uip-SdveDm@5nee{qF<{SO>@LuV=PI+IB&!c*g(kk+y#NG}0n|wJH-O7&*HO zPeg~#`yb5CmS)rkf|ch|%l7=e`Wp-91>c#OR!|Pu&yFgBOoy}yN<46pZ!XgQfA-_7 zNd;@tCJ+pPt>4_B_=LCkDX~0?w_h@hTsKQyO!K&o@R&L3^aXfE(Oa00it-mP;&<QK zRxQq2ux!`Iy$k6dYs5Uh!Bpyh@hD$Hm~OQ2hvuX4OtDSY!V_n7Qs&$+40qpXb$8jE z(3WHlwsKw}#fxK(d7i8Je8Rq7k#KN{a^Mb-N}Si8)1F!*(L2(V+}<?4m^_{1+ewLE z+dq6FA;#;_*VV4P^|iAEOrW+?NuZcW0{I!m%ild?%~bLF>={z&#PVmotBY-0IDWNy zaH)K#CEiJi^9Bo5O!3hYW=d(tC5z%yQc_ZUK6P~ln&f?B1ax+&hpeFPUftSoWwqYn z!(1xy2}zDLI}E%QURTGW;^^qeA5_Xor7rDXw5_+*<qZuo^2#TOlRtq1NZnyt*b>?@ zr&d!=)khAo4pMGU)WRX>gpL3o2(vtp)(`d6OFI^zOCT3XBC-&aWu7A)ydv?5^bqwm z<wlI|?kE1DR3y74ELP0gUxtAiQ^idokvoAfOq5J0l(`o3`TDScnMRqZ{jf<mp<78B ziNFhLo0Lvvdox?lF>+@@7)c;xjYV(GQvsj7x%XwhpC(hmyI88S@~DNzz4<oUMHH{6 zpM~G$-@ku<dw(+u;2~<fp&bN9B~(xH8%Mj0rw#P<oa=2eP`*HQ=SE1#RU~`pQg8*q zK!D~Oh4hCHg?#oN-k)><bLw@vJO1$!*<A~+9=|{P0tb-sKZuTQ2~=IOK~&V{Wa$9v zj)Zpr@O6{pX6D0fk@^y$F_GfF3E*i)>cODsgfbG})p=q{%Wt<Yq<$u>>AKEIm$K*K zl|Z2llCf7iS4yhNJznhfXl*2)5Go>-AhMy}L^6C9cXG`chYkzEunuA4vA^6h4DE0? zbZ@0&_KDd3?)fEFKTXi2#ikPf@ZmmVxK#0y-E&j4t(tc~j48df<)H}`sOa-Stxz~Q zXP=G^p)KstNMbztk{wMCKcV@wY0B9))Qfc{A|4bE+yeSIx1Rh0PR9W2UsHrsNUGbq zU?Hab#YWi6zi!)&5tE`8QKlQDbtW25b|S-NN4E=UPw_-f2OEOsI{2-rcvv?`7Vc)p zANPD?o2<G`GEUSkQ>jU}F_b%9R!nZK@L>33%wIF}EqO0K-m;o*ik@-FA*kdO^1p!- zG6E;n%T8+9leHxtRW(C54?ER@uX3IoLTdXQ=@y<m0j#}Z#frhc=4l8{Cz?j`ssU9M zmsoD=U!=Vm=_EQ)01?+Ly9BZDNr<Y@W0DCqSQI)-P*#X}4ApvVYqnGFK10L$Ja_v1 z5~64sbt&+7A<?QPqarWtfX2PeqK`~U7aTj|e6|e*T5D@-RVJW*_4ePy7QVi`;F{y| zVRO;$NVzk8{?kOk+M(r%9IkHYT^|xSJGa(VIyyQiI-=r11lXwhC+GZnhZ>IP;peHI z(^DRd_b$AaP%FfAf`7>EN`{8B59}IJlrbdwmepOz9bK=OKz749k&4n82mt&)bgKBK zdV0*3DOZZ*Fi*6Srw1DG9sUB4oB|mhQo=s{2aa7U1FwPOkr?tl-4ceRnMh2bo~c7A zsW%y-B4kTXU5!b%l`ji44Yw<dA%-OSqUX<_lM)A1C{O|N`CvYwFla_%Km_@uq^!pO z)pw34UnJl2mi|#_D@pFatT?fWI{@qv5xWE&{RscT6;MPf+C*gyZCGDlYL_?02?fyP z)QHw%c^j9X>U;18caOjQIo_;Dr2Lqkp&w-?)$bdfIiW{Gy>|&zFY<X}lQKI%AWBNu z*q~JjOe1nwxvodghR^il4F}M8hQ>oHh;0(|i0&L}z#rK75u1*_eEfddrPpvkcr_lk zp9Ms|h{4uz7^ujp3KAy>y+(w*s}uaAlczfrfp1MyAjih0lR;l!^`nCh=ojemC_vwk z2dEitB=*4Pem&`Nj@7+k6(?bD<<b?_#EBm<K6VuUWu2~Pgzgr4hD9~5BOj1@P5ty$ zOpUqr)H#(t$r|k<L@7?BXaPJ?d*meG9x>mT;J&kFwJBzNKBVKsy?;CV;X#lg8x2y` z<>*CMRL@mY1``Nf9A>krf-ZbRWo2c6+^=E_G-p9qj7jZzLC<^$`s`kI!Rv4HCwuHr zXgkvW>5fU1oLwrknV<zt-dyQG4G)#$C5qiFSBVdgY5n<X2~qfzM9LST%nX^TyweLP z>z{seTy(X;{;5k&PhQG%GidYer^ebzUm^VYQ_0BEXDEAPy@*N>I>p8z!Y7u)7c)eK z-Z<O28=5|26-&Ns3qK#|9m%{AX9lw18nj$3EiDk;+7(`AP1H*!3fk6w7p9|-5kclW zLdZi9OE=+cZ{Ey@l7?&?$gWziHcP<>I8}Z$B<%n2b|!AhICrja3SGfj;pDi;G7BEi z9svk4F+Io!K4(qkPmkvl8$^ps?^MJ=Bcmo1r5Td7xPI$FK$<|?f+{GMBl@h{bK3=# z=PRqXrC@u4EjSC|qyOd0q}>1fJ5+7A6+LMREwnT&!b_u>2I1}?y!bWw;hNYT2kyxF zvVek!526K^n0HK?-KUOc%P^#tBJwGMs{_|~9BqglhoW|`wL|L#{gSOmMl3$W7>S99 zocL*o4Xna6G{h}PiLQy{TXyWJKKk*{{5Fg}8Ny+|zbQsIY|<5kMqI~^&ubht@s^~| zfe7{ci+H9R`#ki}cnDq-m*i$<W?s_T!!@TK3*hp|K$fH@;}!UiC(mL^@1`f3DD66+ zqeGe&(5!_GzsKQv6)0PDz_^2m+0ws|nP3TR?Y(>V9y;U(=4?y<fu}QlA<IT|We}ff z=K|nq8XcY|tO|BPNy^kh;P#Q`eG&BG3YYJb*mwSX_Xy#Pkggws>Wt|7!kg`(k9pJD zPkf~Tvv`Td&9=-6@0%~9`TvAFyoRJ53MwE)2u(eHp67`f69u*H3Z*}x_e$KpOK`G? zm-KSjAHvg>m0t#vIw~(Z)#d>;oO3HZ{!7X=FLgvXi7#w-dYR(A*x0pcTGmi3_SDB2 z{vypr94faE+nVeUl8H!pv4<YqHWOcv`sl}VY|Bal2Lv9zWKlV)d@mMvrao&2u4e*d zXgi;@@NrXX$hGSpp@*k^Kn0RE6M}m{zLrmf!rL~3%!5K<5TwPEk!<+ghX{B-SHT!p zsQg^9hD56@g=nGmOnib1mi1>g61?*wZ_R>bWaK|CyIQ@<C!NK7KG?9>o34G%pc7W1 zX9rz|Xl^yF_D49XL17-IYqFSY8w8+H2oVs*^||*F&7>+5sw&}J2I_LE*T%O-K5blv zC#Y*ZyuusF=MRaU9X#LSJR)RN<JUGYsDlpguvk@PWg{A)pfZ<(l62L?V<_ueL80bA zFGYH1`ueK~wqSV)NqcN9**<MsXR%-lN6H?nk=^HK?3Q%CdG^C52{Qxja%GJ~D5MFe z%QdANPrh0V?|5tLsbf~Yn(pqCAkdydT>#4p0LS%Abs^xd|56<+2bT>A$uR;$rjFL~ zZ;z5TD*m9%pD!1#%D$VKISPNwfu>E;YdX_T?$q(wZ0y%JyWAmN%ob)}o7uuU)Im)E zccGN>Nc$XNcS!38h)T^vPSA8F1J|I6FN>D<D1-*cOd<C-vVXgV)I)$(B?VG%H%hem z-|C^E^DO?*qO?d;@!DX2=<&k8uY;TVfb~I<#H0DHXw5%a0Bs`xW?r$+<T%5}c5L%O zK@1}BqW(!08Omml9E~h6jmShA=d>Id!y`8W^pP?6%;uyVYyL?cd?SLyj(yrfE-B{N z4DzHqmR&&0wkDihp&lSUhqA#g_+@U&DxFT_19+GHnRgT~++0Gt*XR2_fn2L^%rSM9 zj-5}g1(tk^3oooE#zA@c?M)#Qj;H*ct%xl5Kj^%~RJwoBnEm_VoUQm9ue=o#mAZ{j z;-U`uX}0zb>TXZ1ylT^xM~jlkH<Ta4Os<2wzx(Izyv{BkHU;)H-dfAclX;lD%JF?W zC|>&4GfB^EO0}DfHZCPezu9cbWW&b5Z!ohGdBf$jo3qSUA+DdyY>MkeH@?fX#F&?V z<~~a4mt>2%Y3Y@!$m@m_nlFy$qe_QYkJ5ff1#177l~I{_W=uh?`N3Zf`?}~-B8*6A z#GBp+{?&SYY_qj7dERMqpYQ)RvFufZ6rtLdV183>|9P3Q%izpSmL8oc-y^NVBzgGF z<cTpm7xM|fp1kcP()Wf|FM)lo#ovwm4$>0in4R<KycRwAJAo$yG1ecWt*w&U-*dCv z0o8*>OwQtr6J!`vv~uBW0iAZiYk4=?a(Y>^%;+R)*P3HGaYd#HS%B_6taM&m+W%H) zaF~rO8sjtnO7eg}ZmGFcU8D=cD<S-sm*@T+#Y;{V&7mX7V^c%Q)xQ_|pOh72&zpTW z>OZWWsBFSaecf-)j4968STXx>HtnTYmd>mSZ~g1l3+EDhJLB*^-Tm+3i_>-sWqJcU z@q+$`UJ_(@MPY}gUNqEB6>s@_ba_vH5fT)}%<|_|3nOL}7Jf|sW}9jvw&P@-0@=3v zJR03FwwbQ>Bkk_QzLw3ZOH6OfJOl<I2a{Xszeb7-TIre}ZExhxY7)r$8u?vd2{=xM zeWaO|)BoGkV3H#4WSf7!cQKGlajoJy-t2$l4HScETblA(&jOcl!iDxGf7rIG6+Lai zKZ@3Wo!JFy=L2a3*Nm~+xy({2WxO-aBW1Vv?2@-FoHY{um(TutdZ9*M^;+WN$9t~E zs|Ar)l-XCX`(Mn$8f*K8qW;}!^Tf#C4ECA%8~|@x=hrBqR)K=eM(D1=!=n$yy4s(B zaHNOEy1MBo^#bwX1C47GD&vrK*>pQN^+qOKyAY#G-f=h~HdaPbBJy~W48up3S%M@w zK0SSy<U^=a?ST%z(byO;l<2!5W*|rrdHQ@lQrkgELes5+h-N3nD4R_JpXX9RrZ&rz z7RGpo4f@Yd(w}7yqDc=WDPzOg1C351;8j<nQ+5LIZla-GfwXBL4S6u24HUo=khp?{ zjw<Hakxz*RE->G>=ECXJV_fuJ6Ucn*_tl?UxNsqn3rwMMRWmsR_@=sKTTE)I<fInz zN>`?PRy%b>%<1^>dQa?hWFNl#6#P;l&6eEYtKW|32Y9(qL)-a$A23}%O7CR{`1~6; zAT!B~g0dmg(eYs+8?q&5IiT>WPRB*zd~9~F#JtiiMi!O*LPCsA_2qH5?cX6@b#``= z<692f5xpT^gCsZ-7JC44ak$GC)F&aP9P*-HV%b8E#GO;6CeOyOVQdLmP|kF_dN!bG z+9Rl6zUyx>)y^P{uCA^)%?MIxMU?hsL87~_k7zg1r-{==D)rFLj=J#}60v-=uwXzr zjU|qa^{@#QCc|=lS{aYUDRe33Fm|K$dBV56>g9-ze*Cx>*Xr2V^kn1>B~^H>HG_l~ z!E_Pd6;7##v9ac85V)k)g4AX;S~khyE)Y53kO*@W;jX%O152({sY&^Ezclaq4zlTn zkG~HMz(lK<)WxG#IK@)J!iqeaq>GR%BFU@6D<I#($rnD2x_7QXSPh+F_G7SGu9yvl z>9G>U!BSO=+owprIXs&BXV#t3yrFAsdZ=oK%*dVGa}c+NfSWWoLnL|V5Q?KIMN*;( zCT=(dBcO=uc=@r-?KSkoX9}KZ&YP?<v|G#v1<!r7Z1VYFq2w=0x%wBiA}=F_Y0`;- zX1ZM98<H%C&m_w@Wv8uSdiBFQB$T-u<hYRYM$j!@4c_3em{ap{oK=EOw-Xv%_ft~D z(_S%nxq)X|MzT&hXy3`HKES7C0JtnKA)y3b8U^2!L)!GATmUbDR;4X~FMIANoZ3-~ zJrw-54T5}fng$y6yU)7Q^4!kU@;#NsRF)`PFehEHm+6ze?7Sm)oaz#$>-3$_=er0s zzrIEZG#A(%<+>jquP#6joVkqD<gqJEQFBZ1?YO|w+10h*B%IXSkYRT==TFaOw9^wM z(<hpzTAS-JE70z=J&T$=K}%j6N)0f#s5&DvC9UZoOMHh#Yww+4q?G*UpQrm(aL;`g zSwz5O&^z6ewt!^@Mn$E?6zD=9xSl&_JBwBwg6BwqKphKDh%9ulM1mavcL91}DXQmS zvY1zH`hs@%^&2;OAjw8C|0!CH(6200HG1@Zf|LkU<F(ok!srYRHY~9Bnv65rGq=<n z^yad^^Uu#WublB<4s1O3Hbz;#4BBdZ$gvFY3>Zezp)7H<L|%W3mDqE8>(lgfC-h;H zellzzoWy`8SXdr2^1264wG1IvCWpPW@)!^Gj(b$n)?PNowY$#R;;_R<DYDlU#B3X7 z7&_{Q+ZpS7U&%&}YKksOl|sUOTa6zNLMp1St-ToqQ#JmjDl;eLAepQ|W;jU>NWu94 zT2TsQDF{3tytUTxjWzg>SL24MqQqrs!J95Xt}|Zo+;I_{fy>1o<nSo8Y&lJ)-Mvfj zH)%xzn-L)q-MLa_eP=1(Tv{&h#18%RK6ln!7)<+X)?F4k{wU@1*?ZtXo4y`y&dUW! z6)n*raO<|q#hjJetZXYR7kCwG#(Kwj({-zgua~3iW<=c^KO-S#_BU)obLLQij*E`b z4f|IJmCS@6my4^>3(2CQE`O8RtLmEwo!1qO%f~74^*TG&pIpI6*=Wq<KpWKK`EYga z6>~cA4cfesZyEYCw@@kJxc(;RE>^)S@sz>q4jF3c*W;2DN1%`ZfR^R{7Lr~n+9Mrd zWuuE0V=LFA9}^DSE$qDc(Y#_WG!QVZdq7`Wm9a`w$;fZR7#+pZvox_^NXbXWOp{WI zSPl?jo=lbT$J0?>x7Pv3t>>CU9qC>`Z4=;dcr`aA0^q`uJ3yW)z7-P#CuV=c<)YiY zTTCyE8aTZ!UcAbHikDKozx5pIuEyJj$vMT*dzh(WXUyPJayr6|PZ_t-k*jG;I^5At z#B;h-8FhBod|BwI^;JpLzlcs0f#Qr*IRh^|QlpsC_45^`;p2{{<ESS^rUHFcceH2* zxy9!R^03p7A^ItTP_AZB3KAo92)}|B+;#BB(~)e@BAqxV0kXoZqAr;B&_X8BbwC<U z5nt5zQ_+q6v0UvGmGvDFVD}{79T#(S?4Yy!C|D94n^99Eh4W!PpwAAcX=RdzU)Ov? zJ-re1(A}|rw*hTv)uW|sz_Ud$dId}G+H76RdN-{iZd;1fqj{FD!6)rsfT2Re4aVj| z6nHKLpw~!aw~L$tcr=%sb6Jh>bqL;4E<cZ4oo}Nir<%7{X)g7`g_SC1gw7`y(FyW5 zSu_E?X$gy(Xj_MLP*Ds)1+>T(mjc3WvUs~N)Lp}(sOx>W&P<8(A8*`3b-Q{Tvr&EZ zUuZD>SLZL21{ECtL1J!l*7xu?3Ko?Qb(H1kiO~TmhpeFEZ`AC1aBd>7>AK04!*pI+ zJ!s=cWAY^087q;sGl<0}CEY<co4dO^4iW%^faY&z+3qK3jOar=uxXxZ{?<~_8;0B- z-4BXJPmgWa)cgpqwHe(4_)+rH3PwvdAo0=|eevbSl#EWJ09AU7bge<BzelDc2A$`U zP9Moh9nib`vgkfOlm+Tejh}cpocz$T%lP*`=*J$v-<NGcs9+GiGGV)`Dk>&$#>ylP zigW)SW&y>}!TqZ50df^S`p^}hthOGKR%-n$Q}BV8jZ!z%(WwMU2TVl5ic8K{$1$`< zkcLiGCPGhvz?XrL)l@tS8Z*d0ra-=g$vAeRrI8!8tb~K;T4DN%L*39%oQTe;L&nCW z>x+=qIB#a!;RPMz1jH0oUrJSwDSTOODnyla+sOwqPzt9kPUlq_q5U}x{{vAw1sG!2 z9S$8B2*iNZ+kTPrB|5L9=!=jpe2Xae;rRR4&bC}y=YeK#5XVAcyPLpCpx`E9{z3gP zTR@Q(@D!NC>G5t0MWV2SzwU=r@bmZ5Wi1>ZJm@TsGA>l|kJ+|I>h3%${0ZKOJQn?A zV?>npn&6E^d<{7N##K&{obCZKdKEg&Nb?Fh_n=AI4dSlPuCF0$09ug&a@Ge<3u)o7 z<U^jVG6WHffDXmGuCk(HcevyRA1E6qhI=A}#vU7HJcbpkUR+c=o&*)*MxVg5BAUxd zZzRi0gi<Nl)Ij1*wg_j^)%h*|K=BSdUoE{wRr<H7;l~(4jiV#Z2t^<qQDO7@9lEB_ zPi6hXG7~MsEGmZ&9|jvUg2M&SR74uhU5%@-Em&TnTsQGuiO@3aLYJsBRefE<=OzVf zqumPQS*g!?)^7~Et}Fb`-|m|8dCbB1{o^+-pvqO4W{9idraoY<Eo}ac&~4p3Wd9Zh zPHHg#@Hm1j&-KtSwu2ALHKYqJa#I;#u2B-aCF5wtA5_ztLJlzW0raEt&zGv4(gX_L zJfLA-%dWKK^eu|&=%`L^ezC)c1yLNWLa3l{tE}8+Z_4yF-1>2C>vEK(gz7X7pTuE6 zI4ExnaJ#lO1@JFwvfF~s$IiXW5CmB<D2n5ei(Yv2T}fKNs6IVcLO>rRM?#~-V&?TU zbuO68m?;^cv}UyS!AtcuW{)5`->F+o!aES#X(&OB$Lp%eQCBLXXjq*_Ir2B&3p{!& zsQeWHMXF4sO%TUyj80EAPs@T`1CmLiQD~Hss({P31xlvB^_gSnD1%)`kA78UmOl*_ zcNiUTaG|Sk?1p&QAsmWhX7&w?;z_iW#&Pc|$3DW|vI6=cUI<6WZGwS=e9T9^3+z`} zb>46qN_Kh%%MA9&o!_>JN~$cMQ+lFf(Z0oIbY8lW*pTExa`;S&>Dz^3IV=H11S0@Q z?Y<);m9}fG8Hy_8(3M8#=1HJ%Xz5b1t%(|Iw7)ffD9P>t|LVJ-0VyS>m#khQ9Uk+f zsGt4vn*)}6gCl$Czi`0<aC6v-A7b-~92GkZpzC6@wB<tVBv-o8io=Qgd`gKL19K%_ z8Gsa6jKcT@PJXI)Kg+2zQ$DPdfD3J`z!iZTAE+v=yUw8zfucKa^(Bi<^^8aI%eT{y zNs350&GV|tN_dk-7g$Ngvb=(kZrC;7YTaU7%-g@n{3VsD(3MB`d1d6A&$-xM#oLGz zX?`t41@+hyCqmg@a$$I8Or3s0jUSXL^PggaUm3Y_Fq5Kj5q#!b7E($vMTrcFR8VIq z-QACuEGVz<dvq&V=;|(GqfxwCe%KzDFHu?L57s$$D8;0;Jz~ADi$^WTqmJ;r=A**; zw%mzhrpBMQ&JOgJAbp_5Sre~Rd-hj=Ma4Gw<z3}>-c(t~kserr*CBz(0?CzLRY&hh zD?Qs8-w}Bv_WV5B*L0K$%VWw^qq!?gl1zA6?>^r5n3JJ-U&@`5bRFnZg9jJxzL*AP zV-*7GLMb&W+QoIB`I^4kg~y(NCLhxP0~xa`l=`7x7oLMJe)+gCNO)2yK}KA~-b>@P zg{jo9H+b2qnUr)1gc-jzWI4xcvcj`Y16<6uU2^9;Hd8k1**c}>yjZvMLBIJS<fv`y zu~0wf&tdgqa(ec0z9TXg5nkFWu#G$ob*7gzPT98eCdbD);7*o;;JC4bj@qO&&ujJb zkUE0}WTvUoi8Fykd{pW~Q@`UN?23hnJ^aN_jprQ{yu&s3%sP&%7c#I4RG=MMX#+KO zuTP>9!Pl%XU2;e{v;=in>FlFrtLG|hv8+`#V|Yxxxf3&_dU+e?3PKA~FK(~keK;BS z9Bd*P?%KChYOMZ~AFJ+m96g?MP>;MEnHsm<DRWr*Kc$~3Lu$-&w1s2$c{<C3j1j4+ ztG?{F>b*DiCY5?pZ&UGb9&a{rj1PS&YUO><LQDC8hZMNhZ1<{KR*p9y<7{I#Q=`HQ zf}M&J&K(hH8S`DjhzX}*jGM3Ll)9%S6c?#eED5V}#@7;l=hk)lK$Fv>N^5uAy!Z&{ zZx?{5m;1hrbBj+FSz;SggmsTCrA+mlA1gAZ6vZi?-foOrZX>j^qzcQNC(W|^;yUS- zOfqU&W>zq8o%D(AJG>@&LmyQ$QBf;zz6n35F77w4MyxSyEeKrL&XYM`n&*-oVIINN zL;dU+KQx11kE~s!<Ug*jNtN!7ite>g!a`@!kd+LO)sGdF{f^Je>%2q=4pbO&E0(eK zVskJBDb=<HES~D(rCx)t<@{FJJIby6D3yK@!kECDWa%XQHd6BXt4^s9!@&+e!=Dhz z6v%u`*^b%N%B{98AYil6JU?A&X3AzaUaLEzhMw1i%OsIekqW#oZBk-KPoVRF1(gyg z^<7Dg@lI0Uqm`L3Ed|1MUcK&3br;!|ms?_QI^*qh7<fN7W~`-Bn&UJNUO7TX`<C*O zk7t;p_QW{tI)KC(&$N##itXW;F4I|t7^NGnqGG=7S178ngapt2G9qh@#%p2~!~1v0 zVp-b!EH*7>xV!yWl>@!o<${hl*=vQj$WJd21b>!^@+#XvwOuiNk}zX>U-p;yinK6T z(ya@jqm;P8`b$@UVZsg|)GaYO&ZjXBXD9<@akg^E-U5Be)+MIXwuSDDw4CJbd0ySz z1%@q@DauDwY4@4HwbW^|q`w?Nn!}tfPK3D&ubtC&bh<BViIRU|OBhGe9F_-1W3a$9 zhcy_N@Og<+b+x&85Is^#Z4g;S02w|kR@T-xR?z)Y{vfmS?$tH*y{pArb-ap!OXu@d zR8$Bqo1e7wYeY)OVp^%9^<g4FU8R&%_?)|IUUO3%KbWsaD$}zprb&&`To}C41tR&X zcOIy$gnFRU>cV!f+h)1jp5&(vM;}(z_413?NE&+dxVIwVdKDB+NYmqS?#dyYae>+` zIsWW1J2{Q75N!!KTmsYqWE5az-arm;cBHrQb-UZ@64Y6KCd^l)#2Zv)9?m=BnOK|U zx^~iz@P{-l(u&HeswqHw(kQ$k?sm%fEppD_banoe)Unro=wyO~co<m-il>aEs~<%` z$zg41B1T6&L)hu;cYo%0;1xfXbXF+robZdO(EmdJU2bw4_(<9dP^0$%ci@~mid(0F z&O$6jles8FCc?t25bYeR5060FLJm#3>W*@&j^%d<v!*oX&Uuo5_Wdo!GOAlT;mBH@ zed;@ft2SG{>5<OVqe-;dV$$hxHiSpNzwrc)SqeJ)G%pVo_$WnG1xdfIiyXJgdYnj! z=6jr4ic|ISuka}5p`~iEM;($<MQ-hcO><21Z+%+rmt$&OD0EiNYjPdy2MBQf&gfOI zUJ9+Nt24CCTH~_`1zKReUe5XM=vyLUdX!xEnS|fKt(eiWgo7Qk#rD*`Lc;Z#N1N`+ zE|IV+Uv5S%478h!8=hMuMx%oHUeTBWu)*(%EQ8d{k=8*k5ucbij+xq*Y=^UCNIMg{ zZ@8<OS8x4^-j#=s9?3y)!8!2)>Vb<a={C(xZ`;^-T{~W#J5j+|Zz(8AjTct+)V~6) zS8k9yOY1!-E2&CC(K9(YIckfI0oXd&22^oC+o+g|hwWZ_9oVd~)o=+;ZLBc7>i(TZ zM%Jg>_Qbf;eU4ed#FExq;b2LLTh~`5fn=bG%<ghH8;tBEk<{-pa3aA@X=!QAzpFC# z(TCrF1RrHSiJ^A%hRf$!R}15B5X=1>p8%f(1%UiwcPiyX%7bPGd-a7~JD;n0efVph zL;~1I12E833B*+3^l)^uOU+SVoRuRr<d#F2NW!N&<(v2QS#_6_<7bJE2Z$VUpY9~- z)J-T0UtjurPH92sO1fdat1U^=LXfiv36Z0L$x(C#Evj8ro2g<|rxKR=VBqp`!kH=) zZ0`qTCQSF9KR-KiR8x){2g8zc=eXbRZo=+zk;}s_Aju6mb;dL9F#7>rUE~+GZ(9nD zx3(YXSycL_Q;P0IUh0txw|y9R_lJrYrTih$@rOhQN1LGwt)zG7|6=dW!*X2Lu<<8j zLW&I0Oo=9hG$%!fl&CbJsFc#6L8W(*A~YgNrDO<=5@|A5hDxRe358Hns5E}(^_F4n zwZ6UAcO3ip{qx)JJ`TIp@Vw7^KlgB5=XIXvwGewOn+srSP^fcTk*UY_6b1m2?d7Nh z<h2(5;>ZF5cnCrU7)E9`NJr0~Kd+2O9}FT3mc4+-bLSktx__nGxLa#MC*bAfg@3m! z*#5!p%%1i0N2ckuj%V#{&n!`Aiu_mWDL3Wa9Yat6{5MdMg+p9(Yz8pbygl0wknV8m zWwSYNvp6Zl2qUh8kV}y$xF;)Bb>;k5Sz5+Texw451>DaomQIgx!={h|<^k}nnr{c9 ztmk~Ev;^UABT5a85rtmFO*wRE)Rg&+z+9Tao>^K@p7v&Y)2LAKN78>Ng`QmZYQ!BE zH<qsCdk;_0ZAjIQz&Ee9iL(2TlP2>sxQ|)Tx~$gg>G+(E?GJ%F!IQ*0f!o`3-J{!( zphAn}^`BTVEsG<UCq7L>8AQ?H;eE!A=OCk%6|!}Y+i+H9;_C=d*%od!8mNExKi(Yq zIL>~{7Kjfsusr0jyDUE<9R*39SQw}1aj+_p-k`d2PjA61|Ao7Up#*M^0>VdZGT@!$ zl=7|tL^xi6BSSZD=ai!HEo+0;jI!mJBmQkcltkN=O!FVrk+IMbh0*i_JPuR<m@kj! zf99%ugq3`X^LWNCY(IlD`Czru;7~<2A2CfY*|bo^xA^5-_9J{aj}1f)YwBGF<bFC- zUm&5p4L%E`)&1=JLDuh&j}$SzwB<pO?F5nC#H;!8Y)96gu*i8SRq-;+v4y-mA_l%m zPp&ikhl6Yk#D|L9Z7b4xlnLLy6-)RK(SwHoTM&b(8WX-;L8NzUo$88*qX$_VLf%nf zV!$Lgz_DlYAC2Rm4XMAmcjmVOX6~Xn{PA)upHG?`MOSw18g$!V`bzDc*IV09d0n)r zIDCXEP(<|PjEC?9q`5Trso)5U$}KkBr*-501d-u)YO0vMna0%u3s1KXF1iBn7Wgvj z!dfFE1#pOn;RF>CnMU1~+xalh+v9;I>cK_MN$G|Q#o}i$$5t%lSzq80JzFn^qhbu# zE&0%K7Vu>S0tAEpk${`yAk&1=;e{1@`PdYc4DVqgg$<>DaBj)r(LOUgO&v#TWy-m8 zTTqUm@)pVgn<CBIBI3Feff^j!a~6U7#Hr`n+)EiBCFCky>6bIN4_mLk^f2$(pb@+U zJ;M~1O>P5)^F0n+@O_?zz$OmTOV~XbM)N$ZJ}4n#=~y}Q0F(Xn(lh(P>(%W)z8f~> z`k=;w^wSb7hfDxd@KkVs?>PLS@cuhn;LKm(>pgT^!ab+yOxf4_hFpWv)OQqRmFz^Q zb&n8w=*Li~kpn3g$uf|$o0%hcfwbyvF1fp(QG8x(TFq%~HY`|B-e+h<+*I8aOl2bc zMB!0G$u7rm0fIdVj+`BMD||F!(`#xrXHK7CqM9a+hb*QX8w9vt-4J+@bu;Wo`T$;4 z=6E<g(9Gf~UC%XIL-yc<Z*3Y=_S;NbFdMn3?+Y2hA<NjJCE}YPxafZ7*YgbPVIF6t zHUhoGg^e7c>AkZYKaN5ULxIW}pjN_EwCUb(tQJ64|NNU3HcVvt`?f!x9==|5>)Lqc zgd)l|ss}aZQ)$``3BlJt_}9}lsus;%awGf!;>A+ybvC0zn{T>r#awjoyFE=wip6<A zVBSLa?xPp%7&hFj<2T4UfvcgV%0M@YLPv^Mqb#Im3@Vch@nYqU4>1<lSj5E>C1f&A zW34HmN}zxr0iCAcR03>4H6@SyFEOwgw&xe4&oehpWpG*arGzUhz~)Gv3P26<k$UID z5QK_|jfjRvb7^Piqc}374ysJmwZ^QC2sRPtWmsqD7!2JzS<rQD_aVMYyCP78<^nLl zdx6L6`$o!=A9V+kTY?D3CI`2K_?dz04F`UEaWPH2edek>3C8yH6$ys1-OfgIv4??_ zLw0yz80+Sdw<%od^=musD6GWRMjS)>8v9^E@+>KY-zR$??ZhLIHA)@Hl$`}&@wlG~ zm6H)=P9X#UYkaJdDETFeczMC_H*#IiWCXsm8eDmPYw0?a0vOv0G*lqIYD-<ALdPdE z?J_WE1xMLdl6{kn+H(i-Bw0MJ>}1l~d!D9iG`;~S+IeGQK99XmqZ{rJ$AB)bj$AXG zqiCJb>Cx84KI*rp1!Mr}y3hOZBhL17ug#5&B6X(C<zwfW$An&-8!@OcM0U1gA!fms zuW$qgGPU*fE*J%00{3ci&|b_?+0l&Xkjo=P{CQ4k-TI7a6qVooMy?h*e!}A;3%cLr z)tcveIs*e%DEPi&w6@lQ1YXAWh;{Hzjv<1)jP;|f$`kB!<Q_zy%7^o30MF@_F=Pjz z`U1gQZbQO;w5tHLbvB;Z6-DQZ=QEkJ&qKR<@3s7OHxY)BaY2#I3??g((f5G0<pqCQ z0J9muGRYH@bmA+b*IHOmDcuu@6Z@|5XCeogughg#anPjt01&krrB9e(k@L6eg#GYF zj68h!)Qe66+)yyo9mgvOv_Q*%19Pfq_Tr&?C41zp&x7Fx3t$^mj6qHALdgo$PkjRe zm-404A%Aaz8QwEBElTc+?vJ{Rl+T|>^ZqyujuZ1XPg)wi%I<Mw{?}7-zVDY;{jryT zkes&)WBFK|9$7AefG0%phSuB{-g1UU#;9x9@4L}zHh3K~bt&Vr_l*&wQ5R8up?6Tx zAF{Zk%{#t4P=MX#4Xa?q)8O=_2iS^<-5~IB@n|OQ$~@yh?na4YO9J_C4Pxe!QKbUf zYal-7xdA|Q0U%JXQDH<0E1!Cw`RWq&ieH`yElF1H3m!_mbNKyzDE(J9{f2Q90XlX8 zFNQrLA?%1n+C1C;1DXDv?fi$}B%n7)xUPgBG>t&3!4CY?yIk}xHkjhkrfYavZ_i$~ z5OmR3Sw3Oq<ST<3+hdK#@hpW1UUw^(N!t2_O3#p@)By)~=sbqOCsP8@F1>B!$vHN^ z<)9N%AqX{KF24h*1*olLoc!)V^kpa@v8^mg+vf;tZhU$I*0CwZTTV*QqYQcGpivry zPl8^TJV&+v)jzH?<*q>piP8qGY9P-ru(0^xllFJicHT=8>(HVDBL(Yjg8~`rp=@a4 z04Jm2#(!au)_%vR3ktx3ao`Y}eEU<A(H3doLXVWaA|e!08l$WrRQo0I3hh@ony$i4 z8!C*nkGHkNW}`-h_#fJ7Sa0mXcIx=J_X#Kjgr>ge6WA+3IsLlT#u3IWx7)j#<}hV9 zM(mBYJ9$Lbd<P1x2T+hjH-Lk;<<-9z>-Byw^&^ZPXL3zf4QvPZ@JOsYex==%9NNi^ z4Z?QLJM#FO3n?jWBQ<bPVeXc0(~@R*o1DazK<)W+F)L|Naa$XVC~4=$Eq<Q&%<R$2 zp-AIaf*64wBW*jSzCEVaJDk1MPzv=@z6(C>uHmWIUjVUU28Y^wP<5SRt5ZMb`Ye=1 z%AH}8mjd%;IPHBvqPBbD<EKyINP8+jKOYJOFkZmpr+}N>M8G%Ba_V!=z5<;xcCFEn z5D2Mia>B)#xBIdl(os~!$q5k#ey<e%XrOiYK5PrKBm4fgbxO=<J5|(*aAYXLND|Yw zykZ{F8&Fgi&@_gZAWryDooR3__XWXQdR-<IDnc`5Ww}LBjYkb+SV7*|vy%R+gp2uK z`*j!k-9N7QWeE;1FpaP+wMCWsoCd+@;8xLHJu6if?bJCpb5Pk45B~K9_f9Rn{D%~a zL&&b@(BtRrn9}o5ZpRe?C@8-u+7*I?meez%NKjOflsO5icy0rZ4;m_rB>IrD17-gP zl5FYe+3Tl1ya$(6B6c*$>6QD{YoQFu%<>reRl95Vv9V0qx&Kh$npuq+KQaiCJB28H zI7{dR_Qf8cCK+$y(27Yz-6JCs7_U3SMw~LL(cmWqX7<>Q-VRsqSU4_H25#H_+rZ5J zl-`{9=dzV_kPYI&x+QvT6nQAhM!D(ogr*qZceP|#jo>-RBLL^QfjTjrQS~`U6wzV| zU3#pWFH^0TNApAaT!hL*jM^QyYR#JQnmW_Q@;U@U?SOJDHBR~}wQw!X(G_7^8Kt}) z%~eB~t}FJJUns`!?rMMVSm$K&{8G$-gD}g@MS=pBN7dKE;0M5#;rfy+7<GVM^5KIf z=MSp&IA9EXnqYGTzjV4yba=Z*SYVZ!D!ZfRGl}!Q56;k=um1ctPQy8GFZtzOER@>K ztvoHKcLZb=I-DDj=%ar1qN@gUjXN9D0g}8yQz3r%B~XtOWRPu5IX05te%7wo`3-8* zFmC9>jM*G=k6iKzq1m@y`8eubm_ojA_QTToG%>p2qR2?5BQyN_*P#uk-Q*YzLlk$N z)=$;s+^4k>2Oz{iV?-fEnB%|g!MtaUijK=9RzF<%VHfDwQ~kHWoTjO#?^|_k?|lDl zRd#2z(*#qHslk=e8Qvwxq6<OBGBGv%=&@V!qIW=U)UoK!K@3mvA2XR9Hn#C7B@es( zZwp&H{O<$zp}G(Be?Cq2mQ$479XL0D=&w-Y_K50C@Fl>bJI%f5d}?X|Dv@Llj`AB) zd)y3q@Eq&BiMrS0$9}Jt_8lBI0=T<~(PL#!&b_QFQ@I$Cap5Mu2j2I>E1?6Nml$lK z&tUe5`5!PwI9698QqIx>`!$pn)Nm_l+Ub8p_I`+!$JzVQAZL$=DFNmIdzBcma=*LY z3~Mb20spqtm0x|W4#qGR;NnmkL0dA+n1N3q=xT;T=p5`WwrZXd{%Q6RJnSPuG|JFs zh)7RPfbXYJdxQNN7Y{p2U)wo}XUkw0o09UEx8ck{1}%!Nn;+Ghg1-cc)nj=()>?we ztF{4=ty{LleYg%_<S#&{rvts;4L-HVNrJ{d>RSx4J!Xy*U`xapk2O?bU|4#(&Y2t< zS~(_Ek*MckSG8Umix!PE>GPSWI==sVAhL1{J0X0JbyNoGuux%kLSVKA;fM63tSv)W zl3xptiA>q4^K>o)S{fo}<GlA$8m_kvN8r6{>1}v+?HwvI<*HdWy$e^%sJGXcw26Tu z7s?i&I+H!=5%BdCa8reKtvJ>tFL`omkW$Kgo{KWWL=4)wSA>pN7x&Pk+npuzrw=5g z^AxFG?MCOVDCb!RP>ni#{ot~?O|d6{bGyU<x;|<<{EarlWY~6ZY2-??%-OJl7_!8x zW)o!cMufYFY1BFF18(iki+!R`!jfa}W?`u+6n+GNH(S2F!4=F{cfYNBF*sRkZu}CC zBF}>JBN$tIOum<o9vH9T;t*VUZ*L59LVU1)qD?6cz-|*&lx<F+Y{O>T+s0a#Z<xrV zoqkk26A$Jo?MGb*LfzK#i&zX|Sh-?IDkVN{+0QUq-nX{oa`D8kG#O`oTd(-;u>Obi zJSOc)wDI84dvC9CMfIzPUAb6#j-%m?m}WStLD|bxb}t2szE9n|T}XV*b_p&Yqi<7= zy?vNjbx@<6>n!hRk>EK~N3A~~GU@ije9n=J;J-9EoZltp{w<Zoqc<Nvuy4}F$D)%r znc+9o7VQn%7r?3#+n6FM8Co&_#H)v;O6?(BzN5=lshl%-@~ta*oowghPrG~8JiJue z9^>SsyAgwRzyLFld&CGWmSIBxMpJWDtf-S#YXBZhVJ;t2kfJzbtm6*G<#_8T=34Ei ztF;;0^-`wi@Zh{wdZ7g36vV}{oEjLkjHcZ5H_$P6TB3f)YCN8F?DQb(S8_I@j7ZNR z8>rA{M6J~kJ}ALlTd8lok*S}LU#=f#%E@pK-81}}Q+%d@-=Lzgr}LP^xYkj!Z#kH2 zhj7gz$v6BAOLyPcjZB}Vv@B|~8ZYRU+X4p-e%ZcMNpda6wceHDyR;Yn@%*&P?vH*r z&rDE3nX?Rc_tL4^>FCkz_ww71UdBynyq!Uhuu$-Y#j4yj3;Z90t}miKqcn87*a-Yd zhI8zeV_cz!3u5<(47W%uf-Rk+>lsvV@X}cPp5D}y?|I|sZJf8B&%%WMzRW9NWy+~j z;{Ih-<ufA?5@yX_GPG!AvP`n5KV-+~s`QW%S#ijwq5fEO^vx16)Sm$+h(F?d@ZiB+ z`ATW7wpb3A=+;p&&n@rDC*PH40@vMePhy6P%AOn&nip>8|Mu-$Af!RV7`p_OMH9SG zS|Fvd8tA=%;gtKkX?df^1zJia`(6W+3jOJ*<rJ|g09aqW+6kV@Rh*BYt5rW#>@$e9 za|~NNgb~?)G-i->`jNK<hiux^qy@c*($_l5q<$juauAW$n3;8Fm-;$F#so~n7#&?8 z7k;Kj7FVd+#~>dDqVEb?M*t5FIlS6kN=~0X&7-;6HG<9VO|o^g<5phH<sBBRLM0fl z00&;}huFQJRaNb%JE*`7GzWS=z>9vUVpN}*2U;(LMFNU0^+2Ok0ENQD>x@g)ojZ4U zG+i&kE};BdwJ8tNwp@C%i9E~U+2h9o?x*?M=8RjpL}+(U_N10DE}Bpow^5SlY;X2M zIyV}<ru=7txQaWAcD$P8dkqZ-KwT!GBvOgTdO0B8;+9vR93sXrmDh6lM7qHG35c1o zCpd9N2>8NS3Z_twKRB*<(Ra^NVDlt{63%x|#z}DYER>5=!O`B11NM|>6^xbwc_w?z z4MIJZ2@SHIEE;9dpmVHs5>r10_oa>AV*n>3{2aGzSqC~N>8>fv9pj0(c=D7fk<unE zNP~&72Ver3Q}?auY9t2EJMIpIPt+fw`>j2bL{>C9jt)&gddRpe%5akS(|eR)0^sER z3<2g=@QYD!aZv9?mxwm#Nl}YJRCOFISMZa)Ko~)4LRx&1Dm6F&=pQXg__$dc55p>u zkvCuogf&Jl#R$JIdy8U%@K7SOX#H`)z=B>c5Xu75)1#OG0%FX8MV$J4Po6!iMS;t& zuiZ}_5dr*gUyY0FxCO6t!~*$|La&Hj0z~1#2w~-v?lI?Y(bB3o^I+cKBdI=KFftRC zz3f(x_tUAVZl1S9^vLPLu)O73lXMg?fGbh!Q*TQTiE+NePnN&HCm@JKtxJ;=dG2w@ z$NFmmobhmzgKD3GT_7;jXTq~Pb*)@A0Cl9XN8~Jf+p3+^K~xoPsyVsYKCfa>;?hHV zHTl}wdH0*t4`)~oUl*@#G?KDZL<wNZ<jLWxbDO;HH-2JTC!w>!9DX&==G<q8@*|{5 z8Ge`=W*Fkhf`<bM9QDki>?FhrLTJduNk9hsFH#i1*RCpeb=T2=fB=*>q}K@q#8wy? za%3#C4im=4Q=V{pKh(t(As{7e+pX%M1hO`v12=9I+&$N1By=)9KK|UfWyd*Mu@Re) zr61&P)rjU72Mbj0OoK`jgW^Xs%CV*sp^L0ZMm>0lpWq-LSdgBSG$V+#7|_-^11z>v z&&MW#`jv#YEj6!0(~}L0Viu69rppcg5xwpvDT%@R0_o4t$Ox+~Q+<l|L#!=si4e#G zXBIKH_OKkv&`l0?+0tl*)b#Z9o|j;Tk&hGD^JwpiO7aD>>{eu6Tk#Sud;VMns3}Q# zBO{y3`OJ_dpvr-;aV^TA=tjlwc|e5jAgMwA^HGe#xpU|6LvB=6ZeEJw(UhK`+@TU6 zBAhF^tZuN#V7JoH@fc-_#W0OYA`kjB$uuDA21t+(em7=4Dl^m@6wf6NvmKl;DwQHH zKzN-B`5&m6M8a#&SZ@#hEN6V~d9N|oI4r+hnafc$B$|h@4q-3jij!a8&>FZaZ@qs% zR4vnyag$0B-~=QrD56yZxsqWQcy&4B5u6f(6=X)E{MN%zc9U}^L^F`7xM0Sz;k5^6 z?_$MlGQXQR5t5S4Z_hK8Coe2Fsra>=_eY1xU<AO|oeOjUBrd;Z?^<s_MyX&#A~A$v zn5sX#5K*cp%!~}|JpiWY!E_3947b(S+}G=bT)oYus(x}Ra0M|EHYJKhEw0#9ebl^v zgWC&%V@VTAe$?R5rl(Nha`#Kq1VjN$<LVH<tFP|$y|V;1<%{A|(Bh}-+B)MNd9?Bt zo=f1cvvHPJ%B~+RcS>AbUsId}gB6#{!^79l;AYD2zuxTD#=pkSjuXBP#*+9M%aCtk zq<_qep^VPBH~dQ3D4DkPk!q@OwX?Hxs4gS&0A@iJ_ffOSeZs+g^tLDmck)p@fo%2@ z5b>5X6cbL;aE!QkI%0XrDX#rN?2+Ssdy1({NjobkS;~ZNhBHn?*YbAV4PmQrWhP1I zG%w-~9VxtF*MW1C(;J`Fr%}*ZI_F@h?hHobs+yxeONCclT8ut(*;1`6*TF8we=5Ex z&Y%}N2B9w?G6ZvaD*mDWVoVl#1*pWcg_wytlSPM5%Uz}seDQ}J5F!RqbuCdBJ%koa zDA$Z3Ou61q@gGGKc)95EZQRAw&t(gK@!$NXkf8Al?Kc9N5e5@j%yjxigky*L?@Odm zD=g23_5ActH6Yf4Ttd-ZvO>bI4TUIf#3i;QPP?3wNsRgNXU5Zq7Hz+ZK#X2<mXW%T zOY~JN;vz<5r~!U6?&k+D@7Jx?AJy7BVo>O#-*2H+o6lsxgX+SG-)@0@RYi%QM%BUf z^Z)#D_V9?~yZD91=uv|h{$GDZQ6atNz@&=)Un6**wC3>o1qck^j8krnr+6t*lbeI} z_1B<M1V=CHLj%@K0^{}^6=4)t{5G_rmRcjKJJ|yqI{x>Yr#}=a{L4UiP3?b3^hAHV z%#SB@dk9C7-LHW|T*<!9Nt&^H6C@u_*he2OO;3MXAWAO-H>kLncXZMA0SDjTXV9-n z<xQf#j|e20GP`M-x;(7ozn<y9&}5jyYt7*dKpBa{PEjgetwO`~qUMNaO(zW#Ys0la z()(wdMpiU9vhXG0d<CpZe`X!|)L@%vYDq#Ah}y?W6h$NJP~=smztX3fsedSq{b54~ zbv+9|{0Rmh^}+@-O0jdI0br^M>Sm<ZF^|P%y-~QMW*qS5w3oBdah|m8nzSQ(80wE= zKR!7QEY3R!5s6Vy69=aAWrQ>#s!{@?ofvR77oe>oFHZFKhHD(F`)7WGN-X?=0gWM~ zD$RenYoxnh8%z{NiZ)*S6#jbFOV+?Rx{XC}5~Jq31GQspy1e^uy9=)}GMZ>`HYahx zs0Hg0HPb8R7H|maFpVP7xA%{1LI#I#osC#k6@6+zj{rXcJqQSLZAgvWzMMV)*B<sC z7Rl)Ijq|TTv854lf$+R7k8RYxL<QfOR=ttbWjvaY+ncUiN6i%=U3dj*M?SDxNQ}}g zZ?XoTR#_zEYrCI4Q)1RwSrH_OYC<cDce4QeW-JBy2hi_g&Q}ThWjj9@73_d9qr}*K zKxoZThou+_QVM6_xru6{7EBuWFpAAnP>zCX-wE=5P#E0iN(52$>r!SW__9;8<-y+& zMyO16I2@>CE`Tl`g79Msx_L{0JD}gNoN*ycj~oI(<sstG^LuGfT~aF*V)$n?l&7E% z971C*QEIIBZNs(eWdrMe(!B~l<K@fm!Ky}+ll(I_yy7_RgSIuiYy?%5e^_G#@<F^p z3rZ9f7b%uYZk=}u%|o{%V?Y!m01s%30GRH``MeqlFZ`=;i*@(Qf*rMg8VW^xfnM*f zEi^!#TT4`HL_6EGyh~ztsMF5QjUQ!~sLjh2xxCXKRpLM%!u<hXd9~XRX$0L?VCh7S zpUBdLDAc9CpImWv=ZrE19h!3kz_J!kmBSleC~gbw-*cGIo5%;$&kh##M+p%m2I`FD zKMRr%Jo4wbT+Z?M<m4uJw~i7u1KTEP%wX<-Ut8vzo8dL`-hAwX7C}}_cPk7iNY&_w zPOtzq&9*;TgLm{#!(u}<zLm6(pg4fB5!yNH<$9b;^s3*3G>+OKk^2zFf||1-_`w}e zcbM-m5A^}P+ZO_a+EhG-0Y^EF{7EQvLX!svgQtjy$Z!W%w*pWpLc>r;9WQW8UCLMm z1G|&UVm|HRis0{WgfR{%KNVf=r?E(8-9??|%+p?9N1CYLmvf0uw>Tv!!KtzG@AlRH z2aAmN=T>VN&l4(~aP~nyO6-ir%zB<&9mej=&&~hmHclxwy`Yr;ae(+guwe=O`c)iN z6BBq6iU^>B!9}qM6Uxy)>9O}G&_4d4|0tlN5P%fDLiGoh1;f8-pql`Wz)4K@3Y@;* zZ%r7)ygV_TZ=YL?;)G@gb>2|Zg3+uRwW)g;R_1B|K@w{-#xNRfC5F0&Ou=Z8d%cQW z9L)Q-B?3y>$kBN;?d_v~h6~~B0HsFW%>@~{sQ=To@-uM*BI3n!HPMbrUq8&&I@w=n zx=0}~1ML@(3{(GFl83-zm^8_V_F|Er)Lh+eFHDxg1RSEh1Ul4^sFh5bk=afSUa(Q_ zo$e8v=j>EDQ8H?=En49sQnv^=HI?#CJpcYw9C#swQXNReW&J->>vKw5Vjq!S1c)@k zUDS2Ip_V-lSsc+Mz?k$_d{@${d%iylM+6i;V^5yW5+TTp<GufF5?*+4N~8ctA#$0Q zF8RWAI2o^`q)MbsNM(rIuZo=-R<EBLGFPlvAqs3lf|nk*!Nc-$%Egsju6a?rV_)nv zeAdh%o1zIwTt7n92@VxC?d7?FYz;LwY93#I5y&<Sj;PHGRLZYm_yaqZx9AT>E^x5` z1yDePtZ;qEnXL{EqeL_3Ue*d559uF>&-RX62wD(Se5rDWOubO}N7}sq%fj&Y94>Gc z)LA1Ic2wEJ5dxO3FqDa`kme!-$vNPIFg69EEaYU(J^u9A0t=+2q@n?50Nsu5c0s)a z)^HBqE8ak=UW?5S{HzGqV~NPZkS~E&Vuy;1V2=!lp`2Y;Ur}6l!kisSy4AD3P|wgS zsIOL!5vn3RpO#m^p<1aHPd;tH9D1KZo|Tukg7%2r-@Ixq00<)NVFr=|PV;D~Z{NN_ zGQGJg5=b%1tFkj@EM2)9wZ2Zsm)KQTHFDu1>n!q;dNU2X>JEHzB&bTArddw4LYlS? zTfTBpOih6=9(%CBHX$oaMeIt;j%7#zB;FsLE=;O?Y}DT{Eh)!@+;=VPue(mmK_KQM z76v07c^ZCX9PJ;TNcpFc?;OmT&?g%6f&ATY9+u*_1{|BzJFbsG9!BjSL20Y!2mV0x z8PcHub3)Z=W9xc8ZGAr22zo>opa8hD_>5Ag-wU>uy^tH&-oW~rb1F@*E4t9u&dvmt z>8lr|7;E(!`Nlxl;bW{IOmzVDm%u1IN~BSN!?pCkqCQC~e^fb$dO14lX5bh<fGAiK zPcT?ccvxt|yB0|h%C0FmKVy)b(k2SsZ<XF0pN`LZz8_YjLaM)g`!{M++Y8sWEnBy) zP+J43?!CV9PfOg>;ibiMBUrFH&j)v^F%zJi^|B3dZ3-dquv+5t^`x-*m2Df=v2XVc ze_JWam(Nfm!skDS!xb@A^_xm;^JsbJiQ7R16YOOgI+rPVF#KC%WJFGCNFN2~SnIe{ zk#rD#?{KB+1$v``GG?`2IdoB23@=HRgQnR~1Hk~HD%#3D&L&g%y{$(S*pnjuX<LCK z;toT@`%~64JrAthV9$jE5rtK|2PyTtwGQ1Gt}#rqG|dn7TMA&XL80J2?U_+eT3>H- zUrI_!EZAV+a0>5eh({7XT_Fc@bW+FxI01F1@0D<`sA31uh1fZp?gCNl>#6PQ0UbeS z<-97$*gzSLb+58Rj_rxQT!nS%#txW%Io$_=R^UG|u~DGQ(e)q<22H_WwxBR~?gj7U z68qsyW8_(xu;3-ryPQ>2R9spn4ocJeXmQ@&*7j^_svo)_q6QSZ%xKvMuLJ0+MmGIO zO9NGMGTh!9qzY<qr?-#lYC=UW3gjv}g3W^!0Oie}&n>LxgOF+W@G%ys{8AwtM{ibE zma%jjmLfMO$KaiML(W*D^zi~a)&mLeGblSm8?wYqCbKROFVH3`EABUx1sfL7JfcNn zGl>JOS-5vOsC*BAd2IkElFZE@1k3a~)5bA+^k}fDzni!|+OC?jqY3bu;s}##azl!C zs+;C|KB!WMRrnc@dwbTG#tfVxMEnv!B+5}g8<Na<+g@J7>F?Kh#!o4;@-S!y<ShNQ zm7|^uGtLzKUg1lI7^mP~i}jdha>%frdXHN1BG>^@#c~IgfT5?ulD33^4EUQ9wNgXG z4s7#wU5gVeoDeH;isET~!*HM}HBkbe=fD2&3(zU7YXKsQEx{hJEsPjVyie-#X;T!2 zt`^&&5T?fV1TFQ&(UE~%Kmh>`1{<5}aaDKSjwf<?C^ZBAj!|`d-e$A27oLvpn4Ne` zFt5vL6pPTAHUWN)bmM^9@NLXntQS0FgH@|uUK(5^I)Fj;JOPvhSl67J8n9zGoU~xu z`mQiUcOdY<Ot8QY0P~hDTY6iB`&z7oyDEq@0%k7yqkCY7Cz&tlNP&@ipoEEimyj8N zhu|2XV+b}>07NLfdlZXD3ZQ=%qPy&`TflllkKi11zCuxxPF=Vr0Cap!hF<sjbg{?a z9jQrqPHm4PaHW%l!3R@24o)N|jfyjlaRLRM9(^9zsYw5f^AmsI&JX;CY!|V`4lc4H z**0!(q+L-8O1-T(?H|NNzJH^BOH=1r-L2kULB?*PeeH!&y#bRaPo@V5BF$p`ujwJa z4)A=S%nQURGzt^K;>Dv1<Ux~9nz}@;hFya)82lC>V4{R801NV3NSmoK=))*Ku<&+v zp?ZA7=8Qs5d-7}AMjBTaPt5;X>$<a}6lM(63~PxM+#1xsCFu#astil&a#nh_G}|YU z8B9P>h9&?|>>Cqh)_n!atn&HV;M%Si?NsVNkB-3jmTrliCMWDcvT;6AQ#6pitf6tm zwhg`y#IQctfh|hREG(d6kdm?=y9xIoG8CxQ2AgH^QxWLAFCt%41QlZBMn+m-^}g=l zVFK8NaRq>`>pr|gcX@ljznKpEJLnjkAt@y@@=rC0l_ZxH^$#x}8;{FxpYTTs%UE|5 zOZu?x)M=}^I?{&qgHzV(E=!m0BY*RvnWq~xp3a;xV+5|lgi1Jzo^XYpW3(s;1|!+9 zP7pGxH2G7YU!p=YJu>&zsYGLT6s)t<S>G9e9>bc896iQ&@ftG$O-bq2wUqB0gzHY_ z%XucBBQ702qJ9AdoW<FO`hNplWyjRWv%_DFW#M*1a9ozNi%x8Yim|Z>+oqikC9(D$ zgF>H%Oc6y$;<~>|T9-RiF?|;T>Zqf2QLi}^SF&T}Baw)pii+T5D5rF@%b1hVQT}0# zZGGrx+&|DMs%SQqrv~7ofkGkf9askaO{j;M{RXD70B+)_*#-u+LaICg@!+*J;~9-3 ztA4;+n#GffoN*oc!~Yu!!v2|}#In5{q1AszYgk`{#_GT8Sh%s}sL?o75JynFpj5Cj zLST5`p`x){wlmD|rCtHuR}LHyGYZFb0vpBdjh_(HB`D+-`0m!dX~Q%eFaAVye&#d3 zK5Auu5`&L=ZP4F-RCa(e0Q{lkIW0p+@!G<@x2<+D*7tHtGP#SKky|~m$uh&LVU3hR z-E*MP(VqtF&sV`IZRHR!v|i~KO!j|Cby$NV8*-&;3+ra5$}uKVz#T*DDBEf{J~nIr z(7wGo(}$|Sr#>D$q`hL#j?e&v?w3}Q_vHtgH-G}Lp*|YoP^*Nm^A$}Bcy*Nj;~Qgn z6i!3Q^>--m=RLAPtqQ%Z`ZitrxHej>!GoQ~elRCXB2|a?Sr?5B^3rhM>*LOzcHJG< z+^>UHyiMmyme?52$ibl;e={F`^gpv2J0bo*K(Idnw6mI+?RdE?=iB#}sng&vcEoI! zz&MXD(-@6dHsBSG)uPena(z(c?Q<sVDl`2xhDB@LJ=@v5!^&55&86@Bp8EdHRC!;s zW0*+KuZj9|-Tazg{X>s;$NVaC{(I;!wyc?pX`HXFb5xXRTqG?tZb+-^F_9rmA_6%t z`Sfr<teI`%Lpz2J4HX;!+kQ`l2eRYPCLBvv%7U)<XD9jG1M<+mz!R>b>8d7hPYw+1 zc{Rq500*2*k5Q~axOd#Gd}$v}Mg+ENQ-=zS9e5Tlx<Zbs@^FxN`V{dl^-(vxL)tO~ zt<`m_QNF;odmOq7*+MEM_r8NMVhqxRg9i^{4+pAIfouuAPCajqRzN)S4s>TSa?Km@ zN@QSEtaDH@mj51Tcvl|smTc4;$kc)k;m9)x@abqGFB+l;HdNyfCh!e`THp7$zHB5t zR_Vr^@o0cVr4`%?<mMF1pu#T4B`|7W4|AJIkO%6KAO+`lttQ_`AabNsiDavwD5moR zeQCMu?jtJ3hK6qFGG>NIfby;-zKR+j27nBu5K0n|Z4qHy4l1IWIA2)CYI1tZl}ejr zO!J?GajJ<UYYI)yoJNDe0!;q`XRX|bP?uzAXU|ewsH!QJYT#SSHlA1c0&o!$k35)I zwVw&kDM1$^{j)y@2e^58N0FVv^KCbAhM}W4If1Bh>$sO*fG`n6_f!-$&z_w$dn36Q zpB&RukG4yoq`ea=$b-!jX_lH-aAGTD<1Z)VjX~zbAgIB>jBHT_4=!~tH3K~qTs1^( zz$B@(NTLjMVcA-lA&&P?AQjtAZ@|suce;1J0DDPeQ#<~wqJpe&A#v(PTza6e{dfm5 zFfRmInw*q8nVZ*;a14Q`7kHT%)8~4KDG+p7OcJ#kKv_ke`PNOTH3l0`=JNA7C=LhT z(b7k|(+fy|0aQ)%IK8j14!%|7Fro@_7B1-V;c?Q*#Rtdg7O_XS)$q{XAsp+QaTJI! zl`}TTwm+lRYiRy6N>J%5RFSVO0zd($S&<`*#xw=*Pe;=nLbyD$RAaLwfF~cb!5Y)M zeLNO&hmI_881GqB?2*q?ALW;mX?uC<doO$K_d8qxv7&dk44YLqeuB{YyB<(niTcAR zBY=mCi;Kdw!VQ@9geHnL3oOvV_J8lzvSB#YUpj4@_jcWZ<34p<3wM6+?2*Y4`2Im$ z@yI-&ccw-uW{8CEi!KUi++-{k1~>NnSx_z6r(|z#w?WjV$%z<-OO!%0M5Nv-OI<X! zZ@=WhEs%JHhrK7&r~Jf2D;zaB2~?Jz(3RTPnF^l_L~m`iy-l_2)~$0_F9u?`h>GH) zMBxT&gLDKqc#UrbS^#TuBCfu{{bQmO&DKA3XGzI>U^FMV{dpjbqJ08HN1hv4U~p`A z0ovN+5`c9G0`qMDZKy8?u-(CVZj6BgZ%tncxWOQaf`Z~X?#4oF;xT5e7ObaPYvbvr z4Z?J%W@ctqnC~_VYmBW#yXLi~ra4Gy>LZEzPiPkQ3zSjcoI9TqR9GkKPdN&3ab$3* zXw0Po&mx{1*jb=1X(nSl<O=}0SGd2LHg+EfnSBtCD1n6m-nYtzz}<=7pyOm`EBcpR zJrl43@6W0M*QWT;Ah$UX!ukSvS8ELmF@s^2a8JV$(uo1G0KFXb>t<NZkZ>SQV6C~i zD(ci23joy!JdwzJ0w{JNIhovRP)7j5vC6<e?C7>oBKCy4CLLMJK28S$G^O)MyI`l) z4T5j-g$q6~8==GyR1Q>{)psJ5MZ)w%%>gbQ*j4*l<@#KpA|gHlN;=XrW@H1apv@2* z;Wd+9y+lhC=?vTnLH)$Oh9wJ15Na40B&nc8<opBL&vrHl-6ekeQ<Pi%Y#sAM`%Q0k z%j|4Z<xV+!mMS;EiraegFf~Yy286k>XW07_DvPpgZEY9e#-gL6i9!rio2>1DX(%@X ziGrc{3G6+JoBs_ds0!4ZmjTqQOk`8>L5GMxF>6qCNJ~#|0iLc7AnN?NbJXh%!{zrS zy4D97C6P;bphWZpPj*SLfEV0(;Ru`p=|R%*Ebt9{*)7!4^ony-{(NB=@aDiz4ar^c z!P{V;!ZL0So^+etgTEmFrKL`>pt)Mbo+_G4$`6q`@)p<)JlYQl)&f#ee_Vpv0)maR z6Q!+iOZXzMF*Kyy0|L!uJ@>(K9wRz;CVQBZma@S&)n%4KyB~{>wew-DS)ag5!l^iN zWZ#F;m1Sk0p-#C#NSGYWbx@p;lRYPi`|aB#O9I@g-m*^*6U0jHObr2L@y<(5auOK+ z1KI1Z-j}H^THEjBmZNJA2oUW&TM4iD{sz4qs&Im!^hfk$byy}L*CU%4YWYC<{k<q8 zpp)C4gix|qCL6U_2UH(PUp5a6cl#J*ci;%6P@Dr`o9|@}xeQJX(nw)p3}6xv5z<<s z-z&x09$fMTIk7(vZbTvxR~^90M70BF4sfZaP_J^d_Gt0!CWg6pX)`PwA%`eaBLNIZ z&V4xrT{+-#G#qy=nSmzeZ${ymgX7pDcwsGCbhFCHBAItBBjSHnX6z8w;BitYPJ3-^ zl1iOFckbh7&!}NnKbkOap7%YeMkk><NOlhv%GeDKZARv(g!NNG^|@86h}BMwxV-uK zLkeN_PTqCNz~kT+O|$N8OjY4rKvO0c--d0iR-ZV2p9~Tkj@7Ru{8U;y>g=Bu{KnLo zj6)gJwdXs#0b2m<!JhHjC#~R+SivC_=~WiFn_#H1hjGCl6x$dyS(nc?$jv)UT&>?o zI)wnNwDlhY`a|I0h!C!+usVlW_ViX4^``JoP@hUY`~aZ9e(OPLZ!2a|BPcEHFH~LE zdmTXI_JzYVgvCwjiTOlldw;PERF~$P@<)NY;|v2CCl4@g({L>5ccpRaIB6l_Fm6n} z+DI~BFx;G9-vaFfa8n4kkTkuY#!NLO&uz%W;pl~#iB=>}^|!uV-#Tg6C|2vJ%Gbm? zfe%3~ru74-ofmP`G_^-hqh6i^tQ(N9P{Wv{X$%Mj+_UU0PtF1DGT$OEyjEYISF@q~ z(*D1h+f)L11r)vj+aaj)syKKNa$;;RrCuj<a-c8+r#%jYp1Vf*bMPCaumRBxd=^<5 znH~r#awFxZJL$lCp<4PbeHJc!up1?ZZU~){3t9NV0aOJgP|Gy2slvz*Fg96ALMa0V z4Z)vXdqK}vL&b)DZgl~OSO0Qfo&Z8by3|_`G#kHf=PjGisKcV<c%wAlb(}TcM`V2Q z+#9mhcYKUHfAIfqph104OtX(ovlT!l@CW5`*xkaVzsY;RyWfA+Is>sH_Hg$j%pv8G zv=3F_NRzD$F}uJ{z7i$a3l*GFx6-m=2&Mvfg8FvsR>R-1f+2Db1i>a_t=NVy{34g% z$HqrU&6r^q$8HzixVlxgbS(7?UwK!axH-<wobhQo?Ec9F8DGzfWfBjAiE8E|yT;I# z-K&?%Ub~Ro*qu7XTDg*)MW<Q1mDc-9QXYy-y{s7c+#VjTk%y6zGOR<>*oQ5XxbJT= zqVZo<zJ15Yu(<$n_;t{<BXs^X<8NIwZ3t*M>h;w=_Xk^RUJ#Mstba5L9jA1Z!3o*4 zPTT{#;I@}WYh;s(&MV~dFrhntRu9Ft&lR~mkk6w6`8P$$pWiyS3Xlcv;Q3hbTku)> zoBZtOuihQ#(;U21E9_4!lV8c+&rkakOwhkU)Zs_{HPF9F+VHKPX%`=*h`-$ejq|o5 zt*xJ|PPqn+zcmCD?L|6(IC!+@0C2kYho!-l6Rhq|h2}UF)L{E_a`1FCN3ou7?yrvi zJ@W8(S+n+^sYgE({J*KUjsPVo`xnRN-+lUhY~u7k`}9OX`5pB6IhMcP;8!la<L`6n z-=9_e9!W0!=z&7v#iXSxb*AO6{11=f=cipG2}(Y83CDd2I)6vT>F1Qwul!cvmfX<H zUTw(M@%oJ^_H)1```KKKq6F{1JnNt3^4~uKT?WN)O3YoNe=@RuUG1+}5{m8r087GM z|AjgB^L>9+?tgyk=OPK$(fa4}q@S7wqfH;{>Fb8lpy=$$Rc8n#);&)jO-*Yu_*?@d zAU2lxuoy{~KhL^q>Hhu>(@+n$vqKBqu?H`V7k5+Spm`T#h5|fi{3Y!HaCLydcT5ty zkoY?TnPeGFdNblT0(%rm1~+R$B~D%F62HM?{0!W3uz$ya|BTEAA!Lo(deo-$)V|jv z(1y(C954tnUPPb+|KD2{CEp`IMg0ow{e6$vl!wud+yG8EVgp1dij<|Gl!ipb2e}1$ zrNzL|aOt8&i@J_)Mwo*<3dRXnku^~CjC92kl4lT4Ywy`bA3L^-9d@z~U7C9tyht|V zeBp<&`y_qGyc#-3qkUB6MyNuOXi}m?6at)lC`A%P5)I!$_+;*6Cu77*LV8A>Qvk#u z{DC{qQPd^KKpT}ichqeKV-PLR_Ae{nIIyihka@s{)$Q&QrVdJm%;wTqb5m1gsP;m9 z>Zc-EQboUIw3Sss*bI5Uia!LCFwAj>1Pd&x1PDF-SFK*{3b7foeP^m1o0^&~Ia34K zamBOIa`c>=*ymXM)c!X?_{F8q7X#rNf@svX?bIvq1(G6irvdl>SG~QirLXU_jI^`> z+&Kx@cY5*sVH8TBLhOmjI>Zjs*$4OlL7()QK~gClpTlr$la(V#5Fo;N4@A45Pc^oh z4^+#mpKY%}L|uI&zmxj%{2ug+Y}Y@eQ#)1JuO1cWik0YPtUI%I4g{Qr!#w6X{D9Qr zJwyalz}p+&-`7NTIGI)=>?V}u;YzX?+N6s(CtPp4+gtK4^8Lncew^9m*I480X80|p zqa}LDpndyzc2C=z92RKHyPw51v)3$BO<Lc`{_yxiyEl%hIdwH-N5eX!Wb@l~bw|v% zPo4QODeLL3dkL{MYoqI)-c1Qo31SHiJ-5_;rN&&HqHFh?LrlNaP1KpRsI|u0GcVY$ z;eO1>o$`m@zf-OCuA8l?Vo;I#DcVY7_-Vbke9U~wAZp|77HkQR$BU(E-m?N>ewF3d z*GrQ(y0G2XX>g24Y1txQq+ovEjQkEqN7KZB6u0Ag$ChModtYlTpX}@|FLmk`rqAb_ zUN>?%u}BlA3QfH=b<bSiCyK+|ZXg(&+_yr>>n-MN3`p+?Rn@=ON0bO=A=n4*M?P2< zY3u*E9r)?x>&;)akPRc$g;5jLD#?-i@Zl$&9r;VLJObcKE(fbgP~ed--duA&nOHfY z!DEb)9UUATY;BDpr~v3uJw+{3sRQqw4X6bP0Rr5DM}g#E1vU?GspGf(9XGa*QY`^< z$_+wF^o4$o8v#;sKo~u+OYYvS%Gk6#IyDLuNO5IlZ(w=I$<44kWXW9;Dytx9@s4<0 z^HKgc#-_M~m#ib*AJi3|`hm;78a;D5*Z0Y-I67+sCQEXN$Hw5W2&=^l+o^FBH7JCi z=4W)4$pM(D>`{S)X`FVL%HWzMvGFz_!rVg+?&9i7lr~^QnU2HNfNP+i;U%#4u|sWd zt|OKo=>7+xk%8_z*>dH+gtI8wLqDC8;s~F7to?}x)m7JZXS|`x6n8^{Q%sI`r9I@K zHJ@MI1abkHMs<#)$-B3cP<~6)R`X0sH0@}#T)p}cl2deiBqDiU;U>#(X<#rcZXM+| zeWJq2;bh~V3U_}XkR$|0;a(OEs(jC(i5S}HNv*xG*NFv#mw?qt)awo30v&H_FJBVi zO8L#yEdoYOAZ*N@9-P6>CzOH}oecpq;@c?t0e+~mmme-)m{#N#2U+bVRP#`gZ+>}w z_n5b7p6&Os2b2JZ#iB%|4e27e*e4yDHOzcbZ2TEdD59tatuTLnFVGdbv7Y>;($lBg zV2FS&dVwKR_c4>&IskMA?gFRuW$x}d&GopLWKie$wu?6~RvJpLX`R^WDLk0{QY5dp z^CK8L6zfydpWQ0bFI44GNHwzX5<k2Qq(&ldf?`7MwE&8@B)xi>eT85325@mFkOGl# z=^dN<9w{NXMR@IxL;X+@70Z*7$FMQ?i?m3z1%Y@TXe!vYF#`n@9L<K?1Q&#Y?qRu~ zvT|BYZfS+5y53IOHVgVOvXch8fsCmH4X?RzFP}CRd;Q*o2ADY0E*gSrE4--yr<5L> z_mR**Ze%K8pq1~sxiH+Offr?CaA3n?V)C$0L5c$ir3DW6d)s*dtH|~m%Oe{k;2T;M zSRNE3$1yfBQ3N_fR4gq2-SUOX<lrg|DJfQ;=Yh2L+jpxP@)d`@cWsXHt-<++(~Y>1 zNF?1u15X(wVah6m>0owE&p)H#?%sw3vhST=?>ql-D~(Z~06a;Ev_1E5Jj^ANpr*z- z;CJmNP)Jfe02og6dy55ty!ecs@Xt}f9@FyyZ|hbCek(d9#DWj<9t2L6j+?DtzM$CO z=_@QZb0)PdJfj=c3iPf>ep_fg{~WViVH0*KvYao3*K9^lSxaM&W$n8#$M1U#l0H?n zfP(Ov=L+ac&!0cvt#X0bntKy$L1`sAY5(76KNt;4Gfs|(xJcn_gU<N+R>kNlmDVp^ z`A>6t#}h>hd3FiJRlskC`x(!P>IST+4wpd$0L@(vX0kv7KEw<jKBIbUXyt3U-1>L# zOlk8J5%l`*6}H^@t7oy{xvt(1+s~&X6O{}C6Cv_ah-46s!_dQrzd;{;%F7r-iH?d; z1NOCpM^|fU58y(dZ?v%5^JpG!5LT_PEV%Es1NN54CC=_E<jnuLRIc?>sxJtAb_IHX zVMNin9a%VbeLJBE+7E|LG)u##N9!95q!(RjD6v4+CaBLxEafAD+-)IKmTPR@ufF`v zo2&h8W{*IwQ(CtFR`td<O!D&?8PsYIzmJ9SUI3S@?S4?Jg8lyTbC=~f5n&_UyvfF9 ziGC)`F+jy)-#fq<bR@982S7Sj^k$D;yKd}dCERl;`{LUqrKF`vBu7Xv2#!<}0G9_d z^gR*S06I`{=sTfXreY1d)E%WcqGW*l2PHfga6)AmErD7li3-gqvpN+%V}DsPCVx7P zYU*)-@)Uru$mPqH5$^|^aw8b;2b$Lm7HAY!pfW0|=$Ca)8JO?<ymO3{tZXcSFp91h z6x{+Hma~7%@PrSfOFV}L%1?Q^Govy&HBvYKC^)bBk<I-2;!}T4_;pT_;axE%@7Rw* z?84%H8awkhU%XjIYzF3p$5M&a6F3^4{AfAFxon`U{_Bgo1Idzw#2aLwa??w<*>?XC zv+UH^-u`~o(ue0PVop?JyJCL`jbAq=+fV1G8!P`0H<sQ1`O5AkVpy54TVVagehm@- z%NMu{`jLiQgj+NJiO7pTD8rIJGM`^x^!NN`c0?J@wBu!2{A{~)qQ3uLS%33|iwryK zD$DtQxRW{zj1&4Fuy6Ud0r>f>emx@Ve>@V?R{!&nSSBGesO<cYK2JP{eomvmd|{X( z&c4eXk%n_N{f9Am-aoVrn+%E*wV54g{K5WHW>@%MzHsS>2~I>VJ!SBZ=hI=`bwf@V z{i6qH{r_;YNx$Fhj;rAIU62FFx4l!v$jtfn!r1t6NC0T@qt7b36gDFk5eCf`Ar0h( zkKd+&{Ym9!l1reUkvp}5j8j*Sdi<)$xc`A_=qZ49gfbh7;3<knBM5S>w22$tt?Y-g z0*Vg3@8f#y5YU3zEQBkQhy{uX@cr^ZRZ0$oONl*Vi7_glHPAB&M_fCAJR<5B0KPLw zIuxhIUp&yve8*M%WNvRX5~f^Nn+{ZMQOG6o9<t176;3(n>CT7@@mao;`x|OH09Cb- zbW9`L73y-cYox3v+;4!$CP;$B6$tS63oNiYntMMrW3vXp=?oEyEU2WQPNCv=Igg`A zWnlGL=l_g()$8SUAiVa4u$nBc(9dQ3<tWJ@TviAH9vR!AT5IvqF_y^d2t9J4u&BEU zcp8RF6SW@#ukCIu(&-;QTI5Nex}>HWHIgwX2-LEu9Am?ju1`hE2Tdr>@OIx1-nCs8 zeA<X`HTkrY3_l>Rh=w9JH$uW4$B4FmCVJC2dCnQwGDC}jM#Bf*1S)ep(94b+DxZ=2 z3>v#4_NAI7w7}%DN(OORnVD`rt-z$YOTKs2_T{6aG2{)kX9BndCu{4YFu<pcND`5d zCnAA1H4$!kFl=}3vYytz#fU^uqXE=buOg~MMw?qZ7&e;UFZ*>}hWgtVe?xYoh|RYR zkm!IJtW<8w1Z(cZqXIWvAN<PpF2m>M2%p-z8gU%gHO+%PNphSB|BPp(dxRG49I|v@ zI9gFJD({%7hnK<5b$iR}+kW38{k)KflKXy39kLJt91en$j>L&#Hjoz^Zl%U9J4J9o z?HLr96C{^OL~Io*0BS(4$3Wy!>O`{eMY;BSu&@|E`ZLlyV)2Sc)U+E($QZi1ej#%v zz|lC_q?Nt<9=!xojy_SIxF`vXOsi4z2l*C_wL2+dKvE6cmKE1`mV)%CsHo_iOJOpK zLXD&K77uI}a~{QbyvRoAg`m<3RhuTkF9`hKzI#^-$F#1zJ@=tyaK!@ZLraV<%=DYx zu@k}kc6oCbHK%IF9MY8bUR3Y8h!1=#B>aBe>&@0=Ua9>MwK*BePbh!{s(@K}VOZY3 z1agfp(@=?&4@!UlILqT25_UYZY>2y%N~#7WP%X6UldWBZJB&pgKP?;`2Lh}k2#{K0 z&Xny?AEH{n0%1x1#Rw|^E<x(1Q$#0`#ySN0%a`w0aoyWdGqUf@gQ;EBi^_)@BpFtC zxR7Q>pHId(?Zj?_@MWhkM`3n}P*zC|yywq>9ZuBQx8tr=IuWkJbO3~GEJ(duTwIBU zb35a<I64L=oUQANuR#fw(pyyG<Vr)mC~Q1#<KBFPjge>GvLa`Q8#gr1KeWor`g%V_ z*<|L_$Obe?F$F;x<POvsYp!p=lm@n*ot=${Y~k7+8$KL1vZ(A5#(qUjOYmHJgjBGz z0P*NiBV0%_2+1A14Uk&XoJO#6@xg3#e8oke6cWyRSFG|$bx~<6!bh@4g;pA~p{l(S z>TPK9Z<9`ikTTSiEz#=~`l@HmetlisD?8qNit@ii&#Rm_g!grrX5m$zU=DLcrr`9W zSTAQUtj|aBq?FW0*k}bMQ0b0vH^jj?Fg`O#!Z1>{>6+t*HZHl;nh!2}<T?E@K@v@H z;mBkGQ*LtE@eTP7LO)ohL?BmRH7BG-{;M<=sUSp9*idq6PoPJ84)#qNZ`9FID>dXp zvPmz&<J-{U75OyoG*N~PLj-UCE-;w;4un^DydO6eqWMKCa^$A=A}p%<H*ZLD-dw95 zlmMp6PGD_B>Ln_4Uh29DreJ<kVGA+4&GruoPBcgqbIPG!Pn4zTGt~ZeiT>AQC*SjE zmy8wQ2OozQetkV;o9%o5#-5Q8#q}s}cKZ~ow2o4}hluk<d3gr(G1!MvAFM96ZpA)8 zNFAuwKG>=uRZn!i(J}Uj%)SZsBN=|V!#XBIShA6aBRBCbc#LV|nOK%C8)tRx`U2R0 zfLvX6wNU(p>czgkESpXEELj%8jnE9_Vps8lDuGOtP^sGX@pc)WfDlyiSe0Ax+{uPh zsXgZy%KnsW;V2-EJhlqwx~0Hguo(hdR0A~y{Pnp(2{iL@CcQv9+YQn!%)c*uvwVdl zK~_qt3*@qfcgx>~*)%vKK?Q=)o@ZqYECjV$h?3y37u8$&`b%abHWiV<Xb>UVXLbJ3 zwuZfhoJ}?Na}TD(SY7Kof<#7DS-A^j;RWz(gX2^0K_{O&tR6p55dg2L0ek|9ht94T zWmkAoLjC|RzH(%T&#{dG`5=o|@&dzrgb+y1BKHbfnE`F2KJ*|zBXB3}r%QbiP7z?i zHUNHc^s1w74dPArfg*Z9EAc{0^?Xw~%p+4XGZl;g*3~J$>|*qT66-x{?L(!fS=|LQ zxdmJDqdXJ0X_zY)vifAORLP0~S#u{`aqH=rM9zZch}8BzQga_1`hu2EkzQ@W+5i3} z>tczLJ;DmI?IV2;7;R0MXGNi+ME`=@siD69!yOfnvyz#YDjG@keY5QQhAdV9xE(;{ zd_3Yy{BsVgEDDK;i7_`b%f%v@AA+V@SFvG$_<(~5FOtjvV8KTH$oXnWX++6RDowH) z?#;fDe{x^XhbqNki6_6cZrYk@apA%v8)}q;K2k<KJ+~Cn-Wx-0JK#UpvH?R(5{d4; zidxpDgLWJ{e*8G#6W@aE8Q}Lrf0_!88cOTl@X5w@*@jsN3Ki14t%Ap8)bw0;bg{8k z?7ZIXhE6B#-%Vl!lp15>3-_r%ZR|>pAj(3R&U3_8IFE?V4<m5|Eu?9q4m&NQZ?%2I z`rn^myX4oUR16lJ!2DshHH2dJxwyFC>_iAtt)d3V7EG1Py;eB5k>HV}0+7TfY%L|& ztGiy}fa>h*#J|`)!Mzw`bisY!GK`Ffpm2(DO+`gTSy>t=N#Hr)Y|3*AdANA`+ev;c z6aB(sn!@KZfl6KhLfE((ScTR$HbzE91rQ+s_pk&E454av)AHoPx${x+zT#ZmcG}+j z?igHK=VrKN-@7~NPZ6~qI&vgSt)g!^F(1(8D>~BWl;UD5tCOZNg9&!M^!+J3*Y^X# zMmYBDZ41D704V@dJ5f(B0OfF<uv3ldMIez_*ZWth$#hnxvhmPu8WUq&KgBBSq}>}( zKsPJLW}~HDFz62J!#L97SVHF>TwV!tQ0n&u%SrGpE~`~wPr_yn*$SK*z`Q^IpasB7 z5;%)U>Sbh9H-DAvhj#0ZK0FDgDHaTbK!peRU9Zg_=le}DKzo=*Y<%FBFHPZORs-Dv zY8B@|F-T1fNoc@M()%QJ=OqY@@_oCq?Bu<XOXHMGvsC{bFm|&n*LEGna0|*hE*|rw zxo^x&Okb*dAQbdNpLcY<vV%b+s0HQ_QX&k;B6)n>>$O}W-`6I4wkXgI8)Rx`;i>a) z2PRiwCxo@x?dqFBTv)qS4e%SSF4Xt?phm#+2?ni;%#M&XJjJD)Qm>qq!h;Gu?RlVV z^CI2Ct6PFOuEnD(>5c^K8hFhggXjm=C3@uS@i^&y+|1s#Wzb<>=*Ob*XL3zar#xN> z3}!6~Bm@SZ7#J#DGYda_cDS6QVP)$me%Tix$0H+cX5a@bxB7Q)mZTiw)=-GBDcaUD z(c*O}$kgDp^ZDI-bZP<9u$KNnT^)zibCt^`1Ot?hrDJ#y<2KGKVAMpvBX{rh7vB+B z4DlMqauhEOebt-kE%A(v1h9Vp_Un7M;U{I>4>qxp5k^BH>@VrzUlYdv`gcBS1;Q=2 zp9}C`zxe+y$oyT_|G#1RuMSJmHuN+IN`NHpFAJ(@8>n*nd`&N!#*N2{B`}jGgpWB9 zU4&hs<D%ilcE{!HS~UQEWF>A=UIDRh5Ikd-D~E^*puwf)izru^APA*s0!3HqhC`_% zMPtEw9cOCfNA%ahm#Zw+nO^FKNEf?~%A!(YK|vP=*CdD9k-3hDIpFU^7N#a9l?Wm% zNqa>x9t>y6k(qnt73`{#LF>lm_iNF`g_Z$bXNS(LMN3k|Pb^V{fd>390K;^nEOW_g zOMe{my%65GU{m3k#8C>xoL@(vUq_RZpEs!DnI1Q=(-hTo<Kwe3Z`ZaSSi&Xvu~l&x z6Ud$OGgu`1vG&~vgugwrB;O50%Q&6bSplh#sf}T6&nFLr0d~y}Enel{Z;ZtCG`_x> z6#u|BK^4&#^Ri5|w5$$wJdo4pBDU{&i6RUD_8qW)+ho&Mps*FfdX$*JEWL_=q^+b4 zaje$QT^Wys`)q$aQqRBRMf4oy9C#5U<M3ARpr#1W?IZWy$}I$nAK1t6G^tiL^@(+B zV;6O`EQ5Kg4oFlzy2L)b27*Y~8AUtAAn`GrIS(Sm`NP?{|LUfgKZiom54F6ny3-kh z(g!;dYL}YX@?>3mR}twfy|W-hmkvr0eBZQ$IQ<BjTXbHrloSfl?`^q;UPMI1>Q$>& z85>_|CUM4AwL(}~H?>d0*PxH%Ul0*N9zaB6zIhWS8*8r5m5tl2tgH~4Lnhc?3{)<f zX+8&o$TJOb2QtN`o{-AQO2o66e0E>bH^XBP{|);UbJS|U9?$Yk`o==Y1WL4Q<qNmu zyp8lcCLihUR9EOtPXX5#Wbbd+do7QFW^ri7>Z;s&sRy$Wo1tQa(J{oh5N8%O%yp;; zAW*p4UWfeSMZb%gA}l#jV|-d@>QM@HL^|vM5+d~W?`*R_Pe+zOnfANmIqweEBEjDd zp||?WPf-;{$E*ZkbTfgU=^D`xU*+===+Hn_vZ6~!9!L~a5JI!oYapb4u@xc*Ojjg6 zurz~JJos}$@;eTRv$I?0`wjX4j*u5XjfxOx>AQg0mfM3jgmECgq$^MRr$t4su5TCF z{MY`XqE5TG`COW*uTbP()zda&Cd~cJu(Xlula3yt1v1LZ2-`t!N2LAnrAo_01Fp`t zOFu4h!>FpRe9ezJ_LvOx=7)?DQt6;722zb9(k88lZr83|TXJ-E9Y91$Ik{$B<+2e% zVrdFA2y6K*s=<t#&W>r$Rkf2y_(4Ah{NIN(Qs&{WI@_A2unQF$Rfy&-jg}2Rp<Ikj z%~RdQ!Xow*-iav>W7ox$m>OMRFSji{_o=f9hyts+W%MFnGbc>x54yX%C4*ePJl_mm z7^8ztZ0`~-rfdaaCEX@7<&64^bO?0-{$E9+6VUbOQ<PbMiGU)YAK%_DHxW!$tNvh$ zog*_$jn-evB7ZHE{O>yq^Q&z1ztQ;r>u8AH1fM}N$i4Z+Ul!2-a+>LVS&s~w*wCp8 z<jjuY_9Gg!NvaQ@QEZmJ&}BfXj~8Hw7}%`C<)zAdDb{hi_vI%9$Psi1WfIbJ<pmeU zS#dG8;-zKLP#QYIQ3XK&oshtb#%rS!2fc>NeaCY5?+5e5g{BH@YuBBAhmR>+790Oe zM<N2+r#oO0P(TFipdc}ET8t3@6{(<vBmO;X67{;*IVFf=+T0v<IhbUe?FVr<A>Th4 ztOWA;oF1cj3JOa;y&aC5OO)w7Vnf`Ick~W3tH+j^LUWgeH~`J<!2nv`w+7ac2e`lP zAsGv6Ejw|_JmX3qV^jO6JhJJ+9z^+iX&hdDpaP;hQyln#<m@s$wG(@@Sbwx;%HHUj z-akJ&h*^iu*{SLO2|&r+f@tL7AN>JGW)MXI@v1RXRx=t>2&CqfKm-ra8vxzgH*ZEy znzbH93?uXHPaq8>6%F}WHRYXSyMMmrZttg}{pBJkuY<ruZob@;W{CtPKoK<t^!-Dt zS9$?TM$=^P)J|}<5+ti0zUs%2{xk^mENk;CD=`(IgK+{O>&rvf%{qdT0JZ&AXowsf zy0_ila*xj0#JZc~&riW?@?>CNS5b~f^yp@Bsr~4U$%D3O003wv#~F|@fs~G)FyT{A zM?ZjzxP_WA;K@&^&VRf^1Hw+kA(0MFSJxgO)^2%P{j<L8mXPg$cyW#=k7?^GhkFk> zbi9l6%g>t)1KvO84SC7JWC%nQ0Fs8R*_F@a*5LRl?!{$<>?oQjz49N2laWGC;LMkV zEP?M>TH@c!f5Ka2rs5s{6>rIf0R>nx`1e~Sda2{1ao-_$`Y8`<a7G;K#Rd>Upm6j- zjS`M}!0Jy*5~M={0x$(rz$2`z+*(VN`hP`W?1`<O_^$}eMUUux2{`Ig>t<`OU3-K+ z8$dOWqS8{76F;IH)Vo`_dp$%@=m`Q4sR;ob;sG*W;<hk0GZWC(-%zk~#ROhlTW1lz zd>Bczny&*>vl(O)0Jz_Q`PQNvI`PsVC3;j*u>i;x#Fi6LZ8aV)cR+z}A~2ZI6k-wv z!=0l4^!@CiOlF36fW=gG^@7}7AD|^9+Ur}>qT2cV5E~9#{Vxk4fB-Z;ZB%O0*^UPN zp%eBRF~AxB?Wn`$XZ`6<X_-aJ&kbiFD;w30L@T?W50Hp`=*PDwTFTB>P$)FO$T9EP zkvRu*bszh$(H!{S6!ic1qyLQ$O`8AKB<Zeg`!x5;xz6Az9mNu+qe6K^{y4GNc_GI_ zeT^gQq{mLU&2=*QZo+!O!|7QuM<%)-zj`1hYi;t#ryEbnT7?Z7Tx4--FRN<p5o4`Y z{1?;xr}+=dc&8@!$?ERzgroJbXA<K|_uu#Yl$YO8;vxI4uP??`mWiM9Be*_{_C)m3 zID23KLe$*!V+qWx8{q7$;vb*{`QJs82YQJZ-Wgyz{eO3<MN&qfDhyd@Zk{KJTVO@- z)-2xZ2>agylS<3(0+JuHaFx-!1C(VhnDKC{f5VYM%&omGqms?Onw`r^SxH;cwc@>w zQzw-&JgfJKz2pmzjJ%Aa8#LKZ73ot!6@GndA1di2VGIiCuFbL8a*$o_jTl?AxTC5? zcU;yC=0sSI&4NuRJi<=i6$RS&@846I7-SSxkjtoafI^~_+8T3n!66G*B#$IjDl1}a z&y%QzBRBTV-5NcJnVjt%u=)-t2sk~6Qry_sc>g|i#v@)Vs1!hbuHb;w`<jG9>{{w~ zLYbz^>^N-Ww)~aWv8)vw%)#fXH<Q4l-T;~{_<B>6+-x^*-pn&3Dk=&&b@QV$r8re_ zb-l0G0q(r~DC<eru;pV9m`{>~6C#hPb^I$wBizF=OVsI*K0Ui}<HpHl*N20o3!ch2 z-_H#XPyWH4AKS_ksyQFZ?2&s?zZC(KwaU$;S0I9uF(6P5=Ry*Wf@}%z0sIxfuj|ih z`X#B7R}b>k7<3q{cyXFxExsdve6m;=dIS~Uy{q)e6Q!;MxtNCCI4c+O7{+w;M<rI; zmw6LRxh&5WS0j=u@(ftL^s94<<&H#10+*}1AT$!;3_kuZzx?>h(3bJ|{m+-iYG0c{ zZH}&ti@}JF%X5WW1CDQqa#2V3&T`P32&Z;t+t@aTN_6rwK-mo?Jq-VW0|(?{a*lV; zAIkWIwTwCw(9zLx<qEZ~sw?qE3F&oR-SXwjshJrNsEpEi`SHLgP|6s2x6jw3^nSpu z9_j?b<ZJqrI*xpr(rMlI0`)3L36onq-<5uAt|hahzM!o^{{BN|5BhxRfX#w=s85}O zfEa<PfQskm^g=jG)Id23b8=hM5dlFRES%CDTU=UdneDPE&ca6Z(r3Ad0)@91IC_*a zoocfX;NoTw;-DCRMm**S;IpIjKfDedZQ%Q$4nXhYhb{IWKYZBok!*#xkpCOKFtKJz zg$Sr#wYk?OZf|7S6?1;5lxZc`+O&-E7aTT8nO?uUHY;PR;B{H!oDZEJr#BT<1FMPv zbM<zP4IUwINF#^U=vT4gG2<gcGYJ$f-4!cpK!Jzy{P@wM6`pEe;nsBqB9rOUg_Wa6 z>=Kcu*B98kjo9@vV2a~WBpK7Y+GTe*SyfF}-cz{?A{_T7xpNb71N+x+k}|f&ZHSpx zW*u3tURmI=<V7rkNkQ+A_tR0f%y*C03?F#w5hF&R8Qyo8^%A9mTDHl{(_;tZSc&q@ z*2^^$goXRY$E{etoP@}TM4_RG#ah99J%0Q-O8o>kc6GNVJW@mbep=IF(%{7Hx6n02 zzoPzl&k#a!HJ>Y(Snv<#p&>HH5T#`tPIjPyyPGv{Xmmt`YeJ>&m&-F4k-M0-ci@PL zMjpzz4Jb_GV6#HZd@v@UWmiI7I<=?K#3lyt)qEIfK<d3Ne7YPujL-N#?VWpE&-Wh3 zJ6oHEO)e*rCQ-Dx9Hd-Ysg+B`T;?aG%cFA1{Q5~3ou=}L!)VD*C8=Cy!iuP$UoEPK z(@IH}wn!1lrA=5{lrf#>TOQjvf9;?1$NA%YAN#|@e!iE_=kvb5-mkaCQCz)|5hX+< zOze2C&dvWcN0gkLz?=TL>8)EkkFh%4JM?n18veGiiWKe-99>;R%z;+-Hh{2MP~+3o zPt(P>7cWY+nHVHht!_KDPYTt|-tIem{6_w|w7EITzaKlV)nmt#xOMF6E|(bP#aDN8 zFIe|T+T|OegTB$e@lvJN+`G31>OS)}jc|CR@zTaPX=9Sc$f;33h*q9>Dd;A8Ha+{_ zELOWT`O7Z4T{Y!x4X*Yy*r2!&zPaly>Vk36eOr%y0gl9B$1xxE%cruA{8q=^tl99z z$N>WeSiW#Nu}im{MRsDH$HcJIeMjqbMH_zmlU)-n$WtIA1*A86+b$INarP2^PuM&H z-1?Op$ljDI<mGbyI$9^~OUJ&|1?alM&Rekzpl>XW?vic{bP3Z1kUGx^RUPml+M;}) z!N3Qb^}EcFC$bUnI(Q-gVHs<R)I4oHd2@aO)}j;rKRBM|s(i>`ZWKk*r?3S7oJRYc z++3Q`cPAtqEUCH>M#+=0W-=yHAUfzIw5|WkOX51gRpa)z6gkjb0SzkI;CV}zUL%wM z#1n5kO-u0QZ1mmgBy9><gd1!EOob`}Zm@M^U<X4YO#aZ8r6}wFW})(|Pm*>Sqy|!k zUy&A6232B9rB&G3_mmUIFe1<8U}bsvy!yIjnR!*jL>)3>1Q-Qh2xVQa!RscjLF!qK zJv9nS_+X_`N;gRZ;JH5oE?LNg1Wu<A&2hqp?ORSR{W3@a={lP?uNp{$iQdkHgzWrV zJ+Bx>E(F*fMv<54ao^R{AO{WMXF!)z%@?lGko?lz+9q>4n}sL?&OK=kft(dNRFMOy zsHmV<WtF@8o|>|;9*2|}P%B(WpVk2Z-f19plm^`4_W)6nmNsN$@9}Rd0z4eyuK@{T zhY=RCIylIKH|wAFNwNydeEm?|<MS@6)MjvJg-x4{sMx>cZa`~Z_SM-`aebm@Icy5Y zp{N8I$?l=1fTGFIz%{DsPBhV#koZwB{eowJ{S2S+c|NF765><CT1O?AW3JtRT+pVc zr7z1bJ`Z<-ag?=9ZvL4ibDq%2v3SuU;nqP(&Hm^msSx#l;rCmVsSpUCv(ahxcZ#XH z9GnR=a66#Ek$G`aJR)U}DK|Q-H+PWlfUFwrXF&Q#(?mr&pCtE1ec!=ZHD!UJ`!(Y| z|NetA817D63PS2xx9KcUrB#g@qjR9GVWQ@4ZXI7sPm7A<h~~4`_g}so#LyWaHt58x z?CgQ_gVAwxpLam4J#AXUYx|#KB(RW-r4OB)wmLMwf*KS^mEW$@rAYO?mAIUZki#MM zBFGZE&*_xyv^LQf!xTiJEw$J0O+o|gEufa7)qcFL_ItxCK#{Iy%t=*6-uK`ejQ`^s ztlk#pTE3Gzh-5qWn%?>Oij}80|5#vpYz7VO+P8P4xw#h@H@uf~US>1<gN*9I;ly>j zanf&#<(_fFh8-Z0g=;Z&$XxBzYnJL+{&XGC{B!4IvO(C7-~WJyd=B7?6h@-ejH?I; z&kDq106p|<w`2c-=v8-a@Ggv-f5N!|X2VdSt<~2REYgO*ygqo`q<Qs&-pJIP^e`T! zbY1Kf(cq7V0cpdd22DVMS{<}{N|M2bYJAgG#xPsrE5UbQ`>+$qOioQ@c%11Mck7s( z2q6PDf!Vtel-yiXCM-J}^9BlIr)&S>*yiSi3l^}RUz9Y-S+c^E2r4sw*#oLS5YR00 z_RiLfKd%T#wcvYE6_+k8rgQ}D2l%P=z(Jqo#0ALPqjCAaz^z=i^fug?lCs3h>$pbb z#xHN`y!ze8&$Md;fb4mrk?{T`C5ONp!%dG;WTcP%p*Kui%O+~v#d+K6zigTDx-)Q= zUrKiTehB-D61vy=^<^EMw@1x(wEq~aQy)~yFVGojQLchq1dMHv+;`F(2L}gd=kr19 z!dup~=F~Q2Y>kcmgq88V)%8nBD45CLpr4w8T$kTV)RyKhs^2BB7Wrfup&b|)i28`U zT4w2nN+1aX-Ny%1$OOvAjX{5JGy#aHsIOyN#=9FMudjB-65Om%Li6k|XD7&T8^KRg z7)u@RHv>P*(=)y1HT~^kC7ky4dsaJhWen&j(pSQZ#Ic$*=`qhrhb|W~5t*ebv{<$` zJ`UORQ|UCDkbI|{2X!Z#2cpsp=DWFtbA-&y&9@JpM9bLh0KddzHQGc9Gz?b49XjrQ z>PK**sdmv(=(ol)(>kh}7Rq3uKA}j<Ib$5-!jLF^k)HPUkVA2vC!CF9YtK?xO|;5* ze_Ww*4;asE0uP~t#;A+`SoHwpoe*;YINPt$*;Im3TZ`Z8{plw2L3UBkS*a@+70~u3 zdQ;auOiM}%rE_K+DA@xC?D-PbkA0XH(z3tgWVsey;eA1|#p8CbFod2Zmc=_fHyy{T zTUcE1;P)`c0xokcDY9?A`G)3BYp>tF${S;pRb$oV;v+C>D2Hh*R`1xMuX`3pEXFVJ z=T|c0X55+4t(5l{6-CjSB_%T~+r5kF8%<isG$|C9>2}2bahD^`_k?f0?D6n-mwfxZ zJ9kRYott^ZPqX?a5G)dC9YY$;UFOcc+_Z*+b@%;IqjocGLSI*Sa&fr6(ww}Am6*qO z(&EXj7awzndE{{3Nj;?JU{21@Ol<8Fa}(a$AgJ*+njATLbV}GZ^lDFpL^E~r`py$5 z+B>zAXH_?-ZqwH&;HIU)bJjnP)|Rp^W${DzB`2?IsUC)`d>MV&Y5FI%Q1#)EKDhSv zFZs>P&U#38tUblZvI^)UVdvx0!%i?q&oouz#cw+ju>Ew&hg<xTkG*5P(95e4@GW<h zp+i(t%g*hwP`2hQsyAm~Svaar909*RWW(A0CxmHjZEX=ou|5=p6SWmgGdty5x{c1i zPAncNQ7)|feFj0HLwoh=MP!&{WpLJDz<^Q8Rz(kIql2qAnz-foZ*8=)2l6*z;zR<3 z?bEy#E=<5yq@`tbZ-62bjmpev?9$Q9%uj3vZFLl=EN3d=>%_hND=u8P##6u>Zm-hf z69LAhLorF2U_3DWopWP7j03lKEA>fZ$3BG4kNv)K^58hmx7NAAAIndaa|d@J{(6kX zm@%G(5ut29Vb^0`)!fX?LYV+Lb$jd8V2-?m+{BsiNl9lT?wPrrT{K92`dDYVx_(@5 z(B}yt;MAJ3m7$oa9yid^n8)v^D|3y8v5IE<HXmFDFnXxi#8-;iY{Uo#O^vX&UPn}Y z>0Svn{B=T|n5Sa&d}Vy$KT=eyXpNO=%&cxcf{RXn(_RYrY$zd+27A@kF|sq`kIlS_ z*Jy)E!$E};=?K1kTu0a_Wfs~kV_$38IRM%><i8>s77?>nc2l?+ITIL2CcwIj0fMxC ze!cl=GQvQ-D};O)=(e!`4Ue~3OYxn#FhXqwbF<-iU±b858VCy<MlE7|*M%6voh zBl{)Rl$kaFzJHpd{JGedKAA>DlC~Jm!@=~WSaMjkMt-z+2tvVj4?o_v;@AC;Ek=({ zL+cU0z@ZZbzBw9}Gs-FV8FRqdVtG_gEtibw_ms8*UYClAHDrYpP43}&)<Js3chFI= z20pOZBX3E|1|^6YL$@9;K^(WFW^_+3ap&ov2ZZOZ{pHo-!dhOasF*LVs-|lG(xvNR zZk%DNmJo=74zfq8Sp^>+eYkjGNAg5WJsf33nNo>k6cp439HkiOZ%Zrk+ZP8TM4Y7a z3RP<G6B+1CXpB5CQ*Q-!LnzrStq=Fm*;E$3SrLdg&p|>UDhS_lb8~~&t}S~RI|W@k z)V_WpwFxY}l&?5FxFn2zQ4?1&{=>%1%xUtRT*4XwDC4DfJ0H43f&3CKP@nT;>>jnT z1q(3X$;5PgE|x)h9bS1)<ZA>34U9dM>;kFu6u{+F_EFlcl~x&e@|7<<w1~Hm-|=to za5Kciov+0Kkxc@=3n0FjLIn4w^MYyY1tjkAqE`N%;=2=+Lau`APqTN^?+dRr9Z{Ns zf~k5jKyHhl-x(*)`G|f~9x5{zXYVBnV3~@4?b1d(UInI6N57XO2Q@;pCXp5*jXHs( z{RHcRhiilQ*L7g-vX|s$0GL2*z0<A@$)r}tRxF^tw7*mmj@1!FH9|Bdg++mUmJg3_ zM<Q`N&K0h}U|^Scgl+gwK7d`?Z=O$jU;G!WHfu<8ffR;rz>f{I84g6a)}P-NJ}pvo z7Lt^6-zKT8W9Ov>hN&$dv{!$~vEsHauC6vuYUybKC>1w&(kjsQ;Ai6E#~E3!oEH@p zMWspnbcI6D!3aSlwNEj~goV+yix%T@Rv3`;+vQ6hb$aH`#KaIByH@gKOfNt^To1~A zmwX*Ik8_G|K?Wz?TIEH%oW3r~)zHvT5a+mX!t0F|Fwx`KM1mowj>g7DQwqwFH9ABZ zlL6v@U<A5M+Rqz}*_>NB7_e0_Vcu@L=oe%lWQH?GO}gIoV#sL;RV4?D#}M+x7CnW_ zAQcG*_AA99B8196UjF_iK-8!u3T?pq3prB45rT)(oJpCGHx@n)3XXy*tMq;`0m^S~ z4RVQ{iKerH2A*qh_7{=Nywo8$F`^d2N*ODJ12y*Fc3~!<{qDR>BPB29Q{6{x<FQhA z{H#doi+C9PZ6>c^uP+p+^gKk9)g%1m<=AgZoO@|5e16}%>#MA+-Z3V&wl8FY0Abfa zU3&+I7|DRHwAgCO%GHL`%O&)U*ko1&+}WeZN1qC>BN0!1o@%JBJ#|Xx@B8)d3VuiO zMI0g3^#ZER9S}?wFy$(u<KYLY#xpFJaQ~sxKLF|`{AdFQTCcr5s|_irUU17){h1`4 zxg46CmUsW@PbE%%rvE>ddYAJ5|KIArSMliT5t>tYXhuQ#Vp-SOPIDcPJNU%>3*c=Q A?f?J) diff --git a/exercises/solution/exercise-basic/injection2pniproblem.hh b/exercises/solution/exercise-basic/injection2pniproblem.hh index aa74091c..a0e7478b 100644 --- a/exercises/solution/exercise-basic/injection2pniproblem.hh +++ b/exercises/solution/exercise-basic/injection2pniproblem.hh @@ -73,13 +73,13 @@ public: /*pMax=*/30e6, /*numP=*/300); - // name of the problem and output file + // Name of the problem and output file // getParam<TYPE>("GROUPNAME.PARAMNAME") reads and sets parameter PARAMNAME // of type TYPE given in the group GROUPNAME from the input file name_ = getParam<std::string>("Problem.Name"); - // depth of the aquifer, unit: m + // Depth of the aquifer, unit: m aquiferDepth_ = getParam<Scalar>("Problem.AquiferDepth"); - // the duration of the injection, unit: seconds + // The duration of the injection, unit: seconds injectionDuration_ = getParam<Scalar>("Problem.InjectionDuration"); } @@ -127,20 +127,20 @@ public: */ NumEqVector neumannAtPos(const GlobalPosition &globalPos) const { - // initialize values to zero, i.e. no-flow Neumann boundary conditions + // Initialize values to zero, i.e. no-flow Neumann boundary conditions NumEqVector values(0.0); - // if we are inside the injection zone set inflow Neumann boundary conditions - if (injectionActive() && onInjectionBoundary(globalPos)) + // If we are inside the injection zone set inflow Neumann boundary conditions + if (injectionActive() && onInjectionBoundary(globalPos)) { const Scalar injectionRate = -1e-4; - // inject nitrogen. Negative values mean injection - // unit: kg/(s*m^2) + // Inject nitrogen. Negative values mean injection + // Unit: kg/(s*m^2) values[Indices::conti0EqIdx + FluidSystem::N2Idx] = injectionRate; values[Indices::conti0EqIdx + FluidSystem::H2OIdx] = 0.0; - // energy fluxes are always mass specific + // Energy fluxes are always mass specific // unit: W/(m^2) const Scalar temperatureAtInjection = initialAtPos(globalPos)[Indices::temperatureIdx];/*K*/ const Scalar pressureAtInjection = initialAtPos(globalPos)[Indices::pressureIdx];/*Pa*/ @@ -170,11 +170,11 @@ public: { PrimaryVariables values(0.0); - // get the water density at atmospheric conditions + // Get the water density at atmospheric conditions const Scalar densityW = FluidSystem::H2O::liquidDensity(283.15, 1.0e5); - // assume an initially hydrostatic liquid pressure profile - // note: we subtract rho_w*g*h because g is defined negative + // Assume an initially hydrostatic liquid pressure profile + // Note: we subtract rho_w*g*h because g is defined negative const Scalar pw = 1.0e5 - densityW*this->spatialParams().gravity(globalPos)[dimWorld-1]*(aquiferDepth_ - globalPos[dimWorld-1]); values[Indices::pressureIdx] = pw; diff --git a/exercises/solution/exercise-fluidsystem/2p2cproblem.hh b/exercises/solution/exercise-fluidsystem/2p2cproblem.hh index 2cf74590..4f16f28f 100644 --- a/exercises/solution/exercise-fluidsystem/2p2cproblem.hh +++ b/exercises/solution/exercise-fluidsystem/2p2cproblem.hh @@ -7,12 +7,12 @@ /*! * \file * - * \brief Tutorial problem for a fully coupled two phase-two component box model. + * \brief Tutorial problem for a fully coupled two-phase two-component box model. */ #ifndef DUMUX_EXERCISE_FLUIDSYSTEM_B_PROBLEM_HH #define DUMUX_EXERCISE_FLUIDSYSTEM_B_PROBLEM_HH -// The base porous media box problem +// The base porous media box problem. #include <dumux/porousmediumflow/problem.hh> #include <dumux/common/boundarytypes.hh> #include <dumux/common/properties.hh> @@ -23,7 +23,7 @@ namespace Dumux { /*! * \ingroup TwoPBoxModel * - * \brief Tutorial problem for a fully coupled two phase-two component box model. + * \brief Tutorial problem for a fully coupled two-phase two-component box model. */ template <class TypeTag> class ExerciseFluidsystemProblemTwoPTwoC : public PorousMediumFlowProblem<TypeTag> @@ -64,7 +64,7 @@ public: * \brief Specifies which kind of boundary condition should be * used for which equation on a given boundary segment. * - * \param globalPos The position for which the bc type should be evaluated + * \param globalPos The position for which the bc type should be evaluated. */ BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const { @@ -80,9 +80,9 @@ public: /*! * \brief Evaluates the boundary conditions for a Dirichlet - * boundary segment + * boundary segment. * - * \param globalPos The global position + * \param globalPos The global position. */ PrimaryVariables dirichletAtPos(const GlobalPosition &globalPos) const { @@ -113,7 +113,7 @@ public: } else { - // no-flow on the remaining Neumann-boundaries. + // no-flow on the remaining Neumann-boundaries values[Indices::conti0EqIdx + FluidSystem::H2OIdx] = 0; values[Indices::conti0EqIdx + FluidSystem::NAPLIdx] = 0; } @@ -125,7 +125,7 @@ public: /*! * \brief Evaluate the initial value for a control volume. * - * \param globalPos The position for which the initial condition should be evaluated + * \param globalPos The position for which the initial condition should be evaluated. * * For this method, the \a values parameter stores primary * variables. @@ -149,9 +149,9 @@ public: /*! - * \brief Returns the source term + * \brief Returns the source term. * - * \param globalPos The global position + * \param globalPos The global position. */ NumEqVector sourceAtPos(const GlobalPosition &globalPos) const { @@ -162,8 +162,8 @@ public: private: - Scalar eps_; //! small epsilon value - Scalar depthBOR_; //! depth at the bottom of the reservoir + Scalar eps_; //! Small epsilon value + Scalar depthBOR_; //! Depth at the bottom of the reservoir }; } // end namespace Dumux diff --git a/exercises/solution/exercise-fluidsystem/2p2cproperties.hh b/exercises/solution/exercise-fluidsystem/2p2cproperties.hh index 5bdc04c7..fc13a8a6 100644 --- a/exercises/solution/exercise-fluidsystem/2p2cproperties.hh +++ b/exercises/solution/exercise-fluidsystem/2p2cproperties.hh @@ -27,12 +27,11 @@ // The fluid system that is created in this exercise #include "fluidsystems/h2omycompressiblecomponent.hh" -// The problem file, where setup-specific boundary and initial conditions are defined. +// The problem file, where setup-specific boundary and initial conditions are defined #include"2p2cproblem.hh" namespace Dumux::Properties { -// Create a new type tag for the problem // Create new type tags namespace TTag { struct ExerciseFluidsystemTwoPTwoC { using InheritsFrom = std::tuple<TwoPTwoC, BoxModel>; }; diff --git a/exercises/solution/exercise-fluidsystem/2pproblem.hh b/exercises/solution/exercise-fluidsystem/2pproblem.hh index 8258644f..4f9d17b2 100644 --- a/exercises/solution/exercise-fluidsystem/2pproblem.hh +++ b/exercises/solution/exercise-fluidsystem/2pproblem.hh @@ -7,7 +7,7 @@ /*! * \file * - * \brief Tutorial problem for a fully coupled twophase box model. + * \brief Tutorial problem for a fully coupled two-phase box model. */ #ifndef DUMUX_EXERCISE_FLUIDSYSTEM_A_PROBLEM_HH #define DUMUX_EXERCISE_FLUIDSYSTEM_A_PROBLEM_HH @@ -29,7 +29,7 @@ namespace Dumux { /*! * \ingroup TwoPBoxModel - * \brief Tutorial problem for a fully coupled twophase box model. + * \brief Tutorial problem for a fully coupled two-phase box model. */ template <class TypeTag> class ExerciseFluidsystemProblemTwoP : public PorousMediumFlowProblem<TypeTag> @@ -86,7 +86,7 @@ public: * \brief Specifies which kind of boundary condition should be * used for which equation on a given boundary segment. * - * \param globalPos The position for which the bc type should be evaluated + * \param globalPos The position for which the bc type should be evaluated. */ BoundaryTypes boundaryTypesAtPos(const GlobalPosition &globalPos) const { @@ -102,9 +102,9 @@ public: /*! * \brief Evaluates the boundary conditions for a Dirichlet - * boundary segment + * boundary segment. * - * \param globalPos The global position + * \param globalPos The global position. */ PrimaryVariables dirichletAtPos(const GlobalPosition& globalPos) const { @@ -136,7 +136,7 @@ public: } else { - // no-flow on the remaining Neumann-boundaries. + // no-flow on the remaining Neumann-boundaries values[contiWEqIdx] = 0; values[contiNEqIdx] = 0; } @@ -148,7 +148,7 @@ public: /*! * \brief Evaluate the initial value for a control volume. * - * \param globalPos The position for which the initial condition should be evaluated + * \param globalPos The position for which the initial condition should be evaluated. * * For this method, the \a values parameter stores primary * variables. @@ -167,9 +167,9 @@ public: /*! - * \brief Returns the source term + * \brief Returns the source term. * - * \param globalPos The global position + * \param globalPos The global position. */ NumEqVector sourceAtPos(const GlobalPosition& globalPos) const { @@ -207,9 +207,9 @@ private: gnuplot_.plot("YourComponentPhase_density"); } - Scalar eps_; //! small epsilon value - Scalar depthBOR_; //! depth at the bottom of the reservoir - Dumux::GnuplotInterface<double> gnuplot_; //! collects data for plotting + Scalar eps_; //! Small epsilon value + Scalar depthBOR_; //! Depth at the bottom of the reservoir + Dumux::GnuplotInterface<double> gnuplot_; //! Collects data for plotting }; } // end namespace Dumux diff --git a/exercises/solution/exercise-fluidsystem/2pproperties.hh b/exercises/solution/exercise-fluidsystem/2pproperties.hh index a89db8fd..dd901d72 100644 --- a/exercises/solution/exercise-fluidsystem/2pproperties.hh +++ b/exercises/solution/exercise-fluidsystem/2pproperties.hh @@ -7,7 +7,7 @@ /*! * \file * - * \brief The properties file for two phase exercise-fluidsystem. + * \brief The properties file for two-phase exercise-fluidsystem. */ #ifndef DUMUX_EXERCISE_FLUIDSYSTEM_A_PROPERTIES_HH #define DUMUX_EXERCISE_FLUIDSYSTEM_A_PROPERTIES_HH @@ -37,12 +37,11 @@ // The interface to create plots during simulation #include <dumux/io/gnuplotinterface.hh> -// The problem file, where setup-specific boundary and initial conditions are defined. +// The problem file, where setup-specific boundary and initial conditions are defined #include"2pproblem.hh" namespace Dumux::Properties { -// Create a new type tag for the problem // Create new type tags namespace TTag { struct ExerciseFluidsystemTwoP { using InheritsFrom = std::tuple<TwoP, BoxModel>; }; @@ -67,7 +66,7 @@ public: template<class TypeTag> struct Grid<TypeTag, TTag::ExerciseFluidsystemTwoP> { using type = Dune::YaspGrid<2>; }; -// we use the immiscible fluid system here +// We use the immiscible fluid system here template<class TypeTag> struct FluidSystem<TypeTag, TTag::ExerciseFluidsystemTwoP> { @@ -76,11 +75,12 @@ private: using TabulatedH2O = Components::TabulatedComponent<Components::H2O<Scalar>>; using LiquidWaterPhase = typename FluidSystems::OnePLiquid<Scalar, TabulatedH2O>; /*! + * TODO: dumux-course-task 2.2: * Uncomment first line and comment second line for using the incompressible component * Uncomment second line and comment first line for using the compressible component */ - using LiquidMyComponentPhase = typename FluidSystems::OnePLiquid<Scalar, MyIncompressibleComponent<Scalar> >; - // using LiquidMyComponentPhase = typename FluidSystems::OnePLiquid<Scalar, MyCompressibleComponent<Scalar> >; + using LiquidMyComponentPhase = typename FluidSystems::OnePLiquid<Scalar, MyIncompressibleComponent<Scalar> >; + //using LiquidMyComponentPhase = typename FluidSystems::OnePLiquid<Scalar, MyCompressibleComponent<Scalar> >; public: using type = typename FluidSystems::TwoPImmiscible<Scalar, LiquidWaterPhase, LiquidMyComponentPhase>; diff --git a/exercises/solution/exercise-fluidsystem/aparams.input b/exercises/solution/exercise-fluidsystem/aparams.input index 594ad15c..5add5c76 100644 --- a/exercises/solution/exercise-fluidsystem/aparams.input +++ b/exercises/solution/exercise-fluidsystem/aparams.input @@ -6,11 +6,11 @@ DtInitial = 10 # initial time step size [s] Name = exercise-fluidsystem_a_solution # name will be given to e.g. to the vtk result files [SpatialParams] -BrooksCoreyPcEntry = 5.0e2 # Pa +BrooksCoreyPcEntry = 5.0e2 # [Pa] BrooksCoreyLambda = 2.0 Swr = 0.1 Snr = 0.0 -Lens.BrooksCoreyPcEntry = 1e3 # Pa +Lens.BrooksCoreyPcEntry = 1e3 # [Pa] Lens.BrooksCoreyLambda = 2.0 Lens.Swr = 0.1 Lens.Snr = 0.0 diff --git a/exercises/solution/exercise-fluidsystem/binarycoefficients/h2omycompressiblecomponent.hh b/exercises/solution/exercise-fluidsystem/binarycoefficients/h2omycompressiblecomponent.hh index dbaad539..79a4e55a 100644 --- a/exercises/solution/exercise-fluidsystem/binarycoefficients/h2omycompressiblecomponent.hh +++ b/exercises/solution/exercise-fluidsystem/binarycoefficients/h2omycompressiblecomponent.hh @@ -7,7 +7,7 @@ /*! * \file * - * \brief Binary coefficients for water and a fictitious component implemented in exercise-fluidsystem a. + * \brief Binary coefficients for water and a fictitious component implemented in exercise-fluidsystem 2.1. */ #ifndef DUMUX_BINARY_COEFF_H2O_MYCOMPRESSIBLECOMPONENT_HH #define DUMUX_BINARY_COEFF_H2O_MYCOMPRESSIBLECOMPONENT_HH @@ -18,8 +18,7 @@ namespace BinaryCoeff { /*! - * \brief Binary coefficients for water and a fictitious component implemented in exercise-fluidsystem a - * The implementation of the missing methods in this file is part of exercise-fluidsystem b. + * \brief Binary coefficients for water and a fictitious component implemented in exercise-fluidsystem 2.1. */ class H2O_MyCompressibleComponent { @@ -30,7 +29,7 @@ public: template <class Scalar> static Scalar henryMyCompressibleComponentInWater(Scalar temperature) { - Scalar dumuxH = 1.5e-1 / 101.325; // unit [(mol/m^3)/Pa] + Scalar dumuxH = 1.5e-1 / 101.325; // [(mol/m^3)/Pa] dumuxH *= 18.02e-6; //multiplied by molar volume of reference phase = water return 1.0/dumuxH; // [Pa] } @@ -52,7 +51,7 @@ public: static Scalar liquidDiffCoeff(Scalar temperature, Scalar pressure) { // arbitrary - return 1.e-9; + return 1.e-9; // [m^2/s] } }; diff --git a/exercises/solution/exercise-fluidsystem/bparams.input b/exercises/solution/exercise-fluidsystem/bparams.input index a421776f..3e73a5ea 100644 --- a/exercises/solution/exercise-fluidsystem/bparams.input +++ b/exercises/solution/exercise-fluidsystem/bparams.input @@ -6,11 +6,11 @@ DtInitial = 10 # initial time step size [s] Name = exercise-fluidsystem_b_solution # name will be given to e.g. to the vtk result files [SpatialParams] -BrooksCoreyPcEntry = 5.0e2 # Pa +BrooksCoreyPcEntry = 5.0e2 # [Pa] BrooksCoreyLambda = 2.0 Swr = 0.1 Snr = 0.0 -Lens.BrooksCoreyPcEntry = 1e3 # Pa +Lens.BrooksCoreyPcEntry = 1e3 # [Pa] Lens.BrooksCoreyLambda = 2.0 Lens.Swr = 0.1 Lens.Snr = 0.0 diff --git a/exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh b/exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh index 2171bd1a..1c6011b3 100644 --- a/exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh +++ b/exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh @@ -7,7 +7,7 @@ /*! * \file * \ingroup Components - * \brief A fictitious component to be implemented in exercise 3. + * \brief A fictitious component to be implemented in exercise 2.2. */ #ifndef DUMUX_MYCOMPRESSIBLECOMPONENT_HH #define DUMUX_MYCOMPRESSIBLECOMPONENT_HH @@ -21,7 +21,7 @@ namespace Dumux { /*! * \ingroup Components - * \brief A fictitious component to be implemented in exercise 3. + * \brief A fictitious component to be implemented in exercise 2.2. * * \tparam Scalar The type used for scalar values */ @@ -39,7 +39,7 @@ public: { return "MyCompressibleComponent"; } /*! - * \brief Returns true if the liquid phase is assumed to be compressible + * \brief Returns true if the liquid phase is assumed to be compressible. */ static constexpr bool liquidIsCompressible() { return true; } @@ -61,9 +61,9 @@ public: */ static Scalar liquidDensity(Scalar temperature, Scalar pressure) { - static const Scalar rho_min = 1440; - static const Scalar rho_max = 1480; - static const Scalar k = 5e-7; + static const Scalar rho_min = 1440.0; + static const Scalar rho_max = 1480.0; + static const Scalar k = 5.0e-7; using std::exp; return rho_min + (rho_max - rho_min)/(1 + rho_min*exp(-1.0*k*(rho_max - rho_min)*pressure)); // [kg/m^3] @@ -101,7 +101,7 @@ public: */ static Scalar vaporPressure(Scalar t) { - return 3900; // [Pa] (at 20C) + return 3900.0; // [Pa] (at 20°C) } }; diff --git a/exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh b/exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh index 40f19898..6bca0349 100644 --- a/exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh +++ b/exercises/solution/exercise-fluidsystem/components/myincompressiblecomponent.hh @@ -7,7 +7,7 @@ /*! * \file * \ingroup Components - * \brief A fictitious component to be implemented in exercise-fluidsystem a. + * \brief A fictitious component to be implemented in exercise-fluidsystem 2.1. */ #ifndef DUMUX_MYINCOMPRESSIBLECOMPONENT_HH #define DUMUX_MYINCOMPRESSIBLECOMPONENT_HH @@ -21,9 +21,9 @@ namespace Dumux { /*! * \ingroup Components - * \brief A fictitious component to be implemented in exercise-fluidsystem a. + * \brief A fictitious component to be implemented in exercise-fluidsystem 2.1. * - * \tparam Scalar The type used for scalar values + * \tparam Scalar The type used for scalar values. */ template <class Scalar> class MyIncompressibleComponent @@ -38,7 +38,7 @@ public: { return "MyIncompressibleComponent"; } /*! - * \brief Returns true if the liquid phase is assumed to be compressible + * \brief Returns true if the liquid phase is assumed to be compressible. */ static constexpr bool liquidIsCompressible() { return false; } diff --git a/exercises/solution/exercise-fluidsystem/components/plotdensityfunction.py b/exercises/solution/exercise-fluidsystem/components/plotdensityfunction.py index 209e191b..943bfafe 100644 --- a/exercises/solution/exercise-fluidsystem/components/plotdensityfunction.py +++ b/exercises/solution/exercise-fluidsystem/components/plotdensityfunction.py @@ -5,18 +5,18 @@ import numpy as np import matplotlib.pyplot as plt -# function to calculate rho dependent on pressure -rho_min = 1440; -rho_max = 1480; -k = 5e-7; +# Function to calculate rho dependent on pressure. +rho_min = 1440.0; +rho_max = 1480.0; +k = 5.0e-7; def rho(p): return rho_min + (rho_max - rho_min)/(1 + rho_min*np.exp(-1.0*k*(rho_max - rho_min)*p)); -# sample pressure in range (1e4, 1e7) and compute corresponding densities +# Sample pressure in range (1e4, 1e7) and compute corresponding densities. p = np.logspace(4, 7, 100) r = rho(p) -# plot density vs. pressure +# Plot density vs. pressure. plt.semilogx(p, r) plt.show() diff --git a/exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh b/exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh index 9c47f792..a5a4a5f7 100644 --- a/exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh +++ b/exercises/solution/exercise-fluidsystem/fluidsystems/h2omycompressiblecomponent.hh @@ -1,4 +1,3 @@ -// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- // vi: set et ts=4 sw=4 sts=4: // // SPDX-FileCopyrightInfo: Copyright © DuMux-Course contributors, see AUTHORS.md in root folder @@ -8,8 +7,8 @@ * \file * * \brief A fluid system with water and a fictitious component, which is to be - * implemented in exercise-fluidsystem a, as phases and components. This - * fluid system is to be implemented in exercise-fluidsystem b. + * implemented in exercise-fluidsystem 2.2, as phases and components. This + * fluid system is to be implemented in exercise-fluidsystem 3. */ #ifndef DUMUX_H2O_MYCOMPRESSIBLECOMPONENT_FLUID_SYSTEM_HH #define DUMUX_H2O_MYCOMPRESSIBLECOMPONENT_FLUID_SYSTEM_HH @@ -19,10 +18,10 @@ #include <dumux/material/fluidsystems/base.hh> -// the fictitious component that was created in exercise 3a +// The fictitious component that was created in exercise-fluidsystem 2.2 #include <exercises/solution/exercise-fluidsystem/components/mycompressiblecomponent.hh> -// the binary coefficients corresponding to this fluid system +// The binary coefficients corresponding to this fluid system #include <exercises/solution/exercise-fluidsystem/binarycoefficients/h2omycompressiblecomponent.hh> namespace Dumux { @@ -30,7 +29,7 @@ namespace FluidSystems { /*! * \brief A compositional fluid consisting of two liquid phases, - * which are water and a fictitious component from exercise-fluidsystem a. + * which are water and a fictitious component from exercise-fluidsystem 2.2. */ template <class Scalar, class H2OType = Dumux::Components::TabulatedComponent<Dumux::Components::H2O<Scalar> > > @@ -47,12 +46,12 @@ public: static constexpr int numPhases = 2; static constexpr int numComponents = 2; - static constexpr int phase0Idx = 0; // index of the first phase - static constexpr int phase1Idx = 1; // index of the second phase + static constexpr int phase0Idx = 0; // Index of the first phase + static constexpr int phase1Idx = 1; // Index of the second phase static constexpr int H2OIdx = 0; static constexpr int NAPLIdx = 1; - // export component indices to indicate the main component + // Export component indices to indicate the main component // of the corresponding phase at atmospheric pressure 1 bar // and room temperature 20°C: static constexpr int comp0Idx = H2OIdx; @@ -210,7 +209,7 @@ public: if (phaseIdx == phase0Idx) { - // See: doctoral thesis of Steffen Ochs 2007 + // see: doctoral thesis of Steffen Ochs 2007 // Steam injection into saturated porous media : process analysis including experimental and numerical investigations // http://elib.uni-stuttgart.de/bitstream/11682/271/1/Diss_Ochs_OPUS.pdf Scalar rholH2O = H2O::liquidDensity(fluidState.temperature(phaseIdx), fluidState.pressure(phaseIdx)); @@ -236,7 +235,7 @@ public: * The molar density for the simple relation is defined by the * mass density \f$\rho_\alpha\f$ and the molar mass of the main component * - * The molar density for the complrex relation is defined by the + * The molar density for the complex relation is defined by the * mass density \f$\rho_\alpha\f$ and the mean molar mass \f$\overline M_\alpha\f$: * * \f[\rho_{mol,\alpha} = \frac{\rho_\alpha}{\overline M_\alpha} \;.\f] @@ -394,8 +393,10 @@ public: DUNE_THROW(Dune::NotImplemented, "FluidSystems::H2OMyCompressibleComponent::kelvinVaporPressure()"); } - /* partial pressures in the gas phase, taken from saturation vapor pressures + /*! + * \brief Partial pressures in the gas phase, taken from saturation vapor pressures. */ + template <class FluidState> static Scalar partialPressureGas(const FluidState &fluidState, int phaseIdx, int compIdx) @@ -411,8 +412,10 @@ public: DUNE_THROW(Dune::InvalidStateException, "non-existent component index " << compIdx); } - /* inverse vapor pressures, taken from inverse saturation vapor pressures + /*! + * \brief Inverse vapor pressures, taken from inverse saturation vapor pressures. */ + template <class FluidState> static Scalar inverseVaporPressureCurve(const FluidState &fluidState, int phaseIdx, diff --git a/exercises/solution/exercise-fluidsystem/main.cc b/exercises/solution/exercise-fluidsystem/main.cc index 4ad7547d..6b94b931 100644 --- a/exercises/solution/exercise-fluidsystem/main.cc +++ b/exercises/solution/exercise-fluidsystem/main.cc @@ -6,7 +6,7 @@ // /*! * \file - * \brief The main file for exercise 3. This solves an instationary problem + * \brief The main file for exercise-fluidsystem. This solves an instationary problem * with an implicit time discretization. */ #include <config.h> @@ -36,12 +36,12 @@ int main(int argc, char** argv) { using namespace Dumux; - - // define the type tag for this problem - // TYPETAG is set in CMakeLists.txt as compile time definition - // alternatively you could write `using TypeTag = Properties::TTag::ExerciseFluidsystemTwoP;` + + // TODO: dumux-course-task 3: + // TYPETAG is set in CMakeLists.txt as compile time definition. + // Alternatively, you could write `using TypeTag = Properties::TTag::ExerciseFluidsystemTwoP;` // then, for the 2p2c problem you have to change this line to `using TypeTag = Properties::TTag::ExerciseFluidsystemTwoPTwoC;` - // and recompile the executable + // and recompile the executable. using TypeTag = Properties::TTag::TYPETAG; // initialize MPI+x, finalize is done automatically on exit @@ -85,6 +85,7 @@ int main(int argc, char** argv) const auto tEnd = getParam<Scalar>("TimeLoop.TEnd"); const auto maxDt = getParam<Scalar>("TimeLoop.MaxTimeStepSize"); auto dt = getParam<Scalar>("TimeLoop.DtInitial"); + // initialize the vtk output module using IOFields = GetPropType<TypeTag, Properties::IOFields>; VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name()); diff --git a/exercises/solution/exercise-fluidsystem/spatialparams.hh b/exercises/solution/exercise-fluidsystem/spatialparams.hh index a5a51007..2769e517 100644 --- a/exercises/solution/exercise-fluidsystem/spatialparams.hh +++ b/exercises/solution/exercise-fluidsystem/spatialparams.hh @@ -13,10 +13,10 @@ #ifndef DUMUX_EXERCISE_FLUIDSYSTEM_SPATIAL_PARAMS_HH #define DUMUX_EXERCISE_FLUIDSYSTEM_SPATIAL_PARAMS_HH -// include parent spatialparameters +// Include parent spatial parameters #include <dumux/porousmediumflow/fvspatialparamsmp.hh> -//include fluid matrix interaction relationship +// Include fluid-matrix interaction relationship #include <dumux/material/fluidmatrixinteractions/2p/brookscorey.hh> #include <dumux/material/fluidmatrixinteractions/2p/linearmaterial.hh> @@ -44,13 +44,13 @@ class ExerciseFluidsystemSpatialParams using PcKrSwCurve = FluidMatrix::BrooksCoreyDefault<Scalar>; public: - // export permeability type + // Export permeability type using PermeabilityType = Dune::FieldMatrix<Scalar, dim, dim>; /*! - * \brief The constructor + * \brief The constructor. * - * \param gridGeometry The finite volume grid geometry + * \param gridGeometry The finite volume grid geometry. */ ExerciseFluidsystemSpatialParams(std::shared_ptr<const GridGeometry>& gridGeometry) : ParentType(gridGeometry) @@ -59,8 +59,8 @@ public: , pcKrSwCurve_("SpatialParams") , lensPcKrSwCurve_("SpatialParams.Lens") { - //set main diagonal entries of the permeability tensor to a value - //setting to one value means: isotropic, homogeneous + // set main diagonal entries of the permeability tensor to a value + // setting to one value means: isotropic, homogeneous for (int i = 0; i < dim; i++) { K_[i][i] = 1e-7; @@ -71,7 +71,7 @@ public: /*! * \brief Define the intrinsic permeability \f$\mathrm{[m^2]}\f$. * - * \param globalPos The global position + * \param globalPos The global position. */ PermeabilityType permeabilityAtPos(const GlobalPosition& globalPos) const @@ -84,7 +84,7 @@ public: /*! * \brief Define the porosity \f$\mathrm{[-]}\f$. * - * \param globalPos The global position + * \param globalPos The global position. */ Scalar porosityAtPos(const GlobalPosition& globalPos) const { @@ -94,8 +94,8 @@ public: } /*! - * \brief Returns the fluid-matrix interaction law at a given location - * \param globalPos The global coordinates for the given location + * \brief Returns the fluid-matrix interaction law at a given location. + * \param globalPos The global coordinates for the given location. */ auto fluidMatrixInteractionAtPos(const GlobalPosition& globalPos) const { @@ -107,18 +107,19 @@ public: /*! * \brief Function for defining which phase is to be considered as the wetting phase. * - * \return the wetting phase index - * \param globalPos The position of the center of the element + * \return The wetting phase index. + * \param globalPos The position of the center of the element. */ template<class FluidSystem> int wettingPhaseAtPos(const GlobalPosition& globalPos) const { - // Our fluid system is H2OMyCompressibleComponent + // Our fluid system is H2OMyCompressibleComponent. // We want to define water as the wetting phase in - // the entire domain (see fluid system for the phase indices) - - // For the last task (change of wettability), uncomment - // the two commented lines below + // the entire domain (see fluidsystem for the phase indices). + + // TODO: dumux-course-task 4: + // For task 4 (change of wettability), uncomment + // the two commented lines below: //if (isInLens(globalPos)) // return FluidSystem::phase1Idx; @@ -136,8 +137,8 @@ public: } /*! - * \brief Returns the temperature at the domain at the given position - * \param globalPos The position in global coordinates where the temperature should be specified + * \brief Returns the temperature at the domain at the given position. + * \param globalPos The position in global coordinates where the temperature should be specified. */ Scalar temperatureAtPos(const GlobalPosition& globalPos) const { @@ -150,7 +151,7 @@ private: Dune::FieldMatrix<Scalar, dim, dim> K_; Dune::FieldMatrix<Scalar, dim, dim> KLens_; - // Object that holds the values/parameters of the selected fluid matrix interaction relationship + // Object that holds the values/parameters of the selected fluid-matrix interaction relationship. const PcKrSwCurve pcKrSwCurve_; const PcKrSwCurve lensPcKrSwCurve_; }; -- GitLab