README.md 3.94 KB
Newer Older
Praetorius, Simon's avatar
Praetorius, Simon committed
1
AMDiS (Adaptive MultiDimensional Simulations) is a C++ library to solve a broad class of partial differential equations (PDEs) using adaptive finite elements. Here you can find some information and tutorials about AMDiS usage/installation/extension...
2

Praetorius, Simon's avatar
Praetorius, Simon committed
3
4
5
6
## Building

The AMDiS library uses [CMake](https://cmake.org) to build. To configure with CMake we suggest to create a build directory, and run:

7
```
Praetorius, Simon's avatar
Praetorius, Simon committed
8
mkdir build && cd build
Praetorius, Simon's avatar
Praetorius, Simon committed
9
10
11
12
13
14
15
cmake ../AMDiS
```

## Installing

To install the library you may provide an installation directory, by calling CMake with the additional argument:

16
```
Praetorius, Simon's avatar
Praetorius, Simon committed
17
18
19
20
cmake -DCMAKE_INSTALL_PREFIX:PATH=[install_dir] .
```

and just run the `install` target:
Praetorius, Simon's avatar
Praetorius, Simon committed
21

Praetorius, Simon's avatar
Praetorius, Simon committed
22
23
24
25
26
27
28
29
30
31
```
cmake --build . --target install
```

## Demos

Some demo programs using the AMDiS library are implemented in the subdirectory `demo`. To configure and build run CMake again, with the AMDiS installation directory specified:

```
mkdir demo/build && cd demo/build
32
cmake -DAMDIS_DIR:PATH=[install_dir]/share/amdis [-DCOMPONENT=(SEQUENTIAL|PARALLEL)] ..
Praetorius, Simon's avatar
Praetorius, Simon committed
33
34
35
cmake --build . --target all
```

36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
The optional `COMPONENT` parameter set the variant of AMDiS to be used, i.e. sequential or parallel AMDiS. All AMDiS-dependent programs can be
configured using a `CMakeLists.txt` file similar to the following:

```
project("myproject")
cmake_minimum_required(VERSION 3.1)

find_package(AMDIS REQUIRED [SEQUENTIAL|PARALLEL] [VERSION>=1.1])

add_executable(mytarget src/mysource.cc)
target_include_directories(mytarget PRIVATE ${AMDIS_INCLUDE_DIRS})
target_compile_definitions(mytarget PRIVATE ${AMDIS_COMPILEFLAGS})
target_link_libraries(mytarget ${AMDIS_LIBRARIES})
```

Praetorius, Simon's avatar
Praetorius, Simon committed
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
## Tests

The tests are implemented in the subdirectory `test` and can be built and run by using the CMake:

```
mkdir test/build && cd test/build
cmake -DAMDIS_DIR:PATH=[install_dir]/share/amdis ..
cmake --build . --target all
```

## Documentation

The documentation is built using [Doxygen](http://www.doxygen.org). Simply run the command in the `doc` subdirectory:

```
Praetorius, Simon's avatar
Praetorius, Simon committed
66
cd AMDiS/doc
Praetorius, Simon's avatar
Praetorius, Simon committed
67
68
69
70
71
72
73
74
75
doxygen
```

Then html documentation is then generated in the `doc/html` folder.

## System requirements

AMDiS can be build with various c++ compilers, e.g.
- gcc, version >= 4.6
Praetorius, Simon's avatar
Praetorius, Simon committed
76
77
- clang, version >= 3.1
- intel, version >= 2013
Praetorius, Simon's avatar
Praetorius, Simon committed
78
79
- MSVC, version >= 11.0

Praetorius, Simon's avatar
Praetorius, Simon committed
80
A detailed overview about compiler compatibility is listed in the wiki-page [Compatibility](https://gitlab.math.tu-dresden.de/iwr/amdis/wikis/compatibility).
Praetorius, Simon's avatar
Praetorius, Simon committed
81
82
83
84
85
86
87
88
89
90
91

We assume the following libraries to be found in standard location:
- [boost](http://boost.org) (modules: system, iostreams, filesystem, program_options, and date_time), version >= 1.48
- [CMake](https://cmake.org), version >= 3.1

For the parallel AMDiS we require additionally
- [ParMETIS](http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview), version >= 4.0
- [PETSc](https://www.mcs.anl.gov/petsc), version >= 3.3

When PETSc is configured with ParMETIS, the version from PETSc can be used directly.

Praetorius, Simon's avatar
Praetorius, Simon committed
92
## CMake options
Praetorius, Simon's avatar
Praetorius, Simon committed
93
94
95
96
97
When configuring AMDiS several options can be modified. For an interactive gui, use either `ccmake`, or `cmake-gui`.

| Option         | Type | Description |
| -------------- | ---- | ----------- |
| ENABLE_UMFPACK | BOOL | Compile with support for suitesparse UMFPack library |
98
| ENABLE_COMPRESSION | BOOL | Allow compressed output of .vtk and .arh files. Need development files of zlib and libbz2 to be installed on the system. |
Praetorius, Simon's avatar
Praetorius, Simon committed
99
100
101
| ENABLE_PARALLEL_DOMAIN | BOOL | Switch to parallel AMDiS. Needs PETSc and ParMETIS to be installed. |
| PETSC_DIR | PATH | Path to the PETSc root directory, containing the lib/ and include/ subdirectories. |
| PARMETIS_DIR | PATH | Path to the ParMETIS root directory, containing the lib/ and include/ subdirectories. |
102
103
| ENABLE_ZOLTAN | BOOL | Compile support for graph paritioning library Zoltan. |
| ZOLTAN_DIR | PATH | PAth to the Zoltan root directory, containing lib/ and include/ subdirectories. |
Praetorius, Simon's avatar
Praetorius, Simon committed
104
| ENABLE_EXTENSIONS | BOOL | Add additional features, not yet part of the standard AMDiS. Experimental! Should be used with care. |