00_workshop_knoxville.html 6.12 KB
Newer Older
Praetorius, Simon's avatar
Praetorius, Simon committed
1 2 3 4 5 6 7 8 9 10 11 12
<!DOCTYPE html>
<html>
  <head>
    <title>AMDiS - Adaptive Multi-Dimensional Simulations</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <style type="text/css">
      @import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz);
      @import url(https://fonts.googleapis.com/css?family=Raleway);
      @import url(https://fonts.googleapis.com/css?family=Ubuntu);
      @import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic);
      @import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic);
    </style>
13 14
    <link rel="stylesheet" type="text/css" href="style_display.css" />
    <!--<link rel="stylesheet" type="text/css" href="style_print.css" />-->
Praetorius, Simon's avatar
Praetorius, Simon committed
15 16 17 18 19 20 21
  </head>
  <body>
    <textarea id="source">

class: center, middle

# AMDiS - Adaptive Multi-Dimensional Simulations
22
## Introduction to the FEM-Framework
Praetorius, Simon's avatar
Praetorius, Simon committed
23 24 25 26 27 28 29 30 31

Simon Praetorius *simon.praetorius@tu-dresden.de*

*Institut für Wissenschaftliches Rechnen*

*Technische Universität Dresden*

---

32 33 34 35 36 37 38 39 40 41 42 43 44
## AMDiS: **A**daptive **M**ulti-**Di**mensional **S**imulations

AMDiS developed around 2005. Basis: C-library *ALBERTA*. Now: an object-oriented `C++`-Framework. Basic concepts:
- **High abstraction level**: (Physical) Problems can be formulated with little knowledge about numerical details
- **Generality**: Solve a broad class of PDE problems. Linear and nonlinear problems, stationary and instationary.
    Multiple dimensions and coupling of different dimensions
- **Extensibility**: Interface to extend AMDiS in several aspects, e.g. own error estimators, linear solvers,
    preconditioners, time-stepping schemes
- **Efficiency**: Several tools for highly efficient simulations, e.g. adaptive meshes, parallelization, multi-mesh,
    fast linear solver libraries

---

Praetorius, Simon's avatar
Praetorius, Simon committed
45 46 47
# About this Course

> Goals: Introductory course
48 49
  - You know how to compile and link against the AMDiS library
  - You can solve a linear scalar PDE and a system of elliptic equations
Praetorius, Simon's avatar
Praetorius, Simon committed
50
  - You can handle instationary problems, nonlinearities and complex boundary conditions
51
  - You can run your simulation in parallel (*optional*)
Praetorius, Simon's avatar
Praetorius, Simon committed
52 53 54 55

--

