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
None None None NoneRelease 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.27.tar.gz
(36.4 kB
view hashes)
Built Distribution
Close
Hashes for leibniz-0.0.27-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37bd98b4a70fd63c4d62680d15eb832f2780caf92f43a82debfa978edabf2141 |
|
MD5 | b91e44bdf29d29e2958cc58418d680cc |
|
BLAKE2b-256 | 1835932a28464a9f6fa991e8aa5be51828f4e4d1487ffdc32198ff1f1c149dca |