The `dune-mmdg` module is an an implementation of interior penalty discontinuous Galerkin schemes for fluid flow in porous media governed by Darcy's law.
It provides
- a discontinuous Galerkin scheme for bulk flow problems in 1D, 2D and 3D,
- a mixed-dimensional coupled discontinuous Galerkin scheme in 2D and 3D for fluid flow in fractured porous media
where fractures are represented by (n-1)-dimensional interfaces in an n-dimensional domain.
For details we refer to [1].
Installation
------------
Download the shell script `install.sh` and execute it inside the desired installation folder.
The script will download and build the `dune-mmdg` and its depending DUNE modules.
Dependencies
------------
`dune-mmdg` requires the DUNE core modules, version 2.7 or later, and a current version of the `dune-mmesh` module.
Additionally, for the `dune-mmesh` module, you will need a current version of `CGAL` installed on your system.
Executables
-----------
For the bulk scheme run one of the executables `dg-1d`, `dg-2d` or `dg-3d` in the `build-cmake/src` directory. The results can be visualized with paraview (file `s0001-pressureData.pvtp` for 1D or file `s0001-pressureData.pvtp` for 2D and 3D in the directory `build-cmake/src`).
Executing the python script `dgAnalysis.py` will run an EOC loop for the bulk scheme
in 1D, 2D and 3D for the test problem specified in the parameter file.
You can exclude computationally expensive grids from the EOC loop by setting
the parameter `fastEOC`.
The results can be visualized by subsequently running the python script `plotDG.py`.
You will find the plots in the directory `build-cmake/src/plots`.
For the coupled scheme run one of the executables `mmdg-2d` or `mmdg-3d` in the `build-cmake/src` directory. The results can be visualized with paraview (file `s0001-pressureData.pvtu` and for 2D file `s0001-interfacePressureData.pvtp` or for 3D file `s0001-interfacePressureData.pvtu` in the directory `build-cmake/src`).
Executing the python script `mmdgAnalysis.py` will run an EOC loop for the
coupled scheme in 2D and 3D for the test problem specified in the parameter file.
You can exclude computationally expensive grids from the EOC loop by setting
the parameter `fastEOC`.
The results can be visualized by subsequently running the python script `plotMMDG.py`.
You will find the plots in the directory `build-cmake/src/plots`.
Test Problems
-------------
The `dune-mmdg` module includes three test problems, `dg1` to `dg3`, for the bulk scheme and six test problems, `mmdg1` to `mmdg6`, for the coupled scheme.
The test problems `dg2`, `mmdg2`, `mmdg5` and `mmdg6` correspond to the examples 5.1 to 5.4 in [1].
Parameters
----------
For the bulk scheme the following parameters can be set in the file `parameterDG.ini` in the `src` directory:
-`mu0`: the prefactor of the penalty parameter (must be sufficiently large)
-`problem`: the name of a test problem (`dg1` to `dg3`)
-`fastEOC`: (optional) exclude computationally expensive grids from the EOC loop
For the coupled scheme the following parameters can be set in the file `parameterMMDG.ini` in the `src` directory:
-`mu0`: the prefactor of the penalty parameter (must be sufficiently large)
-`problem`: the name of a test problem (`mmdg1` to `mmdg6`)
-`d`: the aperture of the fracture or the prefactor of the aperture function
-`xi`: (optional) the value of the coupling parameter (must be larger than 0.5)
-`gridfile`: (optional) the prefix of a grid file name in the directory `src/grids`
-`fastEOC`: (optional) exclude computationally expensive grids from the EOC loop
Literature
----------
1. Hörl, Maximilian (2020). *Herleitung und Implementierung eines gemischt-dimensionalen Discontinuous-Galerkin-Verfahrens zur Beschreibung des Fluidflusses in porösen Medien mit Rissen* (Bachelor's Thesis, University of Stuttgart).