PySPOD

PySPOD: A Python package for Spectral Proper Orthogonal Decomposition (SPOD) - Published in JOSS (2021)

https://github.com/MathEXLab/PySPOD

Science Score: 59.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
    Found 14 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, joss.theoj.org
  • Committers with academic emails
    2 of 10 committers (20.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.2%) to scientific vocabulary

Keywords

coherent-structures data-mining dynamical-systems spod

Keywords from Contributors

mesh parallel pypi finite-element-method simulations stellarator

Scientific Fields

Economics Social Sciences - 40% confidence
Last synced: 4 months ago · JSON representation

Repository

A Python package for spectral proper orthogonal decomposition (SPOD).

Basic Info
Statistics
  • Stars: 109
  • Watchers: 5
  • Forks: 35
  • Open Issues: 10
  • Releases: 6
Topics
coherent-structures data-mining dynamical-systems spod
Created about 5 years ago · Last pushed 4 months ago
Metadata Files
Readme License

README.md

Python Spectral Proper Orthogonal Decomposition

JOSS Paper Software License PyPI version Build Status

PySPOD: A parallel (distributed) Python SPOD package

What do we implement?

In this package we implement two versions of SPOD, both available as parallel and distributed (i.e. they can run on multiple cores/nodes on large-scale HPC machines) via mpi4py:

We additionally implement the calculation of time coefficients and the reconstruction of the data, given a set of modes $\phi$ and coefficients a, as explained in (Chu and Schmidt, 2021) and (Nekkanti and Schmidt, 2021). The library comes with a package to emulating the reduced space, that is to forecasting the time coefficients using neural networks, as described in Lario et al., 2022.

To see how to use the PySPOD package, you can look at the Tutorials.

For additional information, you can also consult the PySPOD website: http://www.mathexlab.com/PySPOD/.

How to cite this work

Current references to the PySPOD library is:

bash @article{rogowski2024unlocking, title={Unlocking massively parallel spectral proper orthogonal decompositions in the PySPOD package}, author={Rogowski, Marcin and Yeung, Brandon CY and Schmidt, Oliver T and Maulik, Romit and Dalcin, Lisandro and Parsani, Matteo and Mengaldo, Gianmarco}, journal={Computer Physics Communications}, pages={109246}, year={2024}, publisher={Elsevier} }

bash @article{lario2022neural, title={Neural-network learning of SPOD latent dynamics}, author={Lario, Andrea and Maulik, Romit and Schmidt, Oliver T and Rozza, Gianluigi and Mengaldo, Gianmarco}, journal={Journal of Computational Physics}, volume={468}, pages={111475}, year={2022}, publisher={Elsevier} }

bash @article{mengaldo2021pyspod, title={Pyspod: A python package for spectral proper orthogonal decomposition (spod)}, author={Mengaldo, Gianmarco and Maulik, Romit}, journal={Journal of Open Source Software}, volume={6}, number={60}, pages={2862}, year={2021} }

What data can we apply SPOD to?

SPOD can be applied to wide-sense stationary data. Examples of these arise in different fields, including fluidmechanics, and weather and climate, among others.

How do I install the library?

If you want to download and install the latest version from main: - download the library - from the top directory of PySPOD, type

bash python3 setup.py install

To allow for parallel capabilities, you need to have installed an MPI distribution in your machine. Currently MPI distributions tested are Open MPI, and Mpich. Note that the library will still work in serial (no parallel capabilities), if you do not have MPI.

Recent works with PySPOD

Please, contact me if you used PySPOD for a publication and you want it to be advertised here.

Authors and contributors

PySPOD is currently developed and mantained by

  • G. Mengaldo, National University of Singapore (Singapore).

Current active contributors include:

  • M. Rogowski, King Abdullah University of Science and Technology (Saudi Arabia).
  • L. Dalcin, King Abdullah University of Science and Technology (Saudi Arabia).
  • R. Maulik, Argonne National Laboratory (US).
  • A. Lario, SISSA (Italy)

How to contribute

Contributions improving code and documentation, as well as suggestions about new features are more than welcome!

The guidelines to contribute are as follows: 1. open a new issue describing the bug you intend to fix or the feature you want to add. 2. fork the project and open your own branch related to the issue you just opened, and call the branch fix/name-of-the-issue if it is a bug fix, or feature/name-of-the-issue if you are adding a feature. 3. ensure to use 4 spaces for formatting the code. 4. if you add a feature, it should be accompanied by relevant tests to ensure it functions correctly, while the code continue to be developed. 5. commit your changes with a self-explanatory commit message. 6. push your commits and submit a pull request. Please, remember to rebase properly in order to maintain a clean, linear git history.

Contact us by email for further information or questions about PySPOD or ways on how to contribute.

License

See the LICENSE file for license rights and limitations (MIT).

Owner

  • Name: MathEXLab
  • Login: MathEXLab
  • Kind: organization
  • Location: Singapore

Mathematical Engineering and Computational Laboratory

GitHub Events

Total
  • Issues event: 1
  • Watch event: 8
  • Delete event: 3
  • Issue comment event: 8
  • Push event: 1
  • Pull request review event: 2
  • Pull request event: 6
  • Fork event: 2
  • Create event: 3
Last Year
  • Issues event: 1
  • Watch event: 8
  • Delete event: 3
  • Issue comment event: 8
  • Push event: 1
  • Pull request review event: 2
  • Pull request event: 6
  • Fork event: 2
  • Create event: 3

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 561
  • Total Committers: 10
  • Avg Commits per committer: 56.1
  • Development Distribution Score (DDS): 0.269
Past Year
  • Commits: 2
  • Committers: 2
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.5
Top Committers
Name Email Commits
mengaldo g****o@g****m 410
Marcin Rogowski m****i@k****a 115
Lisandro Dalcin d****l@g****m 12
andrealario a****o@g****m 7
dependabot[bot] 4****] 6
Romit Maulik r****k@a****v 5
Kyle Niemeyer k****r@f****m 2
Gianmarco Mengaldo g****n@G****l 2
Alessandro Luongo 2****a 1
Andrea Lario a****o@s****t 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 25
  • Total pull requests: 32
  • Average time to close issues: 3 months
  • Average time to close pull requests: 19 days
  • Total issue authors: 9
  • Total pull request authors: 11
  • Average comments per issue: 2.96
  • Average comments per pull request: 0.78
  • Merged pull requests: 29
  • Bot issues: 0
  • Bot pull requests: 6
Past Year
  • Issues: 4
  • Pull requests: 3
  • Average time to close issues: N/A
  • Average time to close pull requests: about 2 hours
  • Issue authors: 3
  • Pull request authors: 3
  • Average comments per issue: 3.0
  • Average comments per pull request: 1.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • jdmoorman (9)
  • mengaldo (7)
  • FrankFrank9 (3)
  • MemorXuxu (1)
  • BinglinW (1)
  • bva99 (1)
  • Joao-L-S-Almeida (1)
  • Lemonade0007 (1)
  • nish-ant (1)
Pull Request Authors
  • mrogowski (10)
  • dependabot[bot] (10)
  • mengaldo (7)
  • dalcinl (4)
  • Romit-Maulik (3)
  • Doublonmousse (2)
  • hweifluids (2)
  • andrealario (2)
  • cyclerate (1)
  • kyleniemeyer (1)
  • Scinawa (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (10) documentation (1) github_actions (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 64 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 1
  • Total versions: 8
  • Total maintainers: 2
pypi.org: pyspod

Python Spectral Proper Orthogonal Decomposition

  • Versions: 8
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 64 Last month
Rankings
Dependent packages count: 4.7%
Forks count: 7.7%
Stargazers count: 8.0%
Average: 12.8%
Downloads: 21.6%
Dependent repos count: 21.7%
Maintainers (2)
Last synced: 4 months ago

Dependencies

.github/workflows/continuous-integration.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
  • mpi4py/setup-mpi v1 composite
.github/workflows/release.yml actions
  • actions/checkout v4 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • pypa/gh-action-pypi-publish release/v1 composite
pyproject.toml pypi
setup.py pypi