PyDMD is a Python package that uses Dynamic Mode Decomposition (DMD) for a data-driven model simplification based on spatiotemporal coherent structures. DMD is a model reduction algorithm developed by Schmid [1]. Since then has emerged as a powerful tool for analyzing the dynamics of nonlinear systems. DMD relies only on the high-fidelity measurements, like experimental data and numerical simulations, so it is an equation-free algorithm. Its popularity is also due to the fact that it does not make any assumptions about the underlying system. See [2] for a comprehensive overview of the algorithm and its connections to the Koopman-operator analysis, initiated in [3], along with examples in computational fluid dynamics.
In PyDMD we implemented the majority of the variants mentioned above with a user friendly interface. Moreover, we generated examples and tutorials to show the software capabilities.
Features
The following DMD versions are available in the latest release of the software (as of January 2019):
- Standard DMD
- Multi-resolution DMD
- Compressed DMD
- DMD with control
- Forward-backward DMD
- Higher order DMD
(Exact DMD, projected DMD and optimized DMD are available for all the versions)
The following features are also available:
- Manipulation of the temporal window for the reconstructed system, allowing to interpolate/extrapolate the system dynamics;
- Options for SVD truncation and total least square denoising;
- Several tutorials to show typical usecases.
Citation
If you use this package in your publications please cite the package as follows:
- Nicola Demo, Marco Tezzele, Gianluigi Rozza (2018). PyDMD: Python Dynamic Mode Decomposition. Journal of Open Source Software, 3(22), 530 [4]
Or if you use LaTeX:
@article{demo18pydmd,
Author = {Demo, Nicola and Tezzele, Marco and Rozza, Gianluigi},
Title = {{PyDMD}: Python Dynamic Mode Decomposition},
Journal = {The Journal of Open Source Software},
Volume = {3},
Number = {22},
Pages = {530},
Year = {2018},
Doi = {10.21105/joss.00530}
}
Links
References
- ↑ P. Schmid, "Dynamic mode decomposition of numerical and experimental data", Journal of Fluid Mechanics, 656, 5-28, 2010
- ↑ J. N. Kutz, S. L. Brunton, B. W. Brunton, J. L. Proctor, "Dynamic Mode Decomposition: Data-Driven Modeling of Complex Systems", Vol. 149, SIAM, 2016
- ↑ B. O. Koopman, "Hamiltonian Systems and Transformation in Hilbert Space", PNAS, 17 (5), 315-318, 1931
- ↑ N. Demo, M. Tezzele, G. Rozza, "PyDMD: Python Dynamic Mode Decomposition", Journal of Open Source Software, 3(22), 530, 2018