Python binding for cvodes from the sundials library.

## Project description

pycvodes provides a Python binding to the Ordinary Differential Equation integration routines exposed by cvodes from the SUNDIALS suite. Cvodes allows a user to numerically integrate (systems of) differential equations.

The following multistep methods are available:

• bdf

Note that bdf (as an implicit stepper) require a user supplied callback for calculating the jacobian.

## Documentation

Autogenerated API documentation is found here: https://bjodah.github.com/pycvodes

## Installation

Binary distribution is available here: https://anaconda.org/bjodah/pycvodes

Source distribution is available here: https://pypi.python.org/pypi/pycvodes

## Example

The classic van der Pol oscillator (see examples/van_der_pol.py)

```>>> import numpy as np
>>> from pycvodes import integrate_predefined  # also: integrate_adaptive
>>> mu = 1.0
>>> def f(t, y, dydt):
...     dydt[0] = y[1]
...     dydt[1] = -y[0] + mu*y[1]*(1 - y[0]**2)
...
>>> def j(t, y, Jmat, dfdt=None, fy=None):
...     Jmat[0, 0] = 0
...     Jmat[0, 1] = 1
...     Jmat[1, 0] = -1 - mu*2*y[1]*y[0]
...     Jmat[1, 1] = mu*(1 - y[0]**2)
...     if dfdt is not None:
...         dfdt[:] = 0
...
>>> y0 = [1, 0]; dt0=1e-8; t0=0.0; atol=1e-8; rtol=1e-8
>>> tout = np.linspace(0, 10.0, 200)
>>> yout = integrate_predefined(f, j, y0, tout, atol, rtol, dt0,
...                             method='bdf')
>>> import matplotlib.pyplot as plt
>>> plt.plot(tout, yout)
```

The source code is Open Source and is released under the simplified 2-clause BSD license. See LICENSE for further details. Contributors are welcome to suggest improvements at https://github.com/bjodah/pycvodes

## Author

Björn I. Dahlgren, contact: