The goal of this project is to develop a framework using a deep learning model to approximate solutions to Partial Differential Equations (PDEs) without requiring any input data. The Physics-Informed Neural Network (PINN) is trained solely on:
- Physics Loss: Derived from the governing equations (e.g., PDE = 0).
- Boundary Conditions (BC) Loss: Ensuring the solution satisfies the boundary constraints.
The project progresses through increasingly complex problems:
-
Simple ODEs ✅:
-
Higher-Order ODEs ✅:
- PINN:
$f_{\theta}: \mathbb{R} \rightarrow \mathbb{R}$ - ODE to approximate:
$f'' = f, f(0) = 1, f'(0) = 0$ - Physics Loss:
$\lVert f_{\theta}'' - f_{\theta} \rVert$ - Boundary Loss:
$\lVert f_{\theta}(0) - 1 \rVert, \lVert f'_{\theta}(0) \rVert$ - Analytical solution:
$\cos: \mathbb{R} \rightarrow \mathbb{R}$
- PINN:
-
Laplace Equation ✅:
- PINN:
$f_{\theta}: [0, 1]^2 \rightarrow \mathbb{R}$ - PDE to approximate:
$\Delta f = 0$ - Dirichlet boundary conditions:
$f(\cdot, 0) = 0, f(\cdot, 1) = \sin(\pi x), f(0, \cdot) = 0, f(1, \cdot) = 0$ - Physics loss:
$\lVert \Delta f_{\theta} \rVert$ - Boundary loss:
$\lVert f_{\theta}(\cdot, 0) \rVert, \lVert f_{\theta}(\cdot, 1) - \sin(\pi x) \rVert, \lVert f_{\theta}(0, \cdot) \rVert, \lVert f_{\theta}(1, \cdot) \rVert$ - Analytical solution:
$f(x, y) = \sin(\pi x) \sinh(\pi y)/\sinh(\pi)$
- PINN:
-
Euler Equations (potential, irrotational flow) ✅:
-
Navier-Stokes Equations ❌:
- Solve fluid dynamics problems governed by the Navier-Stokes equations.
Ensure you have the following installed on your system:
- ✔️ Python 3.12
- ✔️ MPS support for macOS
- ✔️ Additional Python dependencies
-
Clone the Repository:
Clone this repository to your local machine:
git clone https://github.com/LeonDeligny/LearnPDEs.git cd LearnPDEs -
Install dependencies:
Install the dependencies with:
conda env create -f environment.yml

