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/.
Current references to the PySPOD library is:
@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}
}
@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}
}
@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}
}
SPOD can be applied to wide-sense stationary data. Examples of these arise in different fields, including fluidmechanics, and weather and climate, among others.
If you want to download and install the latest version from main
:
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.
Please, contact me if you used PySPOD for a publication and you want it to be advertised here.
PySPOD is currently developed and mantained by
Current active contributors include:
Contributions improving code and documentation, as well as suggestions about new features are more than welcome!
The guidelines to contribute are as follows:
fix/name-of-the-issue
if it is a bug fix, or feature/name-of-the-issue
if you are adding a feature.Contact us by email for further information or questions about PySPOD or ways on how to contribute.
See the LICENSE file for license rights and limitations (MIT).