Commit 369c72d8 authored by Dennis Gläser's avatar Dennis Gläser Committed by Simon Scholz
Browse files

[ex-fractures] remove readme in solution

parent 845b3b56
# Exercise #5 (DuMuX course)
In this exercise we are going to use the multidomain framework and in particular the facet coupling module, which allows defining coupled problems in which a (d-1)-dimensional domain lives on the element facets of a d-dimensional domain. Here we are going to make use of this in the context of fractured porous media, where the fractures are represented as lower-dimensional entities embedded in a porous matrix. In this framework it is required that the grid resolves the fractures by aligning the matrix element facets with the fracture geometries, for which we are using the open-source mesh generator _Gmsh_ ([see _Gmsh_ documentation]( Note that the Gmsh file format (_.msh_) is currently the only supported file format within the facet coupling module.
## Problem set-up
We consider a domain of 100 x 100 m with a set of ten fractures. Apart from one fracture extending up to the top boundary, all other fractures are immersed, meaning that the fracture tips lie within the domain. Both the grid and the domain are shown in the image below.
In the initial setup of this exercise, we want to consider buoancy-driven upwards migration of nitrogen (gas) in an initially fully water-saturated medium. We use hydrostatic pressure conditions and a zero nitrogen saturation as initial conditions, and prescribe no-flow boundary conditions on the left and right sides. We furthermore set the initial conditions as Dirichlet values for the upper and lower boundary except for the middle part of the lower boundary ($`y = 0 \wedge x > 25 \wedge x < 75`$), where we set a non-zero nitrogen saturation. Through this segment of the lower boundary, nitrogen can intrude the domain and flow upwards driven by buoancy.
## Preparing the exercise
Navigate to the directory `dumux/tutorial/exercise-fractures` and familiarize yourself with the files necessary for this exercise:
* The __main file__: ``
* The __input file__: `exercise_fractures.input`
* The __problem file__ for the matrix domain: `matrixproblem.hh`
* The __problem file__ for the fracture domain: `fractureproblem.hh`
* The __spatial parameters file__ for the matrix domain: `matrixspatialparams.hh`
* The __spatial parameters file__ for the matrix domain: `fracturespatialparams.hh`
You might want to take a closer look at the __main file__. The extensive comments above the key instructions will help you to understand the program flow of coupled problems and to identify the main differences with respect to an uncoupled _DuMuX_ model.
## Running the program
Head to the build directory, compile the exercise and execute the program by typing
cd build-cmake/exercises/exercise-fractures
make exercise_fractures
./exercise_fractures exercise_fractures.input
Take a look at the results by opening the files `matrix.pvd` and `fractures.pvd` with _Paraview_. In order to increase the visibility of the fracture solution, you might want to apply the tube filter to it (e.g. with a tube radius of 0.2). You will see how the fractures act as preferential flowpaths in the upwards movement of nitrogen due to their higher permeabilities. Additionally, you will observe high nitrogen saturations in the fracture tips as a result of the fractures acting as capillary traps due to the lower capillary pressures inside them. Consider turning them into capillary barriers, e.g. by setting __SpatialParams.VGAlpha = 1e-5__ in the fracture group in the input file (`exercise_fractures.input`). The nitrogen saturations in the fractures should now be lower than in the surrounding matrix. Do not forget to reset __SpatialParams.VGAlpha = 1e-1__ in the fracture group in the input file.
## Task A: Change the boundary conditions and disable gravity
In order for the influence of the fractures to be more visible in the resulting pressure fields, turn of gravity in the input file and change the boundary conditions in the two sub-problems (i.e. modify the function `boundaryTypesAtPos(...)` in `matrixproblem.hh` and `fractureproblem.hh`). We want to define the boundary conditions such that Neumann no-flow boundaries are used everywhere in the fracture domain and everywhere in the matrix domain except for the lower left and the upper right part of the lateral sides (i.e. $`x = 0 \wedge y < 25`$ and $`x = 100 \wedge y > 75`$).
Additionally, modify the function `dirichletAtPos(...)` in `matrixproblem.hh` such that an overpressure is added and a non-zero saturation is applied on the right Dirichlet segment ($`x = 100 \wedge y > 75`$). For this you can use the private variables `boundaryOverPressure_` and `boundarySaturation_` which are stored in the matrix problem and are read from the input file.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment