Skip to main content

Leibniz is a package providing facilities to express learnable differential equations based on PyTorch

Project description

Leibniz

Build Status

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 an very simple advection problem, a box-shaped material transported by a constant steady wind.

moving box

import torch as th
import leibniz as lbnz

from leibniz.core.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')

Contributors

Acknowledge

We included source code with minor changes from torchdiffeq by Ricky Chen, because of two purpose:

  1. package torchdiffeq is not indexed by pypi
  2. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for leibniz, version 0.0.2
Filename, size File type Python version Upload date Hashes
Filename, size leibniz-0.0.2-py2.py3-none-any.whl (40.1 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size leibniz-0.0.2.tar.gz (28.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page