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"
}