ODES

ODES: a high level interface to ODE and DAE solvers - Published in JOSS (2018)

https://github.com/bmcage/odes

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 9 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
    1 of 16 committers (6.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Scientific Fields

Mathematics Computer Science - 37% confidence
Last synced: 6 months ago · JSON representation

Repository

The ODES scikit for ordinary differential and algebraic equations, an extension to scipy

Basic Info
Statistics
  • Stars: 126
  • Watchers: 11
  • Forks: 43
  • Open Issues: 26
  • Releases: 20
Created over 14 years ago · Last pushed about 1 year ago
Metadata Files
Readme Contributing License

README.md

Documentation Status Version License Supported versions Supported implementations PyPI

DOI

Paper DOI

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:

```python 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 vanderpol(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', vanderpol, 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.

Owner

  • Name: Benny
  • Login: bmcage
  • Kind: user
  • Location: Belgium
  • Company: ugent.be

JOSS Publication

ODES: a high level interface to ODE and DAE solvers
Published
February 23, 2018
Volume 3, Issue 22, Page 165
Authors
Benny Malengier ORCID
Ghent University
Pavol Kišon
Ghent University
James Tocknell ORCID
Macquarie University
Claas Abert ORCID
University of Vienna
Florian Bruckner ORCID
University of Vienna
Marc-Antonio Bisotti
University of Southampton
Editor
Kyle Niemeyer ORCID
Tags
ode dae sundials root finding

GitHub Events

Total
  • Create event: 4
  • Release event: 4
  • Issues event: 8
  • Watch event: 3
  • Issue comment event: 19
  • Push event: 25
  • Pull request event: 27
  • Fork event: 1
Last Year
  • Create event: 4
  • Release event: 4
  • Issues event: 8
  • Watch event: 3
  • Issue comment event: 19
  • Push event: 25
  • Pull request event: 27
  • Fork event: 1

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 470
  • Total Committers: 16
  • Avg Commits per committer: 29.375
  • Development Distribution Score (DDS): 0.583
Past Year
  • Commits: 29
  • Committers: 4
  • Avg Commits per committer: 7.25
  • Development Distribution Score (DDS): 0.517
Top Committers
Name Email Commits
Benny Malengier b****r@g****m 196
James Tocknell a****r@g****m 121
Pavol Kišon p****n@g****m 105
Corey R. Randall c****l@g****m 14
Claas Abert c****s@c****e 6
Stefan Ecklebe s****e@t****e 6
Florian Bruckner e****5@g****m 5
logicabrity m****l@m****e 4
Saransh s****1@g****m 3
Dominic Steinitz d****c@s****g 2
Florian Klink f****i@f****e 2
Valentin Sulzer v****r@h****m 2
Björn Ingvar Dahlgren b****h@g****m 1
Martin Robinson m****s@g****m 1
stuart-nolan 6****n 1
James Tocknell a****r@c****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 68
  • Total pull requests: 84
  • Average time to close issues: 5 months
  • Average time to close pull requests: about 2 months
  • Total issue authors: 49
  • Total pull request authors: 14
  • Average comments per issue: 3.43
  • Average comments per pull request: 1.42
  • Merged pull requests: 72
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 15
  • Average time to close issues: 1 day
  • Average time to close pull requests: 7 days
  • Issue authors: 2
  • Pull request authors: 3
  • Average comments per issue: 2.5
  • Average comments per pull request: 0.87
  • Merged pull requests: 12
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • aragilar (5)
  • idontgetoutmuch (4)
  • ma-sadeghi (3)
  • Huan-Yang (3)
  • flokli (2)
  • callegar (2)
  • moorepants (2)
  • paulhprobert (2)
  • cmashraf (2)
  • artgoldberg (2)
  • martinjrobins (2)
  • bmcage (2)
  • OrbitalMechanic (1)
  • faultdiagnosistoolbox (1)
  • dmitry-kabanov (1)
Pull Request Authors
  • aragilar (84)
  • c-randall (8)
  • bmcage (5)
  • stuart-nolan (2)
  • flokli (2)
  • tinosulzer (2)
  • bjodah (2)
  • idontgetoutmuch (1)
  • cklb (1)
  • Saransh-cpp (1)
  • kmaitreys (1)
  • sixpearls (1)
  • dmitry-kabanov (1)
  • martinjrobins (1)
Top Labels
Issue Labels
feature-request (1)
Pull Request Labels

Packages

  • Total packages: 6
  • Total downloads:
    • pypi 4,657 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 48
  • Total maintainers: 3
spack.io: py-scikits-odes

Odes is a scikit toolkit for scipy to add extra ode solvers. Specifically it interfaces the Sundials solvers cvode, cvodes, ida and idas. It this way it provides extra modern ode and dae solvers you can use, extending the capabilities offered in scipy.integrade.ode.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Forks count: 16.9%
Stargazers count: 17.8%
Average: 23.1%
Dependent packages count: 57.9%
Maintainers (1)
Last synced: 6 months ago
pypi.org: scikits-odes

A python module for ordinary differential equation and differential algebraic equation solvers

  • Homepage: http://cage.ugent.be/~bm/progs.html
  • Documentation: https://scikits-odes.readthedocs.io/en/stable/
  • License: # Copyright (C) 2011-12 Pavol Kišon # Copyright (C) 2011-12 Benny Malengier All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: a. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. b. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. c. Neither the name of the Enthought nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • Latest release: 3.1.1
    published about 1 year ago
  • Versions: 26
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 2,006 Last month
Rankings
Downloads: 8.0%
Dependent packages count: 10.6%
Average: 26.2%
Dependent repos count: 60.0%
Maintainers (2)
Last synced: 6 months ago
pypi.org: scikits-odes-core

Core support module for scikits-odes

  • Homepage: http://cage.ugent.be/~bm/progs.html
  • Documentation: https://scikits-odes.readthedocs.io/en/stable/
  • License: # Copyright (C) 2011-12 Pavol Kišon # Copyright (C) 2011-12 Benny Malengier All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: a. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. b. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. c. Neither the name of the Enthought nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • Latest release: 3.1.1
    published about 1 year ago
  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 942 Last month
Rankings
Dependent packages count: 10.6%
Average: 35.3%
Dependent repos count: 60.0%
Maintainers (2)
Last synced: 6 months ago
pypi.org: scikits-odes-daepack

Wrapper around daepack

  • Homepage: http://cage.ugent.be/~bm/progs.html
  • Documentation: https://scikits-odes.readthedocs.io/en/stable/
  • License: # Copyright (C) 2011-12 Pavol Kišon # Copyright (C) 2011-12 Benny Malengier All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: a. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. b. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. c. Neither the name of the Enthought nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • Latest release: 3.0.0
    published over 1 year ago
  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 946 Last month
Rankings
Dependent packages count: 10.6%
Average: 35.3%
Dependent repos count: 60.0%
Maintainers (2)
Last synced: 6 months ago
pypi.org: scikits-odes-sundials

Sundials wrapper module for scikits-odes

  • Homepage: http://cage.ugent.be/~bm/progs.html
  • Documentation: https://scikits-odes.readthedocs.io/en/stable/
  • License: # Copyright (C) 2011-12 Pavol Kišon # Copyright (C) 2011-12 Benny Malengier All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: a. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. b. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. c. Neither the name of the Enthought nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • Latest release: 3.1.1
    published about 1 year ago
  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 763 Last month
Rankings
Dependent packages count: 10.6%
Average: 35.3%
Dependent repos count: 60.0%
Maintainers (2)
Last synced: 6 months ago
conda-forge.org: scikits.odes

Odes is a scikit toolkit for scipy to add extra ode solvers. Specifically it interfaces the Sundials solvers cvode, cvodes, ida and idas. It this way it provides extra modern ode and dae solvers you can use, extending the capabilities offered in scipy.integrade.ode.

  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Forks count: 26.1%
Stargazers count: 30.1%
Dependent repos count: 34.0%
Average: 35.4%
Dependent packages count: 51.2%
Last synced: 6 months ago

Dependencies

apidocs/requirements.txt pypi
  • sphinx >=1.4
  • sphinx_rtd_theme *
docs/requirements.txt pypi
  • sphinx >=1.3
.github/workflows/release.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/test-core.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
.github/workflows/test-daepack.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
.github/workflows/test-namespace.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
.github/workflows/test-overall.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
.github/workflows/test-sundials.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
notebook-requirements.txt pypi
  • cython *
  • ggplot *
  • ipython *
  • matplotlib *
  • pandas *
packages/scikits-odes/local-requirements.txt pypi
packages/scikits-odes/pyproject.toml pypi
  • scikits-odes-core *
  • scikits-odes-daepack *
  • scikits-odes-sundials *
  • scipy *
packages/scikits-odes/setup.py pypi
packages/scikits-odes-core/pyproject.toml pypi
packages/scikits-odes-core/setup.py pypi
packages/scikits-odes-daepack/pyproject.toml pypi
  • numpy *
  • scikits-odes-core *
packages/scikits-odes-sundials/local-requirements.txt pypi
packages/scikits-odes-sundials/pyproject.toml pypi
  • numpy *
  • scikits-odes-core *
packages/scikits-odes-sundials/setup.py pypi