• Stars
    star
    992
  • Rank 46,173 (Top 1.0 %)
  • Language
    Jupyter Notebook
  • Created almost 4 years ago
  • Updated 29 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Welcome to the Physics-based Deep Learning Book (v0.2)

Welcome to the Physics-based Deep Learning book (PBDL) v0.2

This is the source code repository for the Jupyter book "Physics-based Deep Learning". You can find the full, readable version online at: https://physicsbaseddeeplearning.org/

A single-PDF version is also available on arXiv: https://arxiv.org/pdf/2109.05237.pdf

PBDL

A Short Synopsis

The PBDL book contains a practical and comprehensive introduction of everything related to deep learning in the context of physical simulations. As much as possible, all topics come with hands-on code examples in the form of Jupyter notebooks 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 reinforcement learning and uncertainty modeling. We live in exciting times: these methods have a huge potential to fundamentally change what we can achieve with simulations.

The key aspects that we will address in the following are:

  • explain how to use deep learning techniques to solve PDE problems,
  • how to combine them with existing knowledge of physics,
  • without discarding our knowledge about numerical methods.

The focus of this book lies on:

  • Field-based simulations (not much on Lagrangian methods)
  • Combinations with deep learning (plenty of other interesting ML techniques exist, but won't be discussed here)
  • Experiments as are left as an outlook (such as replacing synthetic data with real-world observations)

The name of this book, Physics-based Deep Learning, denotes combinations of physical modeling and numerical simulations with methods based on artificial neural networks. The general direction of Physics-Based Deep Learning represents a very active, quickly growing and exciting field of research.

The aim is to build on all the powerful numerical techniques that we have at our disposal, and use them wherever we can. As such, a central goal of this book is to reconcile the data-centered viewpoint with physical simulations.

The resulting methods have a huge potential to improve what can be done with numerical methods: in scenarios where a solver targets cases from a certain well-defined problem domain repeatedly, it can for instance make a lot of sense to once invest significant resources to train a neural network that supports the repeated solves. Based on the domain-specific specialization of this network, such a hybrid could vastly outperform traditional, generic solvers.

What's new?

Teasers

To mention a few highlights: the book contains a notebook to train hybrid fluid flow (Navier-Stokes) solvers via differentiable physics to reduce numerical errors. Try it out: https://colab.research.google.com/github/tum-pbs/pbdl-book/blob/main/diffphys-code-sol.ipynb

In v0.2 there's new notebook for an improved learning scheme which jointly computes update directions for neural networks and physics (via half-inverse gradients): https://colab.research.google.com/github/tum-pbs/pbdl-book/blob/main/physgrad-hig-code.ipynb

It also has example code to train a Bayesian Neural Network for RANS flow predictions around airfoils that yield uncertainty estimates. You can run the code right away here: https://colab.research.google.com/github/tum-pbs/pbdl-book/blob/main/bayesian-code.ipynb

And a notebook to compare proximal policy-based reinforcement learning with physics-based learning for controlling PDEs (spoiler: the physics-aware version does better in the end). Give it a try: https://colab.research.google.com/github/tum-pbs/pbdl-book/blob/main/reinflearn-code.ipynb

More Repositories

1

PhiFlow

A differentiable PDE solving framework for machine learning
Python
1,468
star
2

Solver-in-the-Loop

Solver-in-the-Loop: Learning from Differentiable Physics to Interact with Iterative PDE-Solvers
Python
145
star
3

PhiML

Intuitive scientific computing with dimension types for Jax, PyTorch, TensorFlow & NumPy
Python
68
star
4

autoreg-pde-diffusion

Benchmarking Autoregressive Conditional Diffusion Models for Turbulent Flow Simulation
Jupyter Notebook
68
star
5

DMCF

Guaranteed Conservation of Momentum for Learning Particle-based Fluid Dynamics (NeurIPS '22)
Python
49
star
6

Diffusion-based-Flow-Prediction

Official implementation of the AIAA Journal paper "Uncertainty-aware Surrogate Models for Airfoil Flow Simulations with Denoising Diffusion Probabilistic Models"
Jupyter Notebook
43
star
7

differentiable-piso

Code repository for "Learned Turbulence Modelling with Differentiable Fluid Solvers"
JavaScript
35
star
8

dl-surrogates

C++
31
star
9

LSIM

LSiM is a learned metric to compute distance values for 2D data from numerical simulations
Python
27
star
10

coord-trans-encoding

This is the source code for our paper "Towards high-accuracy deep learning inference of compressible turbulent flows over aerofoils"
Python
26
star
11

CG-Solver-in-the-Loop

Conjugate Gradient related code for "Solver-in-the-Loop: Learning from Differentiable Physics to Interact with Iterative PDE-Solvers"
Python
24
star
12

ConFIG

Official implementation of Conflict-Free Inverse Gradients Method
Python
24
star
13

SMDP

Solving Inverse Physics Problems with Score Matching
Jupyter Notebook
21
star
14

Global-Flow-Transport

Repository for our CVPR 2021 Global Flow Transport Paper
C++
19
star
15

half-inverse-gradients

Source code for the ICLR'22 paper on "Half-Inverse Gradients"
Python
17
star
16

VOLSIM

VolSiM, a CNN-based metric to compute the similarity of 3D data from numerical simulations
Python
15
star
17

SIP

Scale-invariant Learning by Physics Inversion (NeurIPS 2022)
Python
10
star
18

DiffPhys-CylinderWakeFlow

Jupyter Notebook
9
star
19

StableBPTT

The source code the for the ICLR'24 paper "Stabilizing Backpropagation Through Time to Learn Complex Physics"
Python
9
star
20

unrolling

Python
6
star
21

reconstructScalarFlows

ScalarFlow Reconstruction for Large-Scale Volumetric Data Sets of Real-world Scalar Transport Flows
5
star
22

SFBC

ICLR'24: Symmetric basis convolutions for learning lagrangian fluid mechanics
Jupyter Notebook
5
star
23

racecar

Data-driven Regularization via Racecar Training for Generalizing Neural Networks
Python
3
star
24

two-way-coupled-control

Python
2
star
25

Neural-Global-Transport

Repository for the ICLR '23 paper on Neural-Global-Transport
C++
2
star
26

Hybrid-Solver-for-Reactive-Flows

Python
1
star