Skip to main content

Core support module for scikits.odes

Project description

Documentation Status DOI Paper DOI

This package contains the core support classes 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


Download files

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

Source Distribution

scikits_odes_core-3.1.0a1.tar.gz (27.8 kB view details)

Uploaded Source

File details

Details for the file scikits_odes_core-3.1.0a1.tar.gz.

File metadata

  • Download URL: scikits_odes_core-3.1.0a1.tar.gz
  • Upload date:
  • Size: 27.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for scikits_odes_core-3.1.0a1.tar.gz
Algorithm Hash digest
SHA256 f20e5cfb02685bc1897bf190719aa6dfd3a2c0824af7ded1d4758862ff2b9304
MD5 08c70c214f3c6d365605b0f327594744
BLAKE2b-256 ac866660ac192899d8074f19acdb46da903e96a075ef440e3ff15a4ab6d45f2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for scikits_odes_core-3.1.0a1.tar.gz:

Publisher: release.yml on bmcage/odes

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page