Skip to main content

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 reference to the PySPOD library is:

@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
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).

Metadata

Release files for pyspod 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyspod 2.0.0
File Size Uploaded Provenance Actions
pyspod-2.0.0.tar.gz 199.2 kB Without provenance Details for pyspod-2.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pyspod 2.0.0
File Interpreter ABI Platform Actions
pyspod-2.0.0-py3-none-any.whl Python 3 none any Details for pyspod-2.0.0-py3-none-any.whl

Total release size: 412.6 kB

Release files / pyspod-2.0.0.tar.gz

Download URL pyspod-2.0.0.tar.gz
Size 199.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b27b23e35b7fb3a2672d7707951e1756ae7d60aa196aa03aa095225bec9df5a4
BLAKE2b-256 checksum
How to use checksums
375e2dc5368ccfbdbb95048cf7326f13f483751c3e7936dde1c08cdafa9b84eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.5

Release files / pyspod-2.0.0-py3-none-any.whl

Download URL pyspod-2.0.0-py3-none-any.whl
Size 213.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6d0173ca8bbe22bbeb5fd4735e0bcd054ee6d9debaffcde42fb24ba6e3f78b83
BLAKE2b-256 checksum
How to use checksums
e27bc92b7c7f7bb71db229af1c95a778cae1b7d2aef4a1a9db6b61e6f5c5b3e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.5

Security for pyspod 2.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page