Skip to content

ENH: Robust Iterative Eigendecomposition and Parallel Low-Memory Dynamic Mode Decomposition

Kutalmış Berçin requested to merge feature-iterative-eigendecomposition into develop


New robust solver/container: Iterative eigendecomposition:

The new iterative eigen decomposition functionality is derived from:
    Passalacqua et al.'s OpenQBMM (,
    which is mostly derived from JAMA (

New field function object: Parallel low-memory dynamic mode decomposition:

STDMD (i.e. Streaming Total Dynamic Mode Decomposition) is a variant of
a data-driven dimensionality reduction method.

STDMD is being used as a mathematical post-processing tool to compute
a set of dominant modes out of a given flow (or dataset) each of which is
associated with a constant frequency and decay rate, so that dynamic
features of a given flow may become interpretable, and tractable.
Among other Dynamic Mode Decomposition (DMD) variants, STDMD is presumed
to provide the general DMD method capabilities alongside economised and
feasible memory and CPU usage.

STDMD and mode-sorting algorithms (tags:K, HRDC, KZ, HWR):
    Kiewat, M. (2019).
    Streaming modal decomposition approaches for vehicle aerodynamics.
    PhD thesis. Munich: Technical University of Munich.

    Hemati, M. S., Rowley, C. W., Deem, E. A., & Cattafesta, L. N. (2017).
    De-biasing the dynamic mode decomposition for applied Koopman
    spectral analysis of noisy datasets.
    Theoretical and Computational Fluid Dynamics, 31(4), 349-368.

    Kou, J., & Zhang, W. (2017).
    An improved criterion to select dominant modes from dynamic mode
    European Journal of Mechanics-B/Fluids, 62, 109-129.

    Hemati, M. S., Williams, M. O., & Rowley, C. W. (2014).
    Dynamic mode decomposition for large and streaming datasets.
    Physics of Fluids, 26(11), 111701.

Parallel classical Gram-Schmidt process (tag:Ka):
    Katagiri, T. (2003).
    Performance evaluation of parallel Gram-Schmidt re-orthogonalization
    In: Palma J. M. L. M., Sousa A. A., Dongarra J., Hernández V. (eds)
    High Performance Computing for Computational Science — VECPAR 2002.
    Lecture Notes in Computer Science, vol 2565, p. 302-314.
    Berlin, Heidelberg: Springer.

Parallel direct tall-skinny QR decomposition (tags:BGD, DGHL):
    Benson, A. R., Gleich, D. F., & Demmel, J. (2013).
    Direct QR factorizations for tall-and-skinny matrices in MapReduce
    2013 IEEE International Conference on Big Data.

    Demmel, J., Grigori, L., Hoemmen, M., & Langou, J. (2012).
    Communication-optimal parallel and sequential QR and LU
    SIAM Journal on Scientific Computing, 34(1), A206-A239.

DMD properties:
    Brunton S. L. (2018).
    Dynamic mode decomposition overview.
    Seattle, Washington: University of Washington. (Retrieved:24-04-20)

New extensive, true-false type unit tests for Matrix classes

Resolved bugs (If applicable)

Improved robustness in Moore-Penrose matrix inverse function

Details of new models (If applicable)

A verification example for STDMD: Two-dimensional steady-inflow cylinder test:

Left-top = MATLAB (using serial data)
Left-bottom = OpenFOAM (serial)
Right-top = MATLAB (using parallel data)
Right-bottom = OpenFOAM (parallel/8-procs)

Screenshot_from_2020-04-24_16-05-10 Screenshot_from_2020-04-24_16-05-18 Screenshot_from_2020-04-24_16-05-26


  • STDMD is in its beta phase; therefore, small-to-medium changes in input/output interfaces and internal structures should be expected in the next versions depending on the unknown
  • Peer-review, or any type of feedback for any part of the code is more than welcomed:
  • Low risk to the existing code status.
Edited by Kutalmış Berçin

Merge request reports