numbakit-ode: leveraging numba to speed up ODE integration
numbakit-ode (nbkode) is a Python package to solve ordinary differential equations (ODE) that uses Numba to compile code and therefore speed up calculations.
The API is very similar to scipy’s integrate module therefore allowing for easy migration.
It runs in Python 3.7+ depending on NumPy, SciPy and Numba. It is licensed under BSD.
It is extremely easy and natural to use:
>>> import nbkode
>>> def func(t, y):
... return -0.1 * y
>>> t0 = 0.
>>> y0 = 1.
>>> solver = nbkode.ForwardEuler(func, t0, y0)
>>> ts, ys = solver.run([0., 5., 10.])
You can get a list of all solvers:
>>> import nbkode
>>> nbkode.get_solvers() #doctest: +SKIP
or filter by characteristics or group name (or names).
>>> nbkode.get_solvers(implicit=False, fixed_step=True) #doctest: +SKIP
>>> nbkode.get_solvers('euler', 'adam-bashforth') #doctest: +SKIP
Quick Installation
To install numbakit-ode, simply (soon):
$ pip install numbakit-ode
or utilizing conda, with the conda-forge channel (soon):
$ conda install -c conda-forge numbakit-ode
and then simply enjoy it!
Design principles
Fast: We love Numba. It allows you to write clean Python code that translates to optimized machine code at runtime. We aim to be able to leverage this power to solve a system of ordinary differential equations.
Simple but useful API: Solvers are classes easy to instantiate, with sensible defaults and convenient methods.
Correctness: We check against established libraries like SciPy that our implementation match those of established libraries using automated testing.
Data driven development: We take decisions based on data, and for this purpose we measure the performance of each part of the package, and the effect of each change we make.
numbakit-ode is maintained by a community. See AUTHORS for a complete list.
To review an ordered list of notable changes for each version of a project, see CHANGES
Metadata
Release files for numbakit-ode 0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| numbakit-ode-0.5.tar.gz | 71.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| numbakit_ode-0.5-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 120.9 kB
Release files / numbakit-ode-0.5.tar.gz
| Download URL | numbakit-ode-0.5.tar.gz |
|---|---|
| Size | 71.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
78b2d79bdd78df8ead67c51a556a34f44a020ccbb6692d4665427593dd7c8a19
|
|
BLAKE2b-256 checksum How to use checksums |
d541bc64e4a0ee1c1304e5ace9d38245330368af564a203e8dd5b57232d796e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.8.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.7
|
Release files / numbakit_ode-0.5-py2.py3-none-any.whl
| Download URL | numbakit_ode-0.5-py2.py3-none-any.whl |
|---|---|
| Size | 49.8 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
addb4691b7f455dcddcc14131bd90fb2fce2335847a1c2d4a05ebb5d8b00c8ab
|
|
BLAKE2b-256 checksum How to use checksums |
7b37f45206c080b91fc338697944927c703d12af56bde45b8606552769f33924
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.8.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.7
|