pentapy
pentapy: A Python toolbox for pentadiagonal linear systems - Published in JOSS (2019)
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
Repository
A Python toolbox for pentadiagonal linear systems
Basic Info
- Host: GitHub
- Owner: GeoStat-Framework
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://pentapy.readthedocs.io/
- Size: 346 KB
Statistics
- Stars: 14
- Watchers: 1
- Forks: 4
- Open Issues: 5
- Releases: 17
Topics
Metadata Files
README.md
Welcome to pentapy
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:
- Solver 1: Standard linear algebra solver of Numpy
np.linalg.solve - Solver 2:
scipy.sparse.linalg.spsolve - Solver 3: Scipy banded solver
scipy.linalg.solve_banded - Solver 4: pentapy.solve with
solver=1 - Solver 5: pentapy.solve with
solver=2
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
- Website: https://geostat-framework.org
- Twitter: GSFramework
- Repositories: 7
- Profile: https://github.com/GeoStat-Framework
Python framework for geostatistical simulations
JOSS Publication
pentapy: A Python toolbox for pentadiagonal linear systems
Authors
Tags
numerics linear equation systems pentadiagonal matrices pentadiagonal systemsCitation (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
Top Committers
| Name | Commits | |
|---|---|---|
| MuellerSeb | m****b@p****e | 150 |
| Lorena A. Barba | l****a@g****u | 3 |
| derb12 | 5****2 | 1 |
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
Pull Request Labels
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.
- Homepage: https://github.com/GeoStat-Framework/pentapy
- Documentation: https://pentapy.readthedocs.io
- License: MIT
-
Latest release: 1.4.0
published 8 months ago
Rankings
Maintainers (3)
conda-forge.org: pentapy
- Homepage: https://github.com/GeoStat-Framework/pentapy
- License: MIT
-
Latest release: 1.1.2
published over 3 years ago
Rankings
Dependencies
- 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
- numpy >=1.14.5
