upd intro parabola, cleanup
This commit is contained in:
5
_toc.yml
5
_toc.yml
@@ -1,6 +1,8 @@
|
|||||||
# PBDL Table of content (cf https://jupyterbook.org/customize/toc.html)
|
# PBDL Table of content (cf https://jupyterbook.org/customize/toc.html)
|
||||||
#
|
#
|
||||||
- file: intro
|
- file: intro.md
|
||||||
|
sections:
|
||||||
|
- file: intro-teaser.ipynb
|
||||||
- file: overview.md
|
- file: overview.md
|
||||||
sections:
|
sections:
|
||||||
- file: overview-equations.md
|
- file: overview-equations.md
|
||||||
@@ -21,6 +23,7 @@
|
|||||||
- file: diffphys-discuss.md
|
- file: diffphys-discuss.md
|
||||||
- file: diffphys-code-ns.ipynb
|
- file: diffphys-code-ns.ipynb
|
||||||
- file: diffphys-code-sol.ipynb
|
- file: diffphys-code-sol.ipynb
|
||||||
|
- file: diffphys-outlook.md
|
||||||
- file: jupyter-book-reference
|
- file: jupyter-book-reference
|
||||||
sections:
|
sections:
|
||||||
- file: markdown
|
- file: markdown
|
||||||
|
|||||||
@@ -9,15 +9,16 @@
|
|||||||
"# Differentiable Fluid Simulations\n",
|
"# Differentiable Fluid Simulations\n",
|
||||||
"\n",
|
"\n",
|
||||||
"Next, we'll target a more complex example with the Navier-Stokes equations as model. We'll target a 2D case with velocity $\\mathbf{u}$, no explicit viscosity term, and a marker density $d$ that drives a simple Boussinesq buoyancy term $\\eta d$ adding a force along the y dimension:\n",
|
"Next, we'll target a more complex example with the Navier-Stokes equations as model. We'll target a 2D case with velocity $\\mathbf{u}$, no explicit viscosity term, and a marker density $d$ that drives a simple Boussinesq buoyancy term $\\eta d$ adding a force along the y dimension:\n",
|
||||||
"$\n",
|
"\n",
|
||||||
" \\frac{\\partial u_x}{\\partial{t}} + \\mathbf{u} \\cdot \\nabla u_x = - \\frac{1}{\\rho} \\nabla p \n",
|
"$\\begin{aligned}\n",
|
||||||
|
" \\frac{\\partial u_x}{\\partial{t}} + \\mathbf{u} \\cdot \\nabla u_x &= - \\frac{1}{\\rho} \\nabla p \n",
|
||||||
" \\\\\n",
|
" \\\\\n",
|
||||||
" \\frac{\\partial u_y}{\\partial{t}} + \\mathbf{u} \\cdot \\nabla u_y = - \\frac{1}{\\rho} \\nabla p + \\eta d\n",
|
" \\frac{\\partial u_y}{\\partial{t}} + \\mathbf{u} \\cdot \\nabla u_y &= - \\frac{1}{\\rho} \\nabla p + \\eta d\n",
|
||||||
" \\\\\n",
|
" \\\\\n",
|
||||||
" \\text{subject to} \\quad \\nabla \\cdot \\mathbf{u} = 0,\n",
|
" \\text{s.t.} \\quad \\nabla \\cdot \\mathbf{u} &= 0,\n",
|
||||||
" \\\\\n",
|
" \\\\\n",
|
||||||
" \\frac{\\partial d}{\\partial{t}} + \\mathbf{u} \\cdot \\nabla d = 0 \n",
|
" \\frac{\\partial d}{\\partial{t}} + \\mathbf{u} \\cdot \\nabla d &= 0 \n",
|
||||||
"$\n",
|
"\\end{aligned}$\n",
|
||||||
"\n",
|
"\n",
|
||||||
"As optimization objective we'll consider a more difficult variant of the previous example: the state of the observed density $d$ should match a given target after $n=20$ steps of simulation. In contrast to before, the marker $d$ cannot be modified in any way, but only the initial state of the velocity $\\mathbf{u}$ at $t=0$. This gives us a split between observable quantities for the loss formulation, and quantities that we can interact with during the optimization (or later on via NNs).\n",
|
"As optimization objective we'll consider a more difficult variant of the previous example: the state of the observed density $d$ should match a given target after $n=20$ steps of simulation. In contrast to before, the marker $d$ cannot be modified in any way, but only the initial state of the velocity $\\mathbf{u}$ at $t=0$. This gives us a split between observable quantities for the loss formulation, and quantities that we can interact with during the optimization (or later on via NNs).\n",
|
||||||
"\n",
|
"\n",
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
418
intro-teaser.ipynb
Normal file
418
intro-teaser.ipynb
Normal file
File diff suppressed because one or more lines are too long
18
intro.md
18
intro.md
@@ -15,11 +15,12 @@ more tightly coupled learning algorithms with differentiable simulations.
|
|||||||
height: 220px
|
height: 220px
|
||||||
name: pbdl-teaser
|
name: pbdl-teaser
|
||||||
---
|
---
|
||||||
Some examples ... preview teaser ...
|
Some visual examples of hybrid solvers, i.e. numerical simulators that are enhanced by trained neural networks.
|
||||||
```
|
```
|
||||||
% Teaser, simple version:
|
% Teaser, simple version:
|
||||||
% 
|
% 
|
||||||
|
|
||||||
|
## Coming up
|
||||||
|
|
||||||
As a _sneak preview_, in the next chapters we'll show:
|
As a _sneak preview_, in the next chapters we'll show:
|
||||||
|
|
||||||
@@ -37,10 +38,7 @@ If you find mistakes, please also let us know! We're aware that this document is
|
|||||||
and we're eager to improve it. Thanks in advance!
|
and we're eager to improve it. Thanks in advance!
|
||||||
|
|
||||||
This collection of materials is a living document, and will grow and change over time.
|
This collection of materials is a living document, and will grow and change over time.
|
||||||
Feel free to contribute 😀
|
Feel free to contribute 😀
|
||||||
|
|
||||||
[TUM Physics-based Simulation Group](https://ge.in.tum.de).
|
|
||||||
|
|
||||||
We also maintain a [link collection](https://github.com/thunil/Physics-Based-Deep-Learning) with recent research papers.
|
We also maintain a [link collection](https://github.com/thunil/Physics-Based-Deep-Learning) with recent research papers.
|
||||||
|
|
||||||
```{admonition} Code, executable, right here, right now
|
```{admonition} Code, executable, right here, right now
|
||||||
@@ -52,16 +50,6 @@ immediately see what happens -- give it a try...
|
|||||||
Oh, and it's great because it's [literate programming](https://en.wikipedia.org/wiki/Literate_programming).
|
Oh, and it's great because it's [literate programming](https://en.wikipedia.org/wiki/Literate_programming).
|
||||||
```
|
```
|
||||||
|
|
||||||
## More Specifically
|
|
||||||
|
|
||||||
To be a bit more specific, _physics_ is a huge field, and we can't cover everything...
|
|
||||||
|
|
||||||
```{note}
|
|
||||||
For now our focus is:
|
|
||||||
- field-based simulations , less Lagrangian
|
|
||||||
- simulations, not experiments
|
|
||||||
- combination with _deep learning_ (plenty of other interesting ML techniques)
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
Model Equations
|
Model Equations
|
||||||
============================
|
============================
|
||||||
|
|
||||||
overview of PDE models to be used later on ...
|
TODO
|
||||||
|
|
||||||
|
give an overview of PDE models to be used later on ...
|
||||||
continuous pde $\mathcal P^*$
|
continuous pde $\mathcal P^*$
|
||||||
|
|
||||||
$\vx \in \Omega \subseteq \mathbb{R}^d$
|
$\mathbf{x} \in \Omega \subseteq \mathbb{R}^d$
|
||||||
for the domain $\Omega$ in $d$ dimensions,
|
for the domain $\Omega$ in $d$ dimensions,
|
||||||
time $t \in \mathbb{R}^{+}$.
|
time $t \in \mathbb{R}^{+}$.
|
||||||
|
|
||||||
@@ -47,11 +49,8 @@ and the abbreviations used inn: {doc}`notation`, at the bottom of the left panel
|
|||||||
% \newcommand{\corr}{\mathcal{C}} % just C for now...
|
% \newcommand{\corr}{\mathcal{C}} % just C for now...
|
||||||
% \newcommand{\nnfunc}{F} % {\text{NN}}
|
% \newcommand{\nnfunc}{F} % {\text{NN}}
|
||||||
|
|
||||||
|
|
||||||
Some notation from SoL, move with parts from overview into "appendix"?
|
Some notation from SoL, move with parts from overview into "appendix"?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
We typically solve a discretized PDE $\mathcal{P}$ by performing discrete time steps of size $\Delta t$.
|
We typically solve a discretized PDE $\mathcal{P}$ by performing discrete time steps of size $\Delta t$.
|
||||||
Each subsequent step can depend on any number of previous steps,
|
Each subsequent step can depend on any number of previous steps,
|
||||||
$\mathbf{u}(\mathbf{x},t+\Delta t) = \mathcal{P}(\mathbf{u}(\mathbf{x},t), \mathbf{u}(\mathbf{x},t-\Delta t),...)$,
|
$\mathbf{u}(\mathbf{x},t+\Delta t) = \mathcal{P}(\mathbf{u}(\mathbf{x},t), \mathbf{u}(\mathbf{x},t-\Delta t),...)$,
|
||||||
@@ -83,12 +82,13 @@ $\mathbf{u} = (u_x,u_y,u_z)^T$ for $d=3$.
|
|||||||
|
|
||||||
Burgers' equation in 2D. It represents a well-studied advection-diffusion PDE:
|
Burgers' equation in 2D. It represents a well-studied advection-diffusion PDE:
|
||||||
|
|
||||||
$\frac{\partial u_x}{\partial{t}} + \mathbf{u} \cdot \nabla u_x =
|
$\begin{aligned}
|
||||||
|
\frac{\partial u_x}{\partial{t}} + \mathbf{u} \cdot \nabla u_x &=
|
||||||
\nu \nabla\cdot \nabla u_x + g_x(t),
|
\nu \nabla\cdot \nabla u_x + g_x(t),
|
||||||
\\
|
\\
|
||||||
\frac{\partial u_y}{\partial{t}} + \mathbf{u} \cdot \nabla u_y =
|
\frac{\partial u_y}{\partial{t}} + \mathbf{u} \cdot \nabla u_y &=
|
||||||
\nu \nabla\cdot \nabla u_y + g_y(t)
|
\nu \nabla\cdot \nabla u_y + g_y(t)
|
||||||
$,
|
\end{aligned}$,
|
||||||
|
|
||||||
where $\nu$ and $\mathbf{g}$ denote diffusion constant and external forces, respectively.
|
where $\nu$ and $\mathbf{g}$ denote diffusion constant and external forces, respectively.
|
||||||
|
|
||||||
@@ -104,15 +104,15 @@ Later on, additional equations...
|
|||||||
|
|
||||||
Navier-Stokes, in 2D:
|
Navier-Stokes, in 2D:
|
||||||
|
|
||||||
$
|
$\begin{aligned}
|
||||||
\frac{\partial u_x}{\partial{t}} + \mathbf{u} \cdot \nabla u_x =
|
\frac{\partial u_x}{\partial{t}} + \mathbf{u} \cdot \nabla u_x &=
|
||||||
- \frac{1}{\rho}\nabla{p} + \nu \nabla\cdot \nabla u_x
|
- \frac{1}{\rho}\nabla{p} + \nu \nabla\cdot \nabla u_x
|
||||||
\\
|
\\
|
||||||
\frac{\partial u_y}{\partial{t}} + \mathbf{u} \cdot \nabla u_y =
|
\frac{\partial u_y}{\partial{t}} + \mathbf{u} \cdot \nabla u_y &=
|
||||||
- \frac{1}{\rho}\nabla{p} + \nu \nabla\cdot \nabla u_y
|
- \frac{1}{\rho}\nabla{p} + \nu \nabla\cdot \nabla u_y
|
||||||
\\
|
\\
|
||||||
\text{subject to} \quad \nabla \cdot \mathbf{u} = 0
|
\text{subject to} \quad \nabla \cdot \mathbf{u} &= 0
|
||||||
$
|
\end{aligned}$
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -121,28 +121,29 @@ Navier-Stokes, in 2D with Boussinesq:
|
|||||||
%$\frac{\partial u_x}{\partial{t}} + \mathbf{u} \cdot \nabla u_x$
|
%$\frac{\partial u_x}{\partial{t}} + \mathbf{u} \cdot \nabla u_x$
|
||||||
%$ -\frac{1}{\rho} \nabla p $
|
%$ -\frac{1}{\rho} \nabla p $
|
||||||
|
|
||||||
$
|
$\begin{aligned}
|
||||||
\frac{\partial u_x}{\partial{t}} + \mathbf{u} \cdot \nabla u_x = - \frac{1}{\rho} \nabla p
|
\frac{\partial u_x}{\partial{t}} + \mathbf{u} \cdot \nabla u_x &= - \frac{1}{\rho} \nabla p
|
||||||
\\
|
\\
|
||||||
\frac{\partial u_y}{\partial{t}} + \mathbf{u} \cdot \nabla u_y = - \frac{1}{\rho} \nabla p + \eta d
|
\frac{\partial u_y}{\partial{t}} + \mathbf{u} \cdot \nabla u_y &= - \frac{1}{\rho} \nabla p + \eta d
|
||||||
\\
|
\\
|
||||||
\text{subject to} \quad \nabla \cdot \mathbf{u} = 0,
|
\text{subject to} \quad \nabla \cdot \mathbf{u} &= 0,
|
||||||
\\
|
\\
|
||||||
\frac{\partial d}{\partial{t}} + \mathbf{u} \cdot \nabla d = 0
|
\frac{\partial d}{\partial{t}} + \mathbf{u} \cdot \nabla d &= 0
|
||||||
$
|
\end{aligned}$
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Navier-Stokes, in 3D:
|
Navier-Stokes, in 3D:
|
||||||
|
|
||||||
$
|
$
|
||||||
\frac{\partial u_x}{\partial{t}} + \mathbf{u} \cdot \nabla u_x = - \frac{1}{\rho} \nabla p + \nu \nabla\cdot \nabla u_x
|
\begin{aligned}
|
||||||
|
\frac{\partial u_x}{\partial{t}} + \mathbf{u} \cdot \nabla u_x &= - \frac{1}{\rho} \nabla p + \nu \nabla\cdot \nabla u_x
|
||||||
\\
|
\\
|
||||||
\frac{\partial u_y}{\partial{t}} + \mathbf{u} \cdot \nabla u_y = - \frac{1}{\rho} \nabla p + \nu \nabla\cdot \nabla u_y
|
\frac{\partial u_y}{\partial{t}} + \mathbf{u} \cdot \nabla u_y &= - \frac{1}{\rho} \nabla p + \nu \nabla\cdot \nabla u_y
|
||||||
\\
|
\\
|
||||||
\frac{\partial u_z}{\partial{t}} + \mathbf{u} \cdot \nabla u_z = - \frac{1}{\rho} \nabla p + \nu \nabla\cdot \nabla u_z
|
\frac{\partial u_z}{\partial{t}} + \mathbf{u} \cdot \nabla u_z &= - \frac{1}{\rho} \nabla p + \nu \nabla\cdot \nabla u_z
|
||||||
\\
|
\\
|
||||||
\text{subject to} \quad \nabla \cdot \mathbf{u} = 0.
|
\text{subject to} \quad \nabla \cdot \mathbf{u} &= 0.
|
||||||
|
\end{aligned}
|
||||||
$
|
$
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
22
overview.md
22
overview.md
@@ -11,6 +11,8 @@ a starting point for new researchers as well as a hands-on introduction into
|
|||||||
state-of-the-art resarch topics.
|
state-of-the-art resarch topics.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
```{figure} resources/overview-pano.jpg
|
```{figure} resources/overview-pano.jpg
|
||||||
---
|
---
|
||||||
height: 240px
|
height: 240px
|
||||||
@@ -127,6 +129,21 @@ starting points with code examples, and illustrate pros and cons of the
|
|||||||
different approaches. In particular, it's important to know in which scenarios
|
different approaches. In particular, it's important to know in which scenarios
|
||||||
each of the different techniques is particularly useful.
|
each of the different techniques is particularly useful.
|
||||||
|
|
||||||
|
|
||||||
|
## More Specifically
|
||||||
|
|
||||||
|
To be a bit more specific, _physics_ is a huge field, and we can't cover everything...
|
||||||
|
|
||||||
|
```{note}
|
||||||
|
For now our focus are:
|
||||||
|
- _field-based simulations_ (no Lagrangian methods)
|
||||||
|
- combinations with _deep learning_ (plenty of other interesting ML techniques, but not here)
|
||||||
|
- experiments as _outlook_ (replace synthetic data with real)
|
||||||
|
```
|
||||||
|
|
||||||
|
It's also worth noting that we're starting to build the methods from some very
|
||||||
|
fundamental steps. Here are some considerations for skipping ahead to the later chapters.
|
||||||
|
|
||||||
```{admonition} You can skip ahead if...
|
```{admonition} You can skip ahead if...
|
||||||
:class: tip
|
:class: tip
|
||||||
|
|
||||||
@@ -138,6 +155,9 @@ A brief look at our _Notation_ won't hurt in both cases, though!
|
|||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
<!-- ## A brief history of PBDL in the context of Fluids
|
<!-- ## A brief history of PBDL in the context of Fluids
|
||||||
|
|
||||||
@@ -154,6 +174,8 @@ PINNs ... and more ... -->
|
|||||||
|
|
||||||
## Deep Learning and Neural Networks
|
## Deep Learning and Neural Networks
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
Very brief intro, basic equations... approximate $f^*(x)=y$ with NN $f(x;\theta)$ ...
|
Very brief intro, basic equations... approximate $f^*(x)=y$ with NN $f(x;\theta)$ ...
|
||||||
|
|
||||||
learn via GD, $\partial f / \partial \theta$
|
learn via GD, $\partial f / \partial \theta$
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
"\n",
|
"\n",
|
||||||
"## Preliminaries\n",
|
"## Preliminaries\n",
|
||||||
"\n",
|
"\n",
|
||||||
"Let's just load TF for..."
|
"Let's just load TF and phiflow for now, and initialize the random sampling."
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
"from phi.tf.flow import *\n",
|
"from phi.tf.flow import *\n",
|
||||||
"import numpy as np\n",
|
"import numpy as np\n",
|
||||||
"\n",
|
"\n",
|
||||||
"#rnd = TF_BACKEND # sample different points in the domain each iteration\n",
|
"#rnd = TF_BACKEND # for phiflow: sample different points in the domain each iteration\n",
|
||||||
"rnd = math.choose_backend(1) # use same random points for all iterations"
|
"rnd = math.choose_backend(1) # use same random points for all iterations"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
BIN
resources/intro-fluid-bifurcation.jpeg
Normal file
BIN
resources/intro-fluid-bifurcation.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 38 KiB |
BIN
resources/intro-teaser-side-by-side.png
Normal file
BIN
resources/intro-teaser-side-by-side.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 130 KiB |
Reference in New Issue
Block a user