Software

In both, Python and Julia, multiple options for implementing physics-informed neural networks are available. The choice depends on the specific requirements you have and how familiar you are with the programming language and libraries. Python is more mature and widely used, while Julia offers high-performance computing and convenient mathematical notation for scientific computing. Click on the links below to learn more about each of the following libraries.

Python 🐍

  1. DeepXDE: A library for scientific machine learning and physics-informed learning.

  2. IDRLnet: A machine learning library on top of PyTorch. Use IDRLnet if you need a machine learning library that solves both forward and inverse differential equations via physics-informed neural networks. IDRLnet is a flexible framework inspired by NVIDIA SimNet™.

  3. maziarraissi/PINNs: The original implementation by the authors of the papers written in TensorFlow.

  4. SciANN: A high-level artificial neural networks API, written in Python using Keras and TensorFlow backends. It is developed with a focus on enabling fast experimentation with different networks architectures and with emphasis on scientific computations, physics-informed deep learning, and inversion.

Julia

  1. DiffEqFlux.jl: An implicit deep learning library built using the SciML ecosystem. It is a high-level interface that pulls together all the tools with heuristics and helper functions to make training such deep implicit layer models fast and easy. It can be used to solve problems in physics-informed machine learning.

  2. NeuralPDE.jl: NeuralPDE is a Julia package for solving PDEs using neural networks. While it's not exclusively tailored to PINNs, it can be used effectively for physics-informed problems.

CC BY-SA 4.0 Johannes Sappl. Last modified: November 11, 2023. Website built with Franklin.jl and the Julia programming language.