> References:
56
  - Some theoretical background and basic design ideas of AMDiS software: [ALBERTA-FEM](http://goo.gl/Sn9CIE).
Praetorius, Simon's avatar
Praetorius, Simon committed
57 58 59 60 61 62 63
  - The [AMDiS-Wiki](https://goo.gl/Jy3u1u)
  - Some (old) PDF Documentation on [Fusionforge](https://goo.gl/5ngfYd)

> Workshop material can be found on [GitHub](https://goo.gl/pjtg4a)

---

64 65 66 67 68 69
## Get the slides and material
All slides and source code, as well as exercise material can be found in a git repository:
```
# Get the repository
git clone https://gitlab.mn.tu-dresden.de/spraetor/amdis_workshop_16.git ...
  ... amdis_workshop
Praetorius, Simon's avatar
Praetorius, Simon committed
70

71 72 73 74
# Download the material
cd amdis_workshop
git submodule update --init --recursive
```
Praetorius, Simon's avatar
Praetorius, Simon committed
75

76 77 78
In the subdirectory `cheat_sheets/` you can find quick reference cards on some tools used in this workshop.

See also https://devhints.io
Praetorius, Simon's avatar
Praetorius, Simon committed
79 80 81 82 83

---

# Agenda

84 85 86
### Wednesday Nov 28
- Scalar linear second order PDEs
- Discrete functions on unstructured grids
Praetorius, Simon's avatar
Praetorius, Simon committed
87

88 89 90
### Friday Nov 30
- Adaptivity and systems of equations
- Time-dependent and nonlinear problems
Praetorius, Simon's avatar
Praetorius, Simon committed
91

92 93 94
### Wednesday Dec 5
- Boundary conditions and Composite FEM
- Parallelization
Praetorius, Simon's avatar
Praetorius, Simon committed
95 96 97 98

---

# Introduction
99
## Short history
Praetorius, Simon's avatar
Praetorius, Simon committed
100 101 102 103 104 105 106 107 108

- 2002: Beginning of development (based on C-library ALBERT(A))
- 2005: First release
- 2007: PhD Thesis of Simon Vey: "*Adaptive Finite Elements for Systems of PDEs*"
- 2007: Development in the IWR at TU-Dresden
- 2008: First parallel version
- 2011: Release of stable version 0.9
- 2013: PhD Thesis of Thomas Witkowski: "*Software concepts and algorithms for an efficient and scalable parallel finite element method*"
- 2014: Generic expression terms introduced
Praetorius, Simon's avatar
Praetorius, Simon committed
109
- 2019 (?): AMDiS 2.0 (based on dune library)
Praetorius, Simon's avatar
Praetorius, Simon committed
110 111 112 113

Developers:
```
Axel Voigt, Simon Vey, Christina Stöcker, Thomas Wittkowski,
Praetorius, Simon's avatar
Praetorius, Simon committed
114
Andreas Naumann, Simon Praetorius, Siqi Ling, Sebastian Reuther, ...
Praetorius, Simon's avatar
Praetorius, Simon committed
115 116 117 118
```

---

119
## Some features
Praetorius, Simon's avatar
Praetorius, Simon committed
120 121 122 123 124 125 126 127 128 129 130 131 132

- Solve (sequence of) Systems of **stationary linear PDEs** of **2nd order**
- **Time integrators**: e.g. Rosenbrock method
- **Nonlinear solvers**: e.g. Newton method
- **Adaptivity** in space and time
- Lagrange **basis functions** (deg. 1--4), and center-bubble function
- **Mixed finite-elements**, e.g. `\(P^2/P^1\)`, Mini-Element
- **Multi-Mesh** method (i.e. different components with different mesh)
- Sequential and **parallel** (tested with up to 16K cores, and `\(10^9\)` DOFs)
- **Multi-Grid**: geometric (in AMDiS), algebraic (external library)
- Interface to **linear solvers**: (P)MTL4, PETSc, Hypre
- **FETI-DP** / Schur-complement solvers in parallel

133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173
---

# Get AMDiS
### Source code

AMDiS is an open source library availabe on Gitlab

https://gitlab.mn.tu-dresden.de/iwr/amdis


### Package
Some precompiled packages for Debian Linux available

https://gitlab.mn.tu-dresden.de/iwr/packages


### Docker image
Environment to work with compiled and installed library

https://hub.docker.com/r/mathiwr/amdis-1.1.dev


---

## System requirements
- Recent C++ compiler (e.g. g++ >= 6.0, clang >= 4.0, intel icc >= 2018)
- CMake (>= 3.1)
- Boost (>= 1.48)
- optional: Git, SuiteSparse, PETSc, ParMetis, Hypre, BDDC,...

Everything necessary is collected and composed in a docker image.

## Setup AMDiS in PC lab
- Use docker image: `mathiwr/amdis-1.1.dev:debian9`
- Mount local directory: `~/Desktop`
- Work in terminal: `bash`

```
docker pull mathiwr/amdis-1.1.dev
docker run -it -v ~/Desktop:/Desktop mathiwr/amdis-1.1.dev:debian9 bash
```
Praetorius, Simon's avatar
Praetorius, Simon committed
174 175 176

    </textarea>
    <script src="lib/remark.js" type="text/javascript"></script>
177
    <script type="text/javascript" src="MathJax/MathJax.js?config=TeX-AMS_HTML"></script>
Praetorius, Simon's avatar
Praetorius, Simon committed
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

    <script type="text/javascript">
      var slideshow = remark.create({
        ratio: "4:3",
        highlightLanguage: "cpp"
      });

      // Setup MathJax
      MathJax.Hub.Config({
          tex2jax: {
          skipTags: ['script', 'noscript', 'style', 'textarea', 'pre']
          }
      });
      MathJax.Hub.Queue(function() {
          $(MathJax.Hub.getAllJax()).map(function(index, elem) {
              return(elem.SourceElement());
          }).parent().addClass('has-jax');
      });

      MathJax.Hub.Configured();
    </script>
  </body>
</html>