Welcome ... 
============================

Welcome to the _Physics-based Deep Learning Book_ 👋

**TL;DR**: 
This document targets a practical and comprehensive introduction to the latest concepts
for combining physical simulations with deep learning.
As much as possible, the algorithms will come with hands-on code examples to quickly get started.
Beyond standard _supervised_ learning from data, we'll look at _physical loss_ constraints, 
more tightly coupled learning algorithms with _differentiable simulations_, as well as extensions such
as reinforcement learning and uncertainty modeling.
These methods have a huge potential to fundamentally change what we can achieve
with simulations.


```{figure} resources/teaser.jpg
---
height: 220px
name: pbdl-teaser
---
Some visual examples of numerically simulated time sequences. In this book, we aim for algorithms that use neural networks alongside numerical solvers.
```

## Coming up

As a _sneak preview_, in the next chapters will show:

- How to train networks to infer fluid flows around shapes like airfoils in one go, i.e., a _surrogate model_ that replaces a traditional numerical simulation.

- How to use model equations as residuals to train networks that represent solutions, and how to improve upon these residual constraints by using _differentiable simulations_.

- How to more tightly interact with a full simulator for _inverse problems_. E.g., we'll demonstrate how to circumvent the convergence problems of standard reinforcement learning techniques by leveraging simulators in the training loop.

The different PBDL techniques will be introduced ordered in terms of growing
tightness of the integration, and  pros and cons of the different approaches
will be discussed. It's important to know in which scenarios each of the
different techniques is particularly useful.


## Comments and suggestions

This _book_, where "book" stands for a collection of texts, equations, images and code examples,
is maintained by the
[TUM Physics-based Simulation Group](https://ge.in.tum.de). Feel free to contact us 
if you have any comments, e.g., via [old fashioned email](mailto:i15ge@cs.tum.edu).
If you find mistakes, please also let us know! We're aware that this document is far from perfect,
and we're eager to improve it. Thanks in advance 😀! Btw., we also maintain a [link collection](https://github.com/thunil/Physics-Based-Deep-Learning) with recent research papers.

```{admonition} Executable code, right here, right now
:class: tip
We focus on jupyter notebooks, a key advantage of which is that all code examples
can be executed _on the spot_, from your browser. You can modify things and 
immediately see what happens -- give it a try...
<br><br>
Plus, jupyter notebooks are great because they're a form of [literate programming](https://en.wikipedia.org/wiki/Literate_programming).
```


![Divider](resources/divider3.jpg)


## Thanks!

This project would not have been possible without the help of many people who contributed. Thanks to everyone 🙏 Here's an alphabetical list:

- [Philipp Holl](https://ge.in.tum.de/about/)
- [Maximilian Mueller](https://ge.in.tum.de/)
- [Patrick Schnell](https://ge.in.tum.de/about/patrick-schnell/)
- [Felix Trost](https://ge.in.tum.de/)
- [Nils Thuerey](https://ge.in.tum.de/about/n-thuerey/)
- [Kiwon Um](https://ge.in.tum.de/about/kiwon/)

% - [Georg Kohl](https://ge.in.tum.de/about/georg-kohl/)

## Citation

If you find this book useful, please cite it via:
```
@article{thuerey2021pbdl,
  title={Physics-based Deep Learning},
  author={Nils Thuerey and Maximilian Mueller and Patrick Schnell and Felix Trost and Kiwon Um},
  url={http://physicsbaseddeeplearning.org},
  year={2021},
  publisher={www}
}
```

