pygslodeiv2


Namepygslodeiv2 JSON
Version 0.9.6 PyPI version JSON
download
home_pagehttps://github.com/bjodah/pygslodeiv2
SummaryPython binding for odeiv2 in GNU Scientific Library (GSL).
upload_time2024-04-24 15:59:32
maintainerNone
docs_urlhttps://pythonhosted.org/pygslodeiv2/
authorBjoern I. Dahlgren
requires_pythonNone
licenseGPL-3.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage No coveralls.
            pygslodeiv2
===========

.. image:: http://hackspett.bjodah.se/api/badges/5/status.svg
   :target: http://hackspett.bjodah.se/repos/5
   :alt: Build status
.. image:: https://img.shields.io/pypi/v/pygslodeiv2.svg
   :target: https://pypi.python.org/pypi/pygslodeiv2
   :alt: PyPI version
.. image:: https://img.shields.io/pypi/l/pygslodeiv2.svg
   :target: https://github.com/bjodah/pygslodeiv2/blob/master/LICENSE
   :alt: License
.. image:: http://artifacts.bjodah.se/pygslodeiv2/branches/master/htmlcov/coverage.svg
   :target: http://artifacts.bjodah.se/pygslodeiv2/branches/master/htmlcov/
   :alt: coverage
.. image:: https://zenodo.org/badge/41481237.svg
   :target: https://zenodo.org/badge/latestdoi/41481237
   :alt: Zenodo DOI


`pygslodeiv2 <https://github.com/bjodah/pygslodeiv2>`_ provides a
`Python <http://www.python.org>`_ binding to the
`Ordinary Differential Equation <https://en.wikipedia.org/wiki/Ordinary_differential_equation>`_
integration routines exposed by the `odeiv2 interface <https://www.gnu.org/software/gsl/manual/html_node/Ordinary-Differential-Equations.html>`_ of
`GSL - GNU Scientific Library <http://www.gnu.org/software/gsl/>`_.
The odeiv2 interface allows a user to numerically integrate (systems of) differential equations.

The following `stepping functions <https://www.gnu.org/software/gsl/manual/html_node/Stepping-Functions.html>`_ are available:

- rk2
- rk4
- rkf45
- rkck
- rk8pd
- rk1imp
- rk2imp
- rk4imp
- bsimp
- msadams
- msbdf

Note that all implicit steppers (those ending with "imp") and msbdf require a user supplied
callback for calculating the jacobian.

You may also want to know that you can use ``pygslodeiv2`` from
`pyodesys <https://github.com/bjodah/pyodesys>`_
which can e.g. derive the Jacobian analytically (using SymPy). ``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/pygslodeiv2/latest>`_
(and the development version for the current master branch are found here:
`<http://hera.physchem.kth.se/~pygslodeiv2/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 pygslodeiv2 pytest
   $ python -m pytest --pyargs pygslodeiv2

tests should pass.

Binary distribution is available here:
`<https://anaconda.org/bjodah/pygslodeiv2>`_, conda recipes for stable releases are available here: 
`<http://hera.physchem.kth.se/~pygslodeiv2/conda-recipes>`_.

Source distribution is available here (requires GSL v1.16 or v2.1 shared lib with headers):
`<https://pypi.python.org/pypi/pygslodeiv2>`_ (with mirrored files kept here:
`<http://hera.physchem.kth.se/~pygslodeiv2/releases>`_)

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

.. code:: python

   >>> import numpy as np
   >>> from pygslodeiv2 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):
   ...     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]; dt0=1e-8; t0=0.0; atol=1e-8; rtol=1e-8
   >>> tout = np.linspace(0, 10.0, 200)
   >>> yout, info = integrate_predefined(f, j, y0, tout, dt0, atol, rtol,
   ...                                   method='bsimp')  # Implicit Bulirsch-Stoer
   >>> import matplotlib.pyplot as plt
   >>> series = plt.plot(tout, yout)
   >>> plt.show()  # doctest: +SKIP


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

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


License
-------
The source code is Open Source and is released under GNU GPL v3. See `LICENSE <LICENSE>`_ for further details.
Contributors are welcome to suggest improvements at https://github.com/bjodah/pygslodeiv2

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

