Step-by-step tutorials for PINA, the Physics-Informed Neural Architectures library.
This repository holds the tutorial sources that were formerly part of the main PINA repository. Every tutorial is a self-contained Jupyter notebook that runs top-to-bottom, on your laptop or in the browser.
Rendered versions of all tutorials are published in the PINA Tutorials website, where they are indexed and searchable.
The fastest way to try a tutorial is Open in Colab — every notebook has a Colab badge at the top, and needs nothing but a browser.
To run one locally instead:
git clone https://github.com/PINA-org/PINA-tutorials.git
cd PINA-Tutorials
pip install "pina-mathlab[tutorial]"Then open, for example, tutorials/tutorial17/tutorial.ipynb in Jupyter. Notebooks that
ship a data/ folder read it from disk; notebooks that need a dataset they do
not carry (Darcy flow, Kuramoto–Sivashinsky, …) download it on first run when
executed in Colab.
tutorials/
tutorial<N>/
tutorial.ipynb # the source; this is the only file you should edit
tutorial.py # nbconvert export, regenerated by CI from the notebook
data/ # dataset, when the tutorial ships one
static/ # images embedded by the notebooks
Notebook numbers are permanent identifiers: tutorial17/tutorial.html is the
URL in the documentation and will not be reused for different content.
Please read CONTRIBUTING.md first. It defines the
required structure, the writing style, and the contribution checklist — a
tutorial PR should contain only the .ipynb and the README.md entry for it.
A "What's Next?" section closing every tutorial is mandatory.
| Description | Tutorial |
|---|---|
| Introductory Tutorial: A Beginner's Guide to PINA | [.ipynb, .py, .html] |
How to build a Problem in PINA |
[.ipynb, .py, .html] |
| Introduction to Solver classes | [.ipynb, .py, .html] |
Introduction to Trainer class |
[.ipynb, .py, .html] |
Data structure for SciML: Tensor, LabelTensor, Data and Graph |
[.ipynb, .py, .html] |
Building domains with PINA's BaseDomain class |
[.ipynb, .py, .html] |
Introduction to PINA Equation class |
[.ipynb, .py, .html] |
| Description | Tutorial |
|---|---|
| Introductory Tutorial: Physics Informed Neural Networks with PINA | [.ipynb, .py, .html] |
| Enhancing PINNs with Extra Features to solve the Poisson Problem | [.ipynb, .py, .html] |
| Applying Hard Constraints in PINNs to solve the Wave Problem | [.ipynb, .py, .html] |
| Applying Periodic Boundary Conditions in PINNs to solve the Helmholtz Problem | [.ipynb, .py, .html] |
| Inverse Problem Solving with Physics-Informed Neural Network | [.ipynb, .py, .html] |
| Learning Multiscale PDEs Using Fourier Feature Networks | [.ipynb, .py, .html] |
| Learning Bifurcating PDE Solutions with Physics-Informed Deep Ensembles | [.ipynb, .py, .html] |
| Description | Tutorial |
|---|---|
| Introductory Tutorial: Neural Operator Learning with PINA | [.ipynb, .py, .html] |
| Modeling 2D Darcy Flow with the Fourier Neural Operator | [.ipynb, .py, .html] |
| Solving the Kuramoto–Sivashinsky Equation with Averaging Neural Operator | [.ipynb, .py, .html] |
| Advection Equation with data driven DeepONet | [.ipynb, .py, .html] |
| Description | Tutorial |
|---|---|
| Introductory Tutorial: Supervised Learning with PINA | [.ipynb, .py, .html] |
| Chemical Properties Prediction with Graph Neural Networks | [.ipynb, .py, .html] |
| Reduced Order Model with Graph Neural Networks for Unstructured Domains | [.ipynb, .py, .html] |
| Data-driven System Identification with SINDy | [.ipynb, .py, .html] |
| Unstructured Convolutional Autoencoders with Continuous Convolution | [.ipynb, .py, .html] |
| Reduced Order Modeling with POD-RBF and POD-NN Approaches for Fluid Dynamics | [.ipynb, .py, .html] |
.github/workflows/exporter.yml exports each changed notebook and publishes
the result:
tutorials/tutorial<N>/tutorial.py— a plain-Python export, committed to this repository through amaintenancepull request.docs/source/tutorials/tutorial<N>/tutorial.html— an HTML export of the executed notebook, included in the same pull request for the standalone tutorial website. Deployment is configured separately.
The exporter automatically generates Python scripts and executed HTML pages when
notebooks change on main. Manual runs regenerate all tutorials. Notebooks run
in their own directories to access local datasets, without saving execution
outputs to the source notebooks. If execution fails, the export stops.