https://github.com/bjodah/pygslodeiv2

Python binding for odeiv2 interface from GNU Scientific Library (GSL)

https://github.com/bjodah/pygslodeiv2

Science Score: 36.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
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.1%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Python binding for odeiv2 interface from GNU Scientific Library (GSL)

Basic Info
  • Host: GitHub
  • Owner: bjodah
  • License: gpl-3.0
  • Language: C++
  • Default Branch: master
  • Size: 6.62 MB
Statistics
  • Stars: 14
  • Watchers: 4
  • Forks: 0
  • Open Issues: 2
  • Releases: 18
Created almost 11 years ago · Last pushed 11 months ago
Metadata Files
Readme Changelog License Authors

README.rst

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 `_ provides a
`Python `_ binding to the
`Ordinary Differential Equation `_
integration routines exposed by the `odeiv2 interface `_ of
`GSL - GNU Scientific Library `_.
The odeiv2 interface allows a user to numerically integrate (systems of) differential equations.

The following `stepping functions `_ 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 `_
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:
``_
(and the development version for the current master branch are found here:
``_).

Installation
------------
Simplest way to install is to use the `conda package manager `_:

::

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

tests should pass.

Binary distribution is available here:
``_, conda recipes for stable releases are available here: 
``_.

Source distribution is available here (requires GSL v1.16 or v2.1 shared lib with headers):
``_ (with mirrored files kept here:
``_)

Examples
--------
The classic van der Pol oscillator (see `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/ `_, and rendered jupyter notebooks here:
``_


License
-------
The source code is Open Source and is released under GNU GPL v3. See `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

Owner

  • Name: Bjorn
  • Login: bjodah
  • Kind: user

GitHub Events

Total
  • Release event: 1
  • Delete event: 1
  • Push event: 10
  • Pull request event: 2
  • Create event: 1
Last Year
  • Release event: 1
  • Delete event: 1
  • Push event: 10
  • Pull request event: 2
  • Create event: 1

Committers

Last synced: about 3 years ago

All Time
  • Total Commits: 140
  • Total Committers: 1
  • Avg Commits per committer: 140.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Björn Dahlgren b****h@g****m 140

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 2
  • Total pull requests: 38
  • Average time to close issues: N/A
  • Average time to close pull requests: 2 days
  • Total issue authors: 2
  • Total pull request authors: 1
  • Average comments per issue: 5.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 37
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • yurivict (1)
  • bjodah (1)
Pull Request Authors
  • bjodah (40)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 114 last-month
  • Total dependent packages: 1
    (may contain duplicates)
  • Total dependent repositories: 4
    (may contain duplicates)
  • Total versions: 36
  • Total maintainers: 1
pypi.org: pygslodeiv2

Python binding for odeiv2 in GNU Scientific Library (GSL).

  • Versions: 30
  • Dependent Packages: 0
  • Dependent Repositories: 2
  • Downloads: 114 Last month
Rankings
Dependent packages count: 10.1%
Dependent repos count: 11.6%
Stargazers count: 15.6%
Average: 19.4%
Forks count: 29.8%
Downloads: 30.2%
Maintainers (1)
Last synced: 11 months ago
conda-forge.org: pygslodeiv2
  • Versions: 6
  • Dependent Packages: 1
  • Dependent Repositories: 2
Rankings
Dependent repos count: 20.2%
Dependent packages count: 29.0%
Average: 42.0%
Stargazers count: 52.9%
Forks count: 66.1%
Last synced: 11 months ago

Dependencies

setup.py pypi
  • numpy *