PyTorch implementation of Deep Learning methods to solve differential equations
Project description
TorchPhysics is a Python library of (mesh-free) deep learning methods to solve differential equations. You can use TorchPhysics e.g. to
solve ordinary and partial differential equations
train a neural network to approximate solutions for different parameters
solve inverse problems and interpolate external data
The following approaches are implemented using high-level concepts to make their usage as easy as possible:
We aim to also include further implementations in the future.
TorchPhysics is build upon the machine learning library PyTorch.
Features
The Goal of this library is to create a basic framework that can be used in many different applications and with different deep learning methods. To this end, TorchPhysics aims at a:
modular and expandable structure
easy to understand code and clean documentation
intuitive and compact way to transfer the mathematical problem into code
reliable and well tested code basis
Some built-in features are:
mesh free domain generation. With pre implemented domain types: Point, Interval, Parallelogram, Circle, Triangle and Sphere
loading external created objects, thanks to a soft dependency on Trimesh and Shapely
creating complex domains with the boolean operators Union, Cut and Intersection and higher dimensional objects over the Cartesian product
allowing interdependence of different domains, e.g. creating moving domains
different point sampling methods for every domain: RandomUniform, Grid, Gaussian, Latin hypercube, Adaptive and some more for specific domains
different operators to easily define a differential equation
pre implemented fully connected neural network and easy implementation of additional model structures
sequentially or parallel evaluation/training of different neural networks
normalization layers and adaptive weights [6] to speed up the training process
powerful and versatile training thanks to PyTorch Lightning
many options for optimizers and learning rate control
monitoring the loss of individual conditions while training
Getting Started
To learn the functionality and usage of TorchPhysics we recommend to have a look at the following sections:
Installation
TorchPhysics reqiueres the follwing dependencies to be installed:
PyTorch >= 1.7.1, < 2.0.0
PyTorch Lightning >= 1.3.4, < 2.0.0
Numpy >= 1.20.2
Matplotlib >= 3.0.0
Scipy >= 1.6.3
Installing TorchPhysics with pip, automatically downloads everything that is needed:
pip install torchphysics
Additionally, to use the Shapely and Trimesh functionalities, install the library with the option all:
pip install torchphysics[all]
If you want to add functionalities or modify the code. We recommend copying the repository and installing it locally:
git clone https://github.com/boschresearch/torchphysics
cd path_to_torchphysics_folder
pip install .[all]
About
TorchPhysics was originally developed by Nick Heilenkötter and Tom Freudenberg, as part of a seminar project at the University of Bremen, in cooperation with the Robert Bosch GmbH. Special thanks belong to Felix Hildebrand, Uwe Iben, Daniel Christopher Kreuter and Johannes Mueller, at the Robert Bosch GmbH, for support and supervision while creating this library.
Contribute
If you are missing a feature or detect a bug or unexpected behaviour while using this library, feel free to open an issue or a pull request in GitHub or contact the authors. Since we developed the code as a student project during a seminar, we cannot guarantee every feature to work properly. However, we are happy about all contributions since we aim to develop a reliable code basis and extend the library to include other approaches.
License
TorchPhysics uses an Apache License, see the LICENSE file.
Bibliography
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file torchphysics-1.0.2.tar.gz
.
File metadata
- Download URL: torchphysics-1.0.2.tar.gz
- Upload date:
- Size: 9.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95287154ed36ad330a97067bc48b3f443cd2dc85d7ee49e5e4f2d75e7ca04904 |
|
MD5 | 8efeb6cb9b67cdd50596c3fa96bd1c71 |
|
BLAKE2b-256 | 53ba3f2d962301e6f75187036efdcefaf0db262052cd00ec64cf28e31718bd94 |
File details
Details for the file torchphysics-1.0.2-py2.py3-none-any.whl
.
File metadata
- Download URL: torchphysics-1.0.2-py2.py3-none-any.whl
- Upload date:
- Size: 121.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78d6a11ed301f5152b7b78a0d45a3598a29c9bf02e6db135e9c74253baa109b4 |
|
MD5 | 4bb97e236d080a86d21250c625ef1c69 |
|
BLAKE2b-256 | 9dc1168bd44feb65ebf77bcb1d63d796725aff5c5cbca0abe3b54b65d0efd5af |