README.md 2.09 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
28
(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
for details about the installation of dune modules.
29

30
Additionally the following optional libraries can be used:
Praetorius, Simon's avatar
Praetorius, Simon committed
31
- [MTL4](https://gitlab.math.tu-dresden.de/spraetor/mtl4) (use this fork to get up-to-date changes)
32
33
- [Eigen3](http://eigen.tuxfamily.org) >= 3.3
- [SuiteSparse](http://faculty.cse.tamu.edu/davis/suitesparse.html)
Praetorius, Simon's avatar
Praetorius, Simon committed
34
- libalberta >= 3.0 (For Alberta-Grids)
35

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

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

Praetorius, Simon's avatar
Praetorius, Simon committed
40
41
42
If your MTL4 installation is not found by default, you have to specify the path,
where the file `MTLConfig.cmake` is found, here called `MTL_ROOT`. Then simply use
`dunecontrol` to configure and `cmake` to build:
43

44
```
45
CMAKE_FLAGS="-DBACKEND=MTL -DMTL_DIR:PATH=[MTL_ROOT]" dunecontrol --current configure
Praetorius, Simon's avatar
Praetorius, Simon committed
46
cmake --build build-cmake
47
```