README.md 2.36 KB
Newer Older
Praetorius, Simon's avatar
Praetorius, Simon committed
1
2
3
4
5
6
7
8
9
AMDiS
=====
The *Adaptive Multi-Dimensional Simulation Toolbox* (AMDiS) is implemented as a
discretization module on top of the Dune framework.

Installation
============
We provide a *cmake*-based configuration and use the `dunecontrol` build system.
Simply run
10

Praetorius, Simon's avatar
Praetorius, Simon committed
11
12
13
```
dunecontrol --current all
```
14

Praetorius, Simon's avatar
Praetorius, Simon committed
15
16
17
18
19
20
The `dunecontrol` script searches for the required
(and suggested) dune modules this library depends on. These include:
- [dune-common](https://gitlab.dune-project.org/core/dune-common)
- [dune-geometry](https://gitlab.dune-project.org/core/dune-geometry)
- [dune-grid](https://gitlab.dune-project.org/core/dune-grid)
- [dune-localfunctions](https://gitlab.dune-project.org/core/dune-localfunctions)
21
- [dune-istl](https://gitlab.dune-project.org/core/dune-istl)
Praetorius, Simon's avatar
Praetorius, Simon committed
22
23
- [dune-typetree](https://gitlab.dune-project.org/staging/dune-typetree)
- [dune-functions](https://gitlab.dune-project.org/staging/dune-functions)
24

Praetorius, Simon's avatar
Praetorius, Simon committed
25
26
27
(See the file `dune.module` for an up-to-date list of dependencies). The dune modules
can be obtained from https://gitlab.dune-project.org and need to be found in a
subdirectory of `DUNE_CONTROL_PATH`. See also https://dune-project.org/doc/installation
28
29
30
31
32
33
34
35
for details about the installation of dune modules. You can use the script

```
bin/install_all_dune_modules.sh DOWNLOAD_DIR
```

to clone all dune repositories into `DOWNLOAD_DIR` and provide a simple way using `dunecontrol`
to install all of them at once.
36

37
Additionally the following optional libraries can be used:
Praetorius, Simon's avatar
Praetorius, Simon committed
38
- [MTL4](https://gitlab.math.tu-dresden.de/spraetor/mtl4) (use this fork to get up-to-date changes)
39
40
- [Eigen3](http://eigen.tuxfamily.org) >= 3.3
- [SuiteSparse](http://faculty.cse.tamu.edu/davis/suitesparse.html)
41
- [PETSc](https://www.mcs.anl.gov/petsc)
Praetorius, Simon's avatar
Praetorius, Simon committed
42
- libalberta >= 3.0 (For Alberta-Grids)
43

44
And a compiler that supports the C++14 standard, e.g. g++ >= 5.0 and clang >= 3.6, and cmake >= 3.1.
45

46
By default, the `dune-istl` linear-algebra backend is used. To choose one of `ISTL`, `MTL`, `PETSC`, or `EIGEN`, you can specify the cmake parameter `-DBACKEND=[ISTL,MTL,PETSC,EIGEN]`.
47

48
If, for example, your MTL4 installation is not found by default, you have to specify the path,
Praetorius, Simon's avatar
Praetorius, Simon committed
49
50
where the file `MTLConfig.cmake` is found, here called `MTL_ROOT`. Then simply use
`dunecontrol` to configure and `cmake` to build:
51

52
```
53
CMAKE_FLAGS="-DBACKEND=MTL -DMTL_DIR:PATH=[MTL_ROOT]" dunecontrol --current configure
Praetorius, Simon's avatar
Praetorius, Simon committed
54
cmake --build build-cmake
55
```