00_workshop.html 5.54 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 32 33 34

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

*Institut für Wissenschaftliches Rechnen*

*Technische Universität Dresden*

---

# About this Course

> Goals: Introductory course
35 36
  - You know how to use the compile and link against the AMDiS library
  - You can solve a linear scalar equation, or a system of elliptic equations
Praetorius, Simon's avatar
Praetorius, Simon committed
37 38 39 40 41 42
  - You can handle instationary problems, nonlinearities and complex boundary conditions
  - You can run your simulation in parallel

--

> References:
43
  - Some theoretical background and basic design ideas of AMDiS software: [ALBERTA-FEM](http://goo.gl/Sn9CIE).
Praetorius, Simon's avatar
Praetorius, Simon committed
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
  - 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)

---

# Agenda

### Monday
- Scalar linear second order PDEs
- Handling data on unstructured grids
- Adaptivity and systems of equations
- Introduction to Student Projects

### Tuesday
- Time-dependent and nonlinear problems
- Coupled problems
- Complex geometries and surface PDEs
- Talk by Siqi Ling (Multi-Mesh)
- Talk by Marco Salvalaglio

---

# Agenda

### Wednesday
- Boundary conditions and Composite FEM
- MTL4 - a linear algebra library
- Linear solvers and preconditioners

### Thursday
- Parallelization
- Talk by Sebastian Aland
- MeshConv a mesh conversion tool (Florian Stenger)
- **Workshop Dinner**

### Friday
- Using `C++11` with AMDiS
- Extensions
- Software Development and Workflow (Ansgar Burchard)
- AMDiS User-Group meeting
- Presentation of Student Projects

---

# Introduction
## 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

---

# Short history

- 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
114
- 2019 (?): AMDiS 2.0 (based on dune library)
Praetorius, Simon's avatar
Praetorius, Simon committed
115 116 117 118

Developers:
```
Axel Voigt, Simon Vey, Christina Stöcker, Thomas Wittkowski,
119
Andreas Naumann, Simon Praetorius, Siqi Ling, Sebastian Reuther, ...
Praetorius, Simon's avatar
Praetorius, Simon committed
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
```

---

# Some features

- 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

138 139 140 141 142 143 144 145 146 147 148 149 150 151
---

# Install AMDiS

- Debian package
- EasyBuild software
- Docker image
- Manual installation

### 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,...
Praetorius, Simon's avatar
Praetorius, Simon committed
152 153 154

    </textarea>
    <script src="lib/remark.js" type="text/javascript"></script>
155
    <script type="text/javascript" src="MathJax/MathJax.js?config=TeX-AMS_HTML"></script>
Praetorius, Simon's avatar
Praetorius, Simon committed
156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178

    <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>