explaingit

maziarraissi/pinns

5,841PythonAudience · researcherComplexity · 4/5Setup · hard

TLDR

Research code for Physics-Informed Neural Networks, trains neural nets to solve or discover physical equations (fluid flow, heat, etc.) using far less data by baking known physics laws into the training process.

Mindmap

mindmap
  root((PINNs))
    What it does
      Solve physical equations
      Discover governing equations
      Physics-constrained training
    Science Domains
      Fluid dynamics
      Heat transfer
      Wave propagation
    Tech Stack
      Python
      TensorFlow
    Key Concepts
      PDE residual in loss
      Continuous time mode
      Discrete time mode
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Solve a partial differential equation like heat diffusion across a domain using a neural network instead of a traditional numerical solver

USE CASE 2

Discover which physical equation governs an observed system (e.g. fluid flow data) without knowing the equation in advance

USE CASE 3

Reproduce experiments from the 2019 Journal of Computational Physics paper on physics-informed neural networks

USE CASE 4

Use as a reference implementation when learning the PINN method before moving to modern PyTorch or JAX versions

Tech stack

PythonTensorFlow

Getting it running

Difficulty · hard Time to first run · 1day+

Requires a specific older TensorFlow version, the repo is no longer maintained, newer PyTorch and JAX implementations are recommended for new projects.

No license information was mentioned in the explanation.

In plain English

This repository contains the research code for Physics-Informed Neural Networks, commonly abbreviated as PINNs. The idea is to train a neural network to solve scientific problems while also requiring it to obey known physical laws, expressed as equations that describe how quantities like heat, pressure, or fluid velocity change over time and space. By building those physical laws directly into the training process, the network can produce accurate results with far less data than a purely data-driven approach would need. The project addresses two related problems. The first is computing solutions to equations that are difficult or expensive to solve with traditional numerical methods. Given some known values at specific points, the trained network fills in the rest of the solution across the full domain. The second problem is discovering which equations actually govern a physical system from observed data alone, without knowing the governing equations in advance. The README describes two algorithmic approaches: one that treats time as a continuous variable and one that works with discrete time steps. Both result in what the authors call data-efficient universal function approximators, networks that generalize from small amounts of data by leaning on physical structure rather than pure pattern matching. The code accompanies a 2019 paper published in the Journal of Computational Physics and two earlier arXiv preprints from 2017. Citations for all three papers are provided in the README for researchers who want to reference this work. The repository is no longer under active maintenance. The README directs users to separate, newer implementations of the same approach built for PyTorch, JAX, and TensorFlow v2, which are maintained by other authors and use more modern tooling.

Copy-paste prompts

Prompt 1
I want to run the PINNs code to solve the Burgers equation. Walk me through setting up the Python environment, which script to run, and what output I should expect.
Prompt 2
Explain how PINNs incorporate physical laws into neural network training. What does the loss function look like and how is the PDE residual term computed in this codebase?
Prompt 3
I observed data from a fluid simulation and want to use PINNs to discover what equation governs it. Which part of this repository handles the inverse problem and how do I feed in my observed data points?
Prompt 4
This PINNs repo uses an older TensorFlow version. What are the equivalent modern implementations in PyTorch or JAX that the README recommends, and what are the main API differences I should know?
Open on GitHub → Explain another repo

← maziarraissi on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.