- gmail address: bjodah

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/bjodah/pygslodeiv2",
    "name": "pygslodeiv2",
    "maintainer": null,
    "docs_url": "https://pythonhosted.org/pygslodeiv2/",
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "Bjoern I. Dahlgren",
    "author_email": "bjodah@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/4b/93/c71ad224b41b9d4b4785d90d2eec6b94cd1a24a0d1e198832b2c38612d87/pygslodeiv2-0.9.6.tar.gz",
    "platform": null,
    "description": "pygslodeiv2\n===========\n\n.. image:: http://hackspett.bjodah.se/api/badges/5/status.svg\n   :target: http://hackspett.bjodah.se/repos/5\n   :alt: Build status\n.. image:: https://img.shields.io/pypi/v/pygslodeiv2.svg\n   :target: https://pypi.python.org/pypi/pygslodeiv2\n   :alt: PyPI version\n.. image:: https://img.shields.io/pypi/l/pygslodeiv2.svg\n   :target: https://github.com/bjodah/pygslodeiv2/blob/master/LICENSE\n   :alt: License\n.. image:: http://artifacts.bjodah.se/pygslodeiv2/branches/master/htmlcov/coverage.svg\n   :target: http://artifacts.bjodah.se/pygslodeiv2/branches/master/htmlcov/\n   :alt: coverage\n.. image:: https://zenodo.org/badge/41481237.svg\n   :target: https://zenodo.org/badge/latestdoi/41481237\n   :alt: Zenodo DOI\n\n\n`pygslodeiv2 <https://github.com/bjodah/pygslodeiv2>`_ provides a\n`Python <http://www.python.org>`_ binding to the\n`Ordinary Differential Equation <https://en.wikipedia.org/wiki/Ordinary_differential_equation>`_\nintegration routines exposed by the `odeiv2 interface <https://www.gnu.org/software/gsl/manual/html_node/Ordinary-Differential-Equations.html>`_ of\n`GSL - GNU Scientific Library <http://www.gnu.org/software/gsl/>`_.\nThe odeiv2 interface allows a user to numerically integrate (systems of) differential equations.\n\nThe following `stepping functions <https://www.gnu.org/software/gsl/manual/html_node/Stepping-Functions.html>`_ are available:\n\n- rk2\n- rk4\n- rkf45\n- rkck\n- rk8pd\n- rk1imp\n- rk2imp\n- rk4imp\n- bsimp\n- msadams\n- msbdf\n\nNote that all implicit steppers (those ending with \"imp\") and msbdf require a user supplied\ncallback for calculating the jacobian.\n\nYou may also want to know that you can use ``pygslodeiv2`` from\n`pyodesys <https://github.com/bjodah/pyodesys>`_\nwhich can e.g. derive the Jacobian analytically (using SymPy). ``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/pygslodeiv2/latest>`_\n(and the development version for the current master branch are found here:\n`<http://hera.physchem.kth.se/~pygslodeiv2/branches/master/html>`_).\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 pygslodeiv2 pytest\n   $ python -m pytest --pyargs pygslodeiv2\n\ntests should pass.\n\nBinary distribution is available here:\n`<https://anaconda.org/bjodah/pygslodeiv2>`_, conda recipes for stable releases are available here: \n`<http://hera.physchem.kth.se/~pygslodeiv2/conda-recipes>`_.\n\nSource distribution is available here (requires GSL v1.16 or v2.1 shared lib with headers):\n`<https://pypi.python.org/pypi/pygslodeiv2>`_ (with mirrored files kept here:\n`<http://hera.physchem.kth.se/~pygslodeiv2/releases>`_)\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   >>> import numpy as np\n   >>> from pygslodeiv2 import integrate_predefined  # also: integrate_adaptive\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):\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]; dt0=1e-8; t0=0.0; atol=1e-8; rtol=1e-8\n   >>> tout = np.linspace(0, 10.0, 200)\n   >>> yout, info = integrate_predefined(f, j, y0, tout, dt0, atol, rtol,\n   ...                                   method='bsimp')  # Implicit Bulirsch-Stoer\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/pygslodeiv2/master/examples/van_der_pol.png\n\nFor more examples see `examples/ <https://github.com/bjodah/pygslodeiv2/tree/master/examples>`_, and rendered jupyter notebooks here:\n`<http://hera.physchem.kth.se/~pygslodeiv2/branches/master/examples>`_\n\n\nLicense\n-------\nThe source code is Open Source and is released under GNU GPL v3. See `LICENSE <LICENSE>`_ for further details.\nContributors are welcome to suggest improvements at https://github.com/bjodah/pygslodeiv2\n\nAuthor\n------\nBj\u00f6rn I. Dahlgren, contact:\n\n- gmail address: bjodah\n",
    "bugtrack_url": null,
    "license": "GPL-3.0",
    "summary": "Python binding for odeiv2 in GNU Scientific Library (GSL).",
    "version": "0.9.6",
    "project_urls": {
        "Homepage": "https://github.com/bjodah/pygslodeiv2"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4b93c71ad224b41b9d4b4785d90d2eec6b94cd1a24a0d1e198832b2c38612d87",
                "md5": "4fd1e54ff55d7aea51b161871d2a8307",
                "sha256": "4e0a55c22d91d4ace303c74c3c0adf4618b4bb1d8c414e19f8f85b9ab2012024"
            },
            "downloads": -1,
            "filename": "pygslodeiv2-0.9.6.tar.gz",
            "has_sig": false,
            "md5_digest": "4fd1e54ff55d7aea51b161871d2a8307",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 136331,
            "upload_time": "2024-04-24T15:59:32",
            "upload_time_iso_8601": "2024-04-24T15:59:32.735295Z",
            "url": "https://files.pythonhosted.org/packages/4b/93/c71ad224b41b9d4b4785d90d2eec6b94cd1a24a0d1e198832b2c38612d87/pygslodeiv2-0.9.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-24 15:59:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "bjodah",
    "github_project": "pygslodeiv2",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": false,
    "circle": true,
    "appveyor": true,
    "lcname": "pygslodeiv2"
}
        
Elapsed time: 0.25593s