Skip to content

ENH: Reduced-order modelling field reconstruction with DMD

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


OpenCFD would like to acknowledge and thank Marco Kiewat for his contributions, elaborate suggestions and help, and critical recommendations. Highly appreciated.


  • OpenFOAM currently lacks one of the key advantages of DMD: 
    • the capability to generate a field based on given modes and their associated dynamics, without the need for any CFD computations at arbitrary intermediate and/or future time points.
  • This functionality would allow users to condense an entire simulation into a few modes and mode dynamics, and subsequently generate fields at any desired time or predict their future states of periodic or pseudo-periodic systems, all without the need for additional CFD analyses.


Implement and verify the method proposed by Kiewat (2019) to generate time-variant field data from DMD data for a set of specified times.


Coarse mesh

image coarse

Fine mesh

image fine


  • The quality of results depends on the capabilities of the underlying reduced-order model, and the quality of the input data.
  • To improve the reconstruction results, one needs to make sure that modes are correctly extracted from the flow.
    • The easiest method to check the quality:
      • Inspect the real part of the first mode visually.
      • Compare it with the time-mean of the operand decomposed field.
      • The real part of the first mode should always look like the time-mean of the operand decomposed field.
      • If both fields are dissimilar, expect low quality results from the createROMfields.


  • No change in existing input/output.
  • The tutorial $FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/cylinder2D is run for a longer period.
    • Also, the parallel renumberMesh operation is removed from its existing Allrun script.


  • linux64ClangDPInt32Opt (clang15)
  • linux64GccDPInt32Opt
  • linux64GccSPDPInt64Debug
  • Alltest: No new error/No change in existing output
  • Test cases: $FOAM_TUTORIALS/incompressible/pimpleFoam/laminar/cylinder2D

Merge request reports