pentapy

pentapy: A Python toolbox for pentadiagonal linear systems - Published in JOSS (2019)

https://github.com/geostat-framework/pentapy

Science Score: 100.0%

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

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

Keywords

linear-algebra linear-systems math matrix pentadiagonal-linear-systems python solvers toolbox
Last synced: 4 months ago · JSON representation ·

Repository

A Python toolbox for pentadiagonal linear systems

Basic Info
Statistics
  • Stars: 14
  • Watchers: 1
  • Forks: 4
  • Open Issues: 5
  • Releases: 17
Topics
linear-algebra linear-systems math matrix pentadiagonal-linear-systems python solvers toolbox
Created almost 7 years ago · Last pushed 8 months ago
Metadata Files
Readme Changelog Contributing License Citation Zenodo

README.md

Welcome to pentapy

status DOI PyPI version Build Status Coverage Status Documentation Status Code style: black

pentapy-LOGO

Purpose

pentapy is a toolbox to deal with pentadiagonal matrices in Python.

Pentadiagonal linear equation systems arise in many areas of science and engineering: e.g. when solving differential equations, in interpolation problems, or in numerical schemes like finite difference.

Installation

The package can be installed via pip. On Windows you can install WinPython to get Python and pip running.

pip install pentapy

There are pre-built wheels for Linux, MacOS and Windows for most Python versions.

To get the scipy solvers running, you have to install scipy or you can use the following extra argument:

pip install pentapy[all]

Instead of "all" you can also typ "scipy" or "umfpack" to get one of these specific packages.

Citation

If you use pentapy in your publication, please cite it:

Müller, (2019). pentapy: A Python toolbox for pentadiagonal linear systems. Journal of Open Source Software, 4(42), 1759, https://doi.org/10.21105/joss.01759

To cite a certain release, have a look at the Zenodo site: https://doi.org/10.5281/zenodo.2587158

References

The solver is based on the algorithms PTRANS-I and PTRANS-II presented by Askar et al. 2015.

Documentation and Examples

You can find the documentation under https://pentapy.readthedocs.org.

Solving a pentadiagonal linear equation system

This is an example of how to solve a LES with a pentadiagonal matrix.

```python import numpy as np import pentapy as pp

size = 1000

create a flattened pentadiagonal matrix

M_flat = (np.random.random((5, size)) - 0.5) * 1e-5 V = np.random.random(size) * 1e5

solve the LES with M_flat as row-wise flattened matrix

X = pp.solve(Mflat, V, isflat=True)

create the corresponding matrix for checking

M = pp.createfull(Mflat, col_wise=False)

calculate the error

print(np.max(np.abs(np.dot(M, X) - V))) ```

This should give something like: python 4.257890395820141e-08

Performance

In the following a couple of solvers for pentadiagonal systems are compared:

Performance

The implementations of pentapy are almost one order of magnitude faster than the scipy algorithms for banded or sparse matrices.

The performance plot was created with perfplot. Have a look at the script: examples/03_perform_simple.py.

Requirements:

Optional

Contact

You can contact us via info@geostat-framework.org.

License

MIT © 2019 - 2023

Owner

  • Name: GeoStat Framework
  • Login: GeoStat-Framework
  • Kind: organization
  • Email: info@geostat-framework.org
  • Location: UFZ Leipzig

Python framework for geostatistical simulations

JOSS Publication

pentapy: A Python toolbox for pentadiagonal linear systems
Published
October 08, 2019
Volume 4, Issue 42, Page 1759
Authors
Sebastian Müller ORCID
Department of Computational Hydrosystems, UFZ -- Helmholtz Centre for Environmental Research, Leipzig, Germany, Institute of Earth and Environmental Sciences, University Potsdam, Potsdam, Germany
Editor
Vincent Knight ORCID
Tags
numerics linear equation systems pentadiagonal matrices pentadiagonal systems

Citation (CITATION.bib)

@Article{muller_pentapy_2019,
AUTHOR = {M\"uller, Sebastian},
TITLE = {pentapy: {A} {Python} toolbox for pentadiagonal linear systems},
SHORTTITLE = {pentapy},
JOURNAL = {Journal of Open Source Software},
VOLUME = {4},
YEAR = {2019},
NUMBER = {42},
PAGES = {1759},
URL = {https://joss.theoj.org/papers/10.21105/joss.01759},
DOI = {10.21105/joss.01759},
ISSN = {2475-9066},
}

GitHub Events

Total
  • Create event: 2
  • Release event: 1
  • Issues event: 2
  • Delete event: 1
  • Issue comment event: 5
  • Push event: 3
  • Pull request event: 1
Last Year
  • Create event: 2
  • Release event: 1
  • Issues event: 2
  • Delete event: 1
  • Issue comment event: 5
  • Push event: 3
  • Pull request event: 1

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 154
  • Total Committers: 3
  • Avg Commits per committer: 51.333
  • Development Distribution Score (DDS): 0.026
Past Year
  • Commits: 8
  • Committers: 1
  • Avg Commits per committer: 8.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
MuellerSeb m****b@p****e 150
Lorena A. Barba l****a@g****u 3
derb12 5****2 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 15
  • Total pull requests: 14
  • Average time to close issues: 7 months
  • Average time to close pull requests: 22 days
  • Total issue authors: 6
  • Total pull request authors: 5
  • Average comments per issue: 1.87
  • Average comments per pull request: 1.07
  • Merged pull requests: 11
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 0
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 4 months
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 1.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • MuellerSeb (6)
  • MothNik (5)
  • derb12 (1)
  • virgesmith (1)
  • joglekara (1)
  • inakleinbottle (1)
Pull Request Authors
  • MuellerSeb (7)
  • MothNik (4)
  • labarba (3)
  • dependabot[bot] (2)
  • derb12 (1)
Top Labels
Issue Labels
enhancement (5) dependencies (2)
Pull Request Labels
enhancement (6) dependencies (4)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 5,027 last-month
  • Total dependent packages: 3
    (may contain duplicates)
  • Total dependent repositories: 2
    (may contain duplicates)
  • Total versions: 20
  • Total maintainers: 3
pypi.org: pentapy

pentapy: A toolbox for pentadiagonal matrizes.

  • Versions: 17
  • Dependent Packages: 2
  • Dependent Repositories: 2
  • Downloads: 5,027 Last month
Rankings
Dependent packages count: 3.2%
Downloads: 7.7%
Average: 11.1%
Dependent repos count: 11.5%
Stargazers count: 16.1%
Forks count: 16.9%
Last synced: 4 months ago
conda-forge.org: pentapy
  • Versions: 3
  • Dependent Packages: 1
  • Dependent Repositories: 0
Rankings
Dependent packages count: 28.8%
Dependent repos count: 34.0%
Average: 41.3%
Stargazers count: 50.9%
Forks count: 51.6%
Last synced: 4 months ago

Dependencies

.github/workflows/main.yml actions
  • actions/checkout v2 composite
  • actions/download-artifact v2 composite
  • actions/setup-python v2 composite
  • actions/upload-artifact v2 composite
  • pypa/cibuildwheel v2.12.1 composite
  • pypa/gh-action-pypi-publish release/v1 composite
pyproject.toml pypi
  • numpy >=1.14.5
setup.py pypi