Giter Club home page Giter Club logo

percnn's Introduction

PeRCNN

Encoding physics to learn reaction-diffusion processes

Overview

Modeling complex dynamical systems such as the reaction-diffusion processes have largely relied on partial differential equations (PDEs). However, due to insufficient prior knowledge on the concerned system and the lack of explicit PDE formulation used for describing the nonlinear reaction process, predicting the system evolution remains a challenging issue in many scientific problems commonly seen in chemistry, biology, geology, physics and ecology. Unifying measurement data and our limited prior physics knowledge via machine learning provides us a new path of solution to this problem. Existing physics-informed learning paradigms impose physics through ``soft'' penalty constraints, whose solution quality largely depends on a trial-and-error proper setting of hyperparameters. Since the core of such methods is still rooted on “black-box” neural networks, the resulting model generally lacks interpretability and suffers from critical issues of extrapolation and generalization. To this end, we propose a novel deep learning framework that forcibly encodes/preserves given physics structure to facilitate the learning of the spatiotemporal dynamics in sparse data regimes. We show how the proposed approach can be applied to a wide range of reaction-diffusion problems, including forward and inverse analysis of PDE systems, data-driven modeling, and discovery of governing PDEs. The resultant learning paradigm that encodes physics shows high accuracy, robustness, interpretability and generalizability demonstrated via extensive numerical experiments.

System Requirements

Hardware requirements

We train our PeRCNN and the baseline models on an Nvidia DGX with four Tesla V100 GPU of 32 GB memory.

Software requirements

OS requirements

  • Window 10 Pro
  • Linux: Ubuntu 18.04.3 LTS

Python requirements

  • Python 3.6.13
  • Pytorch 1.6.0
  • Numpy 1.16.5
  • Matplotlib 3.2.2
  • scipy 1.3.1

Installtion guide

It is recommended to install Python from Anaconda with GPU support, and then install the related packages via conda setting.

How to run

Dataset

Considering the traing data size being over large, we provide a Google drive link for testing our models. Besides, we also uploaded the simulation code with high-order finite difference methods for readers to play with.

Implementation

Generally, we evaluate our PeRCNN on four tasks:

We present three folders for solving PDEs, data reconstruction and equation discovery. The coefficients identification can be referred to the equation discovery folder, which is essentially the Stage-3 part. More implementation details can be found in each folder.

License

This project is covered under the MIT License (MIT).

percnn's People

Contributors

isds-neu avatar paulpuren avatar raocp avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.