Skip to content

About

Tutorials for the PINA package.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

🚀 PINA Tutorials

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.

Quick start

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.

Repository layout

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.

Writing a tutorial

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.

Tutorials

Getting started with PINA

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]

Physics Informed Neural Networks

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]

Neural Operator Learning

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]

Supervised Learning

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]

How the rendered tutorials are produced

.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 a maintenance pull 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.

See also

About

Tutorials for the PINA package.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors