pyodeint


Namepyodeint JSON
Version 0.10.8 PyPI version JSON
download
home_pagehttps://github.com/bjodah/pyodeint
SummaryPython binding for odeint from boost.
upload_time2025-07-24 15:19:18
maintainerNone
docs_urlNone
authorBjörn Dahlgren
requires_pythonNone
licenseBSD
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage No coveralls.
            pyodeint
========

.. image:: http://hackspett.bjodah.se/api/badges/6/status.svg
   :target: http://hackspett.bjodah.se/repos/6
   :alt: Build status
.. image:: https://img.shields.io/pypi/v/pyodeint.svg
   :target: https://pypi.python.org/pypi/pyodeint
   :alt: PyPI version
.. image:: https://img.shields.io/pypi/l/pyodeint.svg
   :target: https://github.com/bjodah/pyodeint/blob/master/LICENSE
   :alt: License
.. image:: http://hera.physchem.kth.se/~pyodeint/branches/master/htmlcov/coverage.svg
   :target: http://hera.physchem.kth.se/~pyodeint/branches/master/htmlcov
   :alt: coverage
.. image:: https://zenodo.org/badge/41257136.svg
   :target: https://zenodo.org/badge/latestdoi/41257136

`pyodeint <https://github.com/bjodah/pyodeint>`_ provides a
`Python <http://www.python.org>`_ binding to `odeint <http://www.odeint.com>`_.
Currently, the following steppers are exposed:

- ``rosenbrock4``: 4th order Rosenbrock (implicit multistep) stepper
- ``dopri5``: 5th order DOPRI5 (explicit runge-kutta)
- ``bs``: Bulirsch-Stoer stepper (modified midpoint rule).

The Rosenbrock4 stepper requires that the user provides a routine for
calculating the Jacobian.

You may also want to know that you can use ``pyodeint`` from
`pyodesys <https://github.com/bjodah/pyodesys>`_
which can e.g. derive the Jacobian analytically for you (pyodesys also provides
plotting functions, C++ code-generation and more).

Documentation
-------------
Autogenerated API documentation for latest stable release is found here:
`<https://bjodah.github.io/pyodeint/latest>`_
(and the development version for the current master branch are found here:
`<http://hera.physchem.kth.se/~pyodeint/branches/master/html>`_).


Installation
------------
Simplest way to install is to use the `conda package manager <http://conda.pydata.org/docs/>`_:

::

   $ conda install -c conda-forge pyodeint pytest
   $ python -m pytest --pyargs pyodeint

tests should pass.

Binary distribution is available here:
`<https://anaconda.org/bjodah/pyodeint>`_

Source distribution is available here:
`<https://pypi.python.org/pypi/pyodeint>`_

here is an example of how to build from source::

   $ CPATH=/opt/boost_1_65_0/include python3 setup.py build_ext -i


Examples
--------
The classic van der Pol oscillator (see `examples/van_der_pol.py <examples/van_der_pol.py>`_)

.. code:: python

   >>> from pyodeint import integrate_adaptive  # also: integrate_predefined
   >>> 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, 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)
   ...     dfdt[0] = 0
   ...     dfdt[1] = 0
   ...
   >>> y0 = [1, 0]; tend=10.0; dt0=1e-8; t0=0.0; atol=1e-8; rtol=1e-8
   >>> tout, yout, info = integrate_adaptive(f, j, y0, t0, tend, dt0, atol, rtol,
   ...                                       method='rosenbrock4', nsteps=1000)
   >>> import matplotlib.pyplot as plt
   >>> series = plt.plot(tout, yout)
   >>> plt.show()  # doctest: +SKIP


.. image:: https://raw.githubusercontent.com/bjodah/pyodeint/master/examples/van_der_pol.png

For more examples see `examples/ <https://github.com/bjodah/pyodeint/tree/master/examples>`_, and rendered jupyter notebooks here:
`<http://hera.physchem.kth.se/~pyodeint/branches/master/examples>`_

See also
--------
`pyodesys <https://github.com/bjodah/pyodesys>`_ for how to automatically
generate the jacobian callback function (and easily swtich to other solvers).

License
-------
The source code is Open Source and is released under the very permissive
"simplified (2-clause) BSD license". See ``LICENSE`` for further details.
Contributors are welcome to suggest improvements at https://github.com/bjodah/pyodeint

Author
------
Björn I. Dahlgren, contact:

- gmail address: bjodah

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/bjodah/pyodeint",
    "name": "pyodeint",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "Bj\u00f6rn Dahlgren",
    "author_email": "bjodah@DELETEMEgmail.com",
    "download_url": "https://files.pythonhosted.org/packages/99/30/e9423a00d4bd66e75d8cbeca42fbd457d3175418f2ac3ca922093223ffe1/pyodeint-0.10.8.tar.gz",
    "platform": null,
    "description": "pyodeint\n========\n\n.. image:: http://hackspett.bjodah.se/api/badges/6/status.svg\n   :target: http://hackspett.bjodah.se/repos/6\n   :alt: Build status\n.. image:: https://img.shields.io/pypi/v/pyodeint.svg\n   :target: https://pypi.python.org/pypi/pyodeint\n   :alt: PyPI version\n.. image:: https://img.shields.io/pypi/l/pyodeint.svg\n   :target: https://github.com/bjodah/pyodeint/blob/master/LICENSE\n   :alt: License\n.. image:: http://hera.physchem.kth.se/~pyodeint/branches/master/htmlcov/coverage.svg\n   :target: http://hera.physchem.kth.se/~pyodeint/branches/master/htmlcov\n   :alt: coverage\n.. image:: https://zenodo.org/badge/41257136.svg\n   :target: https://zenodo.org/badge/latestdoi/41257136\n\n`pyodeint <https://github.com/bjodah/pyodeint>`_ provides a\n`Python <http://www.python.org>`_ binding to `odeint <http://www.odeint.com>`_.\nCurrently, the following steppers are exposed:\n\n- ``rosenbrock4``: 4th order Rosenbrock (implicit multistep) stepper\n- ``dopri5``: 5th order DOPRI5 (explicit runge-kutta)\n- ``bs``: Bulirsch-Stoer stepper (modified midpoint rule).\n\nThe Rosenbrock4 stepper requires that the user provides a routine for\ncalculating the Jacobian.\n\nYou may also want to know that you can use ``pyodeint`` from\n`pyodesys <https://github.com/bjodah/pyodesys>`_\nwhich can e.g. derive the Jacobian analytically for you (pyodesys also provides\nplotting functions, C++ code-generation and more).\n\nDocumentation\n-------------\nAutogenerated API documentation for latest stable release is found here:\n`<https://bjodah.github.io/pyodeint/latest>`_\n(and the development version for the current master branch are found here:\n`<http://hera.physchem.kth.se/~pyodeint/branches/master/html>`_).\n\n\nInstallation\n------------\nSimplest way to install is to use the `conda package manager <http://conda.pydata.org/docs/>`_:\n\n::\n\n   $ conda install -c conda-forge pyodeint pytest\n   $ python -m pytest --pyargs pyodeint\n\ntests should pass.\n\nBinary distribution is available here:\n`<https://anaconda.org/bjodah/pyodeint>`_\n\nSource distribution is available here:\n`<https://pypi.python.org/pypi/pyodeint>`_\n\nhere is an example of how to build from source::\n\n   $ CPATH=/opt/boost_1_65_0/include python3 setup.py build_ext -i\n\n\nExamples\n--------\nThe classic van der Pol oscillator (see `examples/van_der_pol.py <examples/van_der_pol.py>`_)\n\n.. code:: python\n\n   >>> from pyodeint import integrate_adaptive  # also: integrate_predefined\n   >>> mu = 1.0\n   >>> def f(t, y, dydt):\n   ...     dydt[0] = y[1]\n   ...     dydt[1] = -y[0] + mu*y[1]*(1 - y[0]**2)\n   ... \n   >>> def j(t, y, Jmat, dfdt, fy=None):\n   ...     Jmat[0, 0] = 0\n   ...     Jmat[0, 1] = 1\n   ...     Jmat[1, 0] = -1 -mu*2*y[1]*y[0]\n   ...     Jmat[1, 1] = mu*(1 - y[0]**2)\n   ...     dfdt[0] = 0\n   ...     dfdt[1] = 0\n   ...\n   >>> y0 = [1, 0]; tend=10.0; dt0=1e-8; t0=0.0; atol=1e-8; rtol=1e-8\n   >>> tout, yout, info = integrate_adaptive(f, j, y0, t0, tend, dt0, atol, rtol,\n   ...                                       method='rosenbrock4', nsteps=1000)\n   >>> import matplotlib.pyplot as plt\n   >>> series = plt.plot(tout, yout)\n   >>> plt.show()  # doctest: +SKIP\n\n\n.. image:: https://raw.githubusercontent.com/bjodah/pyodeint/master/examples/van_der_pol.png\n\nFor more examples see `examples/ <https://github.com/bjodah/pyodeint/tree/master/examples>`_, and rendered jupyter notebooks here:\n`<http://hera.physchem.kth.se/~pyodeint/branches/master/examples>`_\n\nSee also\n--------\n`pyodesys <https://github.com/bjodah/pyodesys>`_ for how to automatically\ngenerate the jacobian callback function (and easily swtich to other solvers).\n\nLicense\n-------\nThe source code is Open Source and is released under the very permissive\n\"simplified (2-clause) BSD license\". See ``LICENSE`` for further details.\nContributors are welcome to suggest improvements at https://github.com/bjodah/pyodeint\n\nAuthor\n------\nBj\u00f6rn I. Dahlgren, contact:\n\n- gmail address: bjodah\n",
    "bugtrack_url": null,
    "license": "BSD",
    "summary": "Python binding for odeint from boost.",
    "version": "0.10.8",
    "project_urls": {
        "Homepage": "https://github.com/bjodah/pyodeint"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9930e9423a00d4bd66e75d8cbeca42fbd457d3175418f2ac3ca922093223ffe1",
                "md5": "5f52847586f95758ea830ab53c817e84",
                "sha256": "87533fcf79da93690dbca97d0e08c7dcbb586b8fb01c3e0022ff85f9aa0b465a"
            },
            "downloads": -1,
            "filename": "pyodeint-0.10.8.tar.gz",
            "has_sig": false,
            "md5_digest": "5f52847586f95758ea830ab53c817e84",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 216454,
            "upload_time": "2025-07-24T15:19:18",
            "upload_time_iso_8601": "2025-07-24T15:19:18.901290Z",
            "url": "https://files.pythonhosted.org/packages/99/30/e9423a00d4bd66e75d8cbeca42fbd457d3175418f2ac3ca922093223ffe1/pyodeint-0.10.8.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-24 15:19:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "bjodah",
    "github_project": "pyodeint",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": false,
    "circle": true,
    "appveyor": true,
    "lcname": "pyodeint"
}
        
Elapsed time: 0.65967s