https://github.com/idrl-lab/idrlnet
IDRLnet, a Python toolbox for modeling and solving problems through Physics-Informed Neural Network (PINN) systematically.
https://github.com/idrl-lab/idrlnet
data-driven-model inverse-problems machine-learning pde-solver physics-informed-neural-networks python scientific-machine-learning
Last synced: 13 days ago
JSON representation
IDRLnet, a Python toolbox for modeling and solving problems through Physics-Informed Neural Network (PINN) systematically.
- Host: GitHub
- URL: https://github.com/idrl-lab/idrlnet
- Owner: idrl-lab
- License: apache-2.0
- Created: 2021-07-05T03:18:27.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2023-06-30T08:47:43.000Z (almost 2 years ago)
- Last Synced: 2024-03-14T16:43:52.984Z (about 1 year ago)
- Topics: data-driven-model, inverse-problems, machine-learning, pde-solver, physics-informed-neural-networks, python, scientific-machine-learning
- Language: Python
- Homepage:
- Size: 776 KB
- Stars: 177
- Watchers: 11
- Forks: 53
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-scientific-machine-learning - `code` - informed neural networks (PINN). (Software / Python)
- StarryDivineSky - idrl-lab/idrlnet
README
# IDRLnet
[](https://www.apache.org/licenses/LICENSE-2.0)
[](https://python.org)
[](https://idrlnet.readthedocs.io/en/latest/?badge=latest)
[](https://badge.fury.io/py/idrlnet)
[](https://hub.docker.com/r/idrl/idrlnet)
[](https://www.codefactor.io/repository/github/idrl-lab/idrlnet/overview/master)**IDRLnet** is a machine learning library on top of [PyTorch](https://pytorch.org/). Use IDRLnet if you need a machine learning library that solves both forward and inverse differential equations via physics-informed neural networks (PINN). IDRLnet is a flexible framework inspired by [Nvidia Simnet](https://developer.nvidia.com/simnet>).
## Docs
- [Full docs](https://idrlnet.readthedocs.io/en/latest/)
- [Tutorial](https://idrlnet.readthedocs.io/en/latest/user/get_started/tutorial.html)
- Paper:
- IDRLnet: A Physics-Informed Neural Network Library. [arXiv](https://arxiv.org/abs/2107.04320)## Installation
Choose one of the following installation methods.
### PyPI
Simple installation from PyPI.
```bash
pip install -U idrlnet
```Note: To avoid version conflicts, please use some tools to create a virtual environment first.
### Docker
Pull latest docker image from Dockerhub.
```bash
docker pull idrl/idrlnet:latest
docker run -it idrl/idrlnet:latest bash```
Note: Available tags can be found in [Dockerhub](https://hub.docker.com/repository/docker/idrl/idrlnet).
### Anaconda
```bash
conda create -n idrlnet_dev python=3.8 -y
conda activate idrlnet_dev
pip install idrlnet
```### From Source
```
git clone https://github.com/idrl-lab/idrlnet
cd idrlnet
pip install -e .
```## Features
IDRLnet supports
- complex domain geometries without mesh generation. Provided geometries include interval, triangle, rectangle, polygon, circle, sphere... Other geometries can be constructed using three boolean operations: union, difference, and intersection;

- sampling in the interior of the defined geometry or on the boundary with given conditions.- enables the user code to be structured. Data sources, operations, constraints are all represented by ``Node``. The graph will be automatically constructed via label symbols of each node. Getting rid of the explicit construction via explicit expressions, users model problems more naturally.
- builds computational graph automatically;

- user-defined callbacks;

- solving variational minimization problem;
![]()
- solving integral differential equation;- adaptive resampling;
- recover unknown parameters of PDEs from noisy measurement data.
It is also easy to customize IDRLnet to meet new demands.
- Main Dependencies
- [Matplotlib](https://matplotlib.org/)
- [NumPy](http://www.numpy.org/)
- [Sympy](https://https://www.sympy.org/)==1.5.1
- [pytorch](https://www.tensorflow.org/)>=1.7.0## Contributing to IDRLnet
First off, thanks for taking the time to contribute!
- **Reporting bugs.** To report a bug, simply open an issue in the GitHub "Issues" section.
- **Suggesting enhancements.** To submit an enhancement suggestion for IDRLnet, including completely new features and minor improvements to existing functionality, let us know by opening an issue.
- **Pull requests.** If you made improvements to IDRLnet, fixed a bug, or had a new example, feel free to send us a pull-request.
- **Asking questions.** To get help on how to use IDRLnet or its functionalities, you can as well open an issue.- **Answering questions.** If you know the answer to any question in the "Issues", you are welcomed to answer.
## The Team
IDRLnet was originally developed by IDRL lab.
## Citation
Feel free to cite this library.```bibtex
@article{peng2021idrlnet,
title={IDRLnet: A Physics-Informed Neural Network Library},
author={Wei Peng and Jun Zhang and Weien Zhou and Xiaoyu Zhao and Wen Yao and Xiaoqian Chen},
year={2021},
eprint={2107.04320},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
```