diff --git a/README.rst b/README.rst index fa1e377..5bca5d8 100644 --- a/README.rst +++ b/README.rst @@ -13,6 +13,17 @@ MODULO: a python toolbox for data-driven modal decomposition Modulo Logo +|DOI| |PyPI| |GitHub| + +.. |DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.13939519.svg + :target: https://doi.org/10.5281/zenodo.13939519 + +.. |PyPI| image:: https://img.shields.io/pypi/v/modulo_vki + :target: https://pypi.org/project/modulo_vki/ + +.. |GitHub| image:: https://img.shields.io/github/stars/mendezVKI/MODULO?style=social + :target: + **MODULO** is a modal decomposition package developed at the von Karman Institute for Fluid Dynamics (VKI). It offers a wide range of decomposition techniques, allowing users to choose the most appropriate method for their specific problem. MODULO can efficiently handle large datasets natively, thanks to a memory-saving feature that partitions the data and processes the decomposition in chunks (ninni2020modulo). Moreover, it supports non-uniform meshes through a weighted inner product formulation. Currently, MODULO heavily relies on NumPy routines and does not offer additional parallel computing capabilities beyond those naturally provided by NumPy. While the discontinued MATLAB version of MODULO (ninni2020modulo) is accessible in the “Old_Matlab_Implementation” branch, @@ -65,28 +76,28 @@ The latest version of MODULO (v2.0) includes the following updates: 2. **Computation the POD directly via SVD**, using any of the four "svd_solver" options. This is generally faster but requires more memory. -3. **Faster subscale estimators for the mPOD:** the previous version used the rank of the correlation matrix in each scale to define +1. **Faster subscale estimators for the mPOD:** the previous version used the rank of the correlation matrix in each scale to define the number of modes to be computed in each portion of the splitting vector before assembling the full basis. This is computationally very demanding. This estimation has been replaced by a frequency-based threshold (i.e. based on the frequency bins within each portion) since one can show that the frequency-based estimator is always more "conservative" than the rank-based estimator. -4. **Major improvement on the memory saving option**: the previous version of modulo always required in input the matrix D. +1. **Major improvement on the memory saving option**: the previous version of modulo always required in input the matrix D. Then, if the memory saving option was active, the matrix was partitioned and stored locally to free the RAM before computing the correlation matrix (see `this tutorial by D. Ninni `_). In the new version, it is possible to initialize a modulo object *without* the matrix D (see exercise 5 in the examples). Instead, one can create the partitions without loading the matrix D. -5. **Implementation of Dynamic Mode Decomposition (DMD)** from (Schmid, P.J 2010) +1. **Implementation of Dynamic Mode Decomposition (DMD)** from (Schmid, P.J 2010) -6. **Implementation of the two Spectral POD formulations**, namely the one from (Sieber et al 2016), +2. **Implementation of the two Spectral POD formulations**, namely the one from (Sieber et al 2016), and the one from (Towne et al 2018). -7. **Implementation of a kernel version of the POD**, in which the correlation matrix is replaced by a kernel matrix. +3. **Implementation of a kernel version of the POD**, in which the correlation matrix is replaced by a kernel matrix. This is described in Lecture 15 of the course `Hands on Machine Learning for Fluid dynamics 2023 `_. We refer also to: `Mendez, 2022 `_. -8. **Implementation of a formulation for non-uniform meshes**, using a weighted matrix for all the relevant inner products. +1. **Implementation of a formulation for non-uniform meshes**, using a weighted matrix for all the relevant inner products. This is currently available only for POD and mPOD but allows for handling data produced from CFD simulation without resampling on a uniform grid (see exercise 4). It can be used both with and without the memory-saving option.