diff --git a/exercises/exercise-model/README.md b/exercises/exercise-model/README.md index 8892a84b3a0d0454e0d7aec3468a6bb585988ed0..cc50a4434272090394b7e7f222deb12e8af708ee 100644 --- a/exercises/exercise-model/README.md +++ b/exercises/exercise-model/README.md @@ -1,6 +1,6 @@ # Exercise Model (DuMuX course) The aim of this exercise is it to learn how to set up a new model (new system of equations). -As an example, we implement a nonlinear diffusion equation mode and apply it for image denoising. +As an example, we implement a nonlinear diffusion equation model and apply it for image denoising. In this exercise, we will only consider the bare minimum of classes to successfully assemble and solve such a problem with DuMux. We also implement the model for a specific discretization method (the Box method: a vertex-centered finite volume method also known as control-volume finite element method with piece-wise linear basis functions). @@ -38,17 +38,17 @@ The diffusion example also derives the discrete equations using the Box method a :arrow_right: Copy the `model.hh` file from the diffusion example into `dumux-course/exercises/exercise-model` and choose appropriate class names. -In the local residual, you can start with a hard-coded diffusion coefficient of `1.0` (linear diffusion coefficient function). -(Replace `problem.diffusionCoefficient()` by `1.0` because our problem class in `main.cc` does not have a `diffusionCoefficient()` interface.) -The goal is to get the simulation running first and then add improvements. For this, it is important to have a -compiling test such that new changes can continuously be tested. - Do also not forget to change the [include guards](https://en.wikipedia.org/wiki/Include_guard) at the beginning of header files (`DUMUX_EXAMPLES_DIFFUSION_MODEL_HH`). Include guards have to be unique in the entire application that you compile. (Otherwise some code will not be included.) An alternative is using [`#pragma once`](https://en.wikipedia.org/wiki/Pragma_once) which is widely supported but not specified by the C++ standard. +First, the goal is to get the simulation running and then add improvements. For this, it is important to have a +compiling test such that new changes can continuously be tested. +Thus, in the `computeFlux(...)` function of the local residual, you can start with a hard-coded diffusion coefficient of `1.0` (linear diffusion coefficient function). +(Replace `problem.diffusionCoefficient()` by `1.0` because our problem class in `main.cc` does not have a `diffusionCoefficient()` interface.) + Each model also needs to define a model type tag for setting model-specific properties. :arrow_right: Rename the one of the diffusion model (`struct DiffusionModel {};`) to `NonlinearDiffusionModel`.