Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • openfoam openfoam
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 426
    • Issues 426
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 9
    • Merge requests 9
  • Deployments
    • Deployments
    • Releases
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • Development
  • openfoamopenfoam
  • Merge requests
  • !353

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

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Kutalmış Berçin requested to merge feature-iterative-eigendecomposition into develop Apr 24, 2020
  • Overview 5
  • Commits 4
  • Changes 61

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:
    • STDMD internal structure, and IO @mark @andy
    • Eigendecomposition @albertop
  • Low risk to the existing code status.
Edited Apr 27, 2020 by Kutalmış Berçin
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: feature-iterative-eigendecomposition