MFlowCode / MFC

Exascale simulation of multiphase/physics fluid dynamics
https://mflowcode.github.io
MIT License
132 stars 56 forks source link

Add WENO5 Variants #481

Closed ChrisZYJ closed 1 week ago

ChrisZYJ commented 1 week ago

Description

This PR adds WENO-Z (Borges, et al., 2008) and TENO (Fu et al., 2016) options on top of the existing WENO-JS and WENO-M schemes. WENO-Z is less dissipative and less costly than WENO-M, and is much less dissipative than WENO-JS while being similar in speed. TENO has even better spectral properties than WENO-Z, but can be less robust in extreme scenerios.

Please refer the the updates documentation for more details.

Type of change

Scope

How Has This Been Tested?

1D_shu_osher_comparison 1D_shu_osher_comparison_zoomed Fu et al. (2016) image

1D_shu_osher_comparison_1000 1D_shu_osher_comparison_1000_zoomed

WENO-JS (on MFC Website - Example Cases) 2D_riemann_test_wenojs WENO-M 2D_riemann_test_wenom WENO-Z 2D_riemann_test_wenoz TENO 2D_riemann_test_teno

WENO-M (on MFC Website - Example Cases) 2D_shockdroplet_WENOM_2 WENO-Z 2D_shockdroplet_WENOZ_2 TENO 2D_shockdroplet_TENO

Test Configuration:

Checklist

If your code changes any code source files (anything in src/simulation)

To make sure the code is performing as expected on GPU devices, I have:

16M points GPU_performance

Comments

sbryngelson commented 1 week ago

This is an example of a great PR! Good use of added tests, toolchain involvement, proof that it works as intended, and only the required minimal code additions. Will review it a bit more thoroughly tomorrow.