Skip to content
Snippets Groups Projects
Commit 3964f9d6 authored by Hörl, Maximilian's avatar Hörl, Maximilian
Browse files

add README.md

parent 594d9b45
Branches
Tags
No related merge requests found
Preparing the Sources
=========================
Additional to the software mentioned in README you'll need the
following programs installed on your system:
cmake >= 2.8.12
Getting started
---------------
If these preliminaries are met, you should run
dunecontrol all
which will find all installed dune modules as well as all dune modules
(not installed) which sources reside in a subdirectory of the current
directory. Note that if dune is not installed properly you will either
have to add the directory where the dunecontrol script resides (probably
./dune-common/bin) to your path or specify the relative path of the script.
Most probably you'll have to provide additional information to dunecontrol
(e. g. compilers, configure options) and/or make options.
The most convenient way is to use options files in this case. The files
define four variables:
CMAKE_FLAGS flags passed to cmake (during configure)
An example options file might look like this:
#use this options to configure and make if no other options are given
CMAKE_FLAGS=" \
-DCMAKE_CXX_COMPILER=g++-5 \
-DCMAKE_CXX_FLAGS='-Wall -pedantic' \
-DCMAKE_INSTALL_PREFIX=/install/path" #Force g++-5 and set compiler flags
If you save this information into example.opts you can pass the opts file to
dunecontrol via the --opts option, e. g.
dunecontrol --opts=example.opts all
More info
---------
See
dunecontrol --help
for further options.
The full build system is described in the dune-common/doc/buildsystem (Git version) or under share/doc/dune-common/buildsystem if you installed DUNE!
The `dune-mmdg` module
=======================
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).
......@@ -2,11 +2,11 @@
echo " "
echo " "
echo "*********************************************************************************************"
echo "(0/3) Checking all prerequistes. (git cmake gcc g++ paraview)"
echo "(0/3) Checking all prerequistes. (git cmake gcc g++ pkg-config paraview)"
echo "*********************************************************************************************"
# check some prerequistes
for PRGRM in git cmake gcc g++ paraview; do
for PRGRM in git cmake gcc g++ pkg-config paraview; do
if ! [ -x "$(command -v $PRGRM)" ]; then
echo "Error: $PRGRM is not installed." >&2
exit 1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment