897293b698 | ||
---|---|---|
.github/workflows | ||
docs | ||
examples | ||
idrlnet | ||
.bumpversion.cfg | ||
.flake8 | ||
.gitattributes | ||
.gitignore | ||
Dockerfile | ||
LICENSE | ||
MANIFEST.in | ||
README.md | ||
requirements.txt | ||
setup.py |
README.md
Installation
Docker
git clone https://github.com/idrl-lab/idrlnet
cd idrlnet
docker build . -t idrlnet_dev
docker run -it -p [EXPOSED_SSH_PORT]:22 -v [CURRENT_WORK_DIR]:/root/pinnnet idrlnet_dev:latest bash
Anaconda
git clone https://github.com/idrl-lab/idrlnet
cd idrlnet
conda create -n idrlnet_dev python=3.8 -y
conda activate idrlnet_dev
pip install -r requirements.txt
pip install -e .
IDRLnet
IDRLnet is a machine learning library on top of Pytorch. Use IDRLnet if you need a machine learning library that solves both forward and inverse partial differential equations (PDEs) via physics-informed neural networks (PINN). IDRLnet is a flexible framework inspired by Nvidia Simnet.
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. -
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
- NumPy
- Sympy==1.5.1
- pytorch>=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.