diff --git a/README b/README deleted file mode 100644 index b7f657711a432ecc4c798e2d8e52031873862860..0000000000000000000000000000000000000000 --- a/README +++ /dev/null @@ -1,53 +0,0 @@ -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! diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0f305c8d7bba91d3470f9a652b0da97dd2407b15 --- /dev/null +++ b/README.md @@ -0,0 +1,80 @@ +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). diff --git a/install.sh b/install.sh index e6cb0ac3a3e6cb198cc2c57523b620b2e8623b2a..cf68782a5d118737f2f9675fa63d876116254ab6 100644 --- a/install.sh +++ b/install.sh @@ -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