Leibniz is a package providing facilities to express learnable differential equations based on PyTorch
Project description
Leibniz
Leibniz is a python package which provide facilities to express learnable differential equations with PyTorch
Install
pip install leibniz
How to use
As an example we solve a very simple advection problem, a box-shaped material transported by a constant steady wind.
import torch as th
import leibniz as lbnz
from leibniz.core3d.gridsys.regular3 import RegularGrid
from leibniz.diffeq import odeint as odeint
def binary(tensor):
return th.where(tensor > lbnz.zero, lbnz.one, lbnz.zero)
# setup grid system
lbnz.bind(RegularGrid(
basis='x,y,z',
W=51, L=151, H=51,
east=16.0, west=1.0,
north=6.0, south=1.0,
upper=6.0, lower=1.0
))
lbnz.use('x,y,z') # use xyz coordinate
# giving a material field as a box
fld = binary((lbnz.x - 8) * (9 - lbnz.x)) * \
binary((lbnz.y - 3) * (4 - lbnz.y)) * \
binary((lbnz.z - 3) * (4 - lbnz.z))
# construct a constant steady wind
wind = lbnz.one, lbnz.zero, lbnz.zero
# transport value by wind
def derivitive(t, clouds):
return - lbnz.upwind(wind, clouds)
# integrate the system with rk4
pred = odeint(derivitive, fld, th.arange(0, 7, 1 / 100), method='rk4')
How to release
python3 setup.py sdist bdist_wheel
python3 -m twine upload dist/*
git tag va.b.c master
git push origin va.b.c
Contributors
Acknowledge
We included source code with minor changes from torchdiffeq by Ricky Chen, because of two purpose:
- package torchdiffeq is not indexed by pypi
- package torchdiffeq is very convenient and mandatory
All our contribution is based on Ricky's Neural ODE paper (NIPS 2018) and his package.
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
leibniz-0.0.7.tar.gz
(35.0 kB
view hashes)
Built Distribution
Close
Hashes for leibniz-0.0.7-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3d42f5fdba082f2d82ba012fe074ae0943b039c62defbb99f96eb184a650d0d |
|
MD5 | 0bb306b5822dc4eecc6ded86f95684ad |
|
BLAKE2b-256 | e78f9717a6bcec2121457f2a65c5e760f8a7ec65514d7f8defb0c35b1e1938e0 |