ENH: DMD: add multi-patch input functionality

Merged Kutalmış Berçin requested to merge feature-dmd-multi-patch-extension into develop

EP#1796, EP#1873


This feature allows users to specify multiple patches in DMD calculations:

    // Optional entries

        // Option-1
        patch               <word>;

        // Option-2
        patches             (<wordRes>);

The DMD snapshots concatenate each patch field, e.g. for velocity field:

(u1 v1 w1 u2 v2 w2 u1_o v1_o w1_o u2_o v2_o w2_o)

where "1" and "2" indicate different patches, "u v w" different components of a vector, and "o" the previous DMD step.

Also, the most expensive parts of the STDMD implementation were identified and reworked resulting in various reductions in calculation runtime.

For example, the timing of the standard "cylinder2D" tutorial (i.e. with all STDMD function objects are active), the duration of the parallel 12-processor simulation has been reduced from ~200secs to ~80secs during local tests, approximately a ~60% reduction.

Another test of DrivAer was reported to provide approximately 10x speedup.


  • linux64ClangDPInt32Opt (clang11)
  • linux64GccDPInt32Opt
  • linux64GccSPDPInt64Debug
  • Alltest: No new error
Edited by Kutalmış Berçin

Merge request reports