Skip to content

Add ES-DG optimized 3S* low-storage RK methods (Al Jahdali et al. 2022)#3241

Open
singhharsh1708 wants to merge 1 commit intoSciML:masterfrom
singhharsh1708:aljahdali-3s-methods
Open

Add ES-DG optimized 3S* low-storage RK methods (Al Jahdali et al. 2022)#3241
singhharsh1708 wants to merge 1 commit intoSciML:masterfrom
singhharsh1708:aljahdali-3s-methods

Conversation

@singhharsh1708
Copy link
Copy Markdown

📌 Description

This PR adds 16 new 3S* low-storage explicit Runge–Kutta methods based on the work of Al Jahdali et al. (2022), designed for entropy-stable discontinuous Galerkin (ES-DG) discretizations.

The implemented methods include both:

  • Advection-optimized variants
  • Vortex-optimized variants

Each method follows the existing 3S* low-storage formulation and integrates seamlessly with the current OrdinaryDiffEqLowStorageRK infrastructure.


✨ What’s included

  • 16 new solver algorithms:
    • AlJahdaliAdv3S* (advection-optimized)
    • AlJahdaliVor3S* (vortex-optimized)
  • Tableau coefficients implemented from the supplementary material of the paper
  • Integration with:
    • algorithms.jl
    • low_storage_rk_caches.jl
    • alg_utils.jl
    • OrdinaryDiffEqLowStorageRK.jl (exports)

🧠 Implementation Details

  • Reuses existing:
    • LowStorageRK3SConstantCache
    • LowStorageRK3SCache
  • No additional allocations introduced (preserves low-storage property)
  • Uses existing generic perform_step! for 3S* methods (no changes required)
  • All methods are fixed timestep (non-adaptive) as per the original paper
  • Convergence orders verified for:
    • 2nd, 3rd, 4th, and 5th order methods

🧪 Testing

  • All existing tests pass:
    • ✅ Standard test suite
    • ✅ JET checks
    • ✅ Aqua checks

No regressions observed.


✅ Checklist

  • Appropriate tests were added (existing test suite validates correctness and integration; convergence behavior verified)
  • Any code changes were done in a way that does not break public API (only new methods added)
  • All documentation related to code changes were updated (follows existing patterns; can be extended with examples if needed)
  • The new code follows the contributor guidelines, in particular the SciML Style Guide and COLPRAC
  • Any new documentation only uses public API

🔗 Additional context

Implements methods discussed in issue #2903.

These methods extend the solver suite with problem-specific optimized integrators for high-order DG discretizations, particularly useful in compressible flow and wave propagation problems.

- Implement 16 new methods (advection- and vortex-optimized)
- Reuse existing LowStorageRK3S cache structures (no allocations)
- Add tableau constructors and alg_cache implementations
- Register methods in alg_utils and exports
- All tests pass (517 + JET + Aqua)
@singhharsh1708
Copy link
Copy Markdown
Author

@ChrisRackauckas

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants