jinns

Physics Informed Neural Networks (PINNs) + SPINNs + HyperPINNs + Adaptative Loss Weights with JAX 📓 Check out our various notebooks to get started ⚠️ Mirror repository of jinns (development happens on Gitlab)

https://github.com/mia-jinns/jinns

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.3%) to scientific vocabulary

Keywords

hyperpinn jax physics-informed-neural-networks pinns spinn
Last synced: 10 months ago · JSON representation

Repository

Physics Informed Neural Networks (PINNs) + SPINNs + HyperPINNs + Adaptative Loss Weights with JAX 📓 Check out our various notebooks to get started ⚠️ Mirror repository of jinns (development happens on Gitlab)

Basic Info
Statistics
  • Stars: 35
  • Watchers: 2
  • Forks: 7
  • Open Issues: 0
  • Releases: 0
Topics
hyperpinn jax physics-informed-neural-networks pinns spinn
Created over 2 years ago · Last pushed 10 months ago
Metadata Files
Readme License Authors Codemeta

README.md

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

bash 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

bash 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.

bash 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} }

Owner

  • Name: mia-jinns
  • Login: mia-jinns
  • Kind: organization

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "type": "SoftwareSourceCode",
  "applicationCategory": "Statistics, machine learning, physics",
  "author": [
    {
      "id": "https://orcid.org/0000-0001-5544-3800",
      "type": "Person",
      "affiliation": {
        "type": "Organization",
        "name": "MIA Paris-Saclay (INRAE)"
      },
      "email": "hugo.gangloff@inrae.fr",
      "familyName": "Gangloff",
      "givenName": "Hugo"
    },
    {
      "id": "https://orcid.org/0000-0002-0331-1571",
      "type": "Person",
      "affiliation": {
        "type": "Organization",
        "name": "MIA Paris-Saclay (INRAE)"
      },
      "email": "nicolas.jouvin@inrae.fr",
      "familyName": "Jouvin",
      "givenName": "Nicolas"
    }
  ],
  "codeRepository": "https://gitlab.com/mia_jinns/jinns",
  "dateCreated": "2023-07-21",
  "dateModified": "2024-10-08",
  "datePublished": "2023-07-21",
  "description": "A Python package for Physics-Informed Neural Networks (PINN) in JAX",
  "funder": {
    "type": "Organization",
    "name": "INRAE"
  },
  "keywords": [
    "physics-informed",
    "neural network",
    "machine learning"
  ],
  "license": "https://spdx.org/licenses/Apache-2.0",
  "name": "Jinns",
  "operatingSystem": [
    "Linux",
    "Windows",
    "MacOS"
  ],
  "programmingLanguage": "Python3",
  "relatedLink": "https://mia_jinns.gitlab.io/jinns/",
  "softwareRequirements": "Python 3.11+",
  "version": "v1.0.0",
  "contIntegration": "https://gitlab.com/mia_jinns/jinns/-/pipelines",
  "codemeta:continuousIntegration": {
    "id": "https://gitlab.com/mia_jinns/jinns/-/pipelines"
  },
  "developmentStatus": "active",
  "issueTracker": "https://gitlab.com/mia_jinns/jinns/-/issues"
}

GitHub Events

Total
  • Issues event: 1
  • Watch event: 30
  • Delete event: 3
  • Issue comment event: 1
  • Push event: 178
  • Fork event: 2
  • Create event: 30
Last Year
  • Issues event: 1
  • Watch event: 30
  • Delete event: 3
  • Issue comment event: 1
  • Push event: 178
  • Fork event: 2
  • Create event: 30