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

Summary

New robust solver/container: Iterative eigendecomposition:

The new iterative eigen decomposition functionality is derived from:
    Passalacqua et al.'s OpenQBMM (openqbmm.org/),
    which is mostly derived from JAMA (math.nist.gov/javanumerics/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.
    URL:mediatum.ub.tum.de/doc/1482652/1482652.pdf

    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.
    DOI:10.1007/s00162-017-0432-2

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

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

Parallel classical Gram-Schmidt process (tag:Ka):
    Katagiri, T. (2003).
    Performance evaluation of parallel Gram-Schmidt re-orthogonalization
    methods.
    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.
    DOI:10.1007/3-540-36569-9_19

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
    architectures.
    2013 IEEE International Conference on Big Data.
    DOI:10.1109/bigdata.2013.6691583

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

DMD properties:
    Brunton S. L. (2018).
    Dynamic mode decomposition overview.
    Seattle, Washington: University of Washington.
    youtu.be/sQvrK8AGCAo (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

Risks

  • 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