Skip to main content

Physics Informed Neural Network with JAX

Project description

jinns

status coverage

Physics Informed Neural Networks with JAX. jinns is developed to estimate solutions of ODE and PDE problems using neural networks, with a strong focus on

  1. inverse problems: find equation parameters given noisy/indirect observations
  2. meta-modeling: solve for a parametric family of differential equations

It can also be used for forward problems and hybrid-modeling.

jinns specific points:

  • jinns uses JAX - It is directed to JAX users: forward and backward autodiff, vmapping, jitting and more! No reinventing the wheel: it relies on the JAX ecosystem whenever possible, such as equinox for neural networks or optax for optimization.

  • jinns is highly modular - It gives users maximum control for defining their problems, and extending the package. The maths and computations are visible and not hidden behind layers of code!

  • jinns is efficient - It compares favorably to other existing Python package for PINNs on the PINNacle benchmarks, as demonstrated in the table below. For more details on the benchmarks, checkout the PINN multi-library benchmark

  • Implemented PINN architectures

    • Vanilla Multi-Layer Perceptron popular accross the PINNs litterature.

    • Separable PINNs: allows to leverage forward-mode autodiff for computational speed.

    • Hyper PINNs: useful for meta-modeling

  • Other

    • Adaptative Loss Weights are now implemented. Some SoftAdapt, LRAnnealing and ReLoBRaLo are available and users can implement their own strategy. See the tutorial
  • Get started: check out our various notebooks on the documentation.

jinns DeepXDE - JAX DeepXDE - Pytorch PINA Nvidia Modulus
Burgers1D 445 723 671 1977 646
NS2d-C 265 278 441 1600 275
PInv 149 218 CC 1509 135
Diffusion-Reaction-Inv 284 NI 3424 4061 2541
Navier-Stokes-Inv 175 NI 1511 1403 498

Training time in seconds on an Nvidia T600 GPU. NI means problem cannot be implemented in the backend, CC means the code crashed.

A diagram of jinns workflow

Installation

Install the latest version with pip

pip install jinns

Documentation

The project's documentation is hosted on Gitlab page and available at https://mia_jinns.gitlab.io/jinns/index.html.

Found a bug / want a feature ?

Open an issue on the Gitlab repo.

Contributing

Here are the contributors guidelines:

  1. First fork the library on Gitlab.

  2. Then clone and install the library in development mode with

pip install -e .
  1. Install pre-commit and run it. Our pre-commit hooks consist in ruff format and ruff check. You can install ruff simply by pip install ruff. We highly recommend you to check the code type hints with pyright even though we currently have no rule concerning type checking in the pipeline.
pip install pre-commit
pre-commit install
  1. Open a merge request once you are done with your changes, the review will be done via Gitlab.

Contributors

Don't hesitate to contribute and get your name on the list here !

List of contributors: Hugo Gangloff, Nicolas Jouvin, Lucia Clarotto, Inass Soukarieh, Mohamed Badi

Cite us

Please consider citing our work if you found it useful to yours, using this ArXiV preprint

@article{gangloff_jouvin2024jinns,
  title={jinns: a JAX Library for Physics-Informed Neural Networks},
  author={Gangloff, Hugo and Jouvin, Nicolas},
  journal={arXiv preprint arXiv:2412.14132},
  year={2024}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jinns-1.5.0.tar.gz (18.4 MB view details)

Uploaded Source

Built Distribution

jinns-1.5.0-py3-none-any.whl (111.2 kB view details)

Uploaded Python 3

File details

Details for the file jinns-1.5.0.tar.gz.

File metadata

  • Download URL: jinns-1.5.0.tar.gz
  • Upload date:
  • Size: 18.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for jinns-1.5.0.tar.gz
Algorithm Hash digest
SHA256 7e5840def0598023f57f1cc8bd327aed47e6513daca784e61dfb7a1f672a74f5
MD5 8a6b645d7957f3a6eb75c7209e88051f
BLAKE2b-256 bd3646ce217ee536c009de70fbfbbd2ace6a1f084010a5ae62b8f56dfc36816b

See more details on using hashes here.

File details

Details for the file jinns-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: jinns-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 111.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for jinns-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 70598c6a72d8904af6dc11433c2646feb85b5386e338fa2b9e5e177d4ea4cbc6
MD5 9941c38947518c2281ce8387f0b4b8b7
BLAKE2b-256 f1d6731cbb80b1c18b4f6d70f9614d6fa0fc1a4f8bed8ef49457effad6bdb316

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page