Wrapper around daepack
Project description
This package contains the f2py wrappers for lsodi and ddaspk for ODES.
pip install scikits-odes
to get all the available solvers.
ODES is a scikit for Python 3.7+ offering extra ode/dae solvers, as an extension to what is available in scipy. The documentation is available at Read The Docs, and API docs can be found at https://bmcage.github.io/odes.
Available solvers:
ODES provides interfaces to the following solvers:
- BDF linear multistep method for stiff problems (CVODE and IDA from SUNDIALS)
- Adams-Moulton linear multistep method for nonstiff problems (CVODE and IDA from SUNDIALS)
- Explicit Runge-Kutta method of order (4)5 with stepsize control (dopri5
from
scipy.integrate
) - Explicit Runge-Kutta method of order 8(5,3) with stepsize control (dop853
from
scipy.integrate
) - Historical solvers: lsodi and ddaspk are available for comparison reasons. Use IDA instead! Note that lsodi fails on architecture aarch64.
Usage
A simple example solving the Van der Pol oscillator is as follows:
import matplotlib.pyplot as plt
import numpy as np
from scikits.odes import ode
t0, y0 = 1, np.array([0.5, 0.5]) # initial condition
def van_der_pol(t, y, ydot):
""" we create rhs equations for the problem"""
ydot[0] = y[1]
ydot[1] = 1000*(1.0-y[0]**2)*y[1]-y[0]
solution = ode('cvode', van_der_pol, old_api=False).solve(np.linspace(t0,500,200), y0)
plt.plot(solution.values.t, solution.values.y[:,0], label='Van der Pol oscillator')
plt.show()
For simplicity there is also a convenience function odeint
wrapping the ode
solver class. See the User Guide for a
simple example for odeint
, as well as simple examples for object orientated
interfaces and further examples using ODES solvers.
Projects that use odes
You can learn by example from following code that uses ODES:
- Centrifuge simulation, a wrapper around the ida solver: see centrifuge-1d
You have a project using odes? Do a pull request to add your project.
Citing ODES
If you use ODES as part of your research, can you please cite the ODES JOSS paper. Additionally, if you use one of the SUNDIALS solvers, we strongly encourage you to cite the SUNDIALS papers.
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
Hashes for scikits_odes_daepack-3.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26ff10369819e4e115253238542acfe4440a03a41792a7a2d741d57d4eb92569 |
|
MD5 | dd8c04ccf98a752adbce48d9079db97f |
|
BLAKE2b-256 | 17ce525d88b84d8b7b2e964ec19902310aeffba5d945ea80947d9511dafb5b8e |