Add initial IMEX Runge-Kutta solvers (SSP and BHR schemes)#3341
Draft
singhharsh1708 wants to merge 3 commits intoSciML:masterfrom
Draft
Add initial IMEX Runge-Kutta solvers (SSP and BHR schemes)#3341singhharsh1708 wants to merge 3 commits intoSciML:masterfrom
singhharsh1708 wants to merge 3 commits intoSciML:masterfrom
Conversation
Contributor
Author
Member
|
This should likely be on top of #3030 |
Contributor
Author
Member
|
The NonlienarSolve wrappers were handled: rebase and there shouldn't be an issue there. |
Comment on lines
+46
to
+48
| SFSDIRK7, SFSDIRK8, ESDIRK436L2SA2, ESDIRK437L2SA, ESDIRK547L2SA2, ESDIRK659L2SA, | ||
| IMEXSSP222, IMEXSSP2322, IMEXSSP3332, IMEXSSP3433, | ||
| ARS222, ARS232, ARS443, BHR553 |
Member
There was a problem hiding this comment.
I dont' think we want to export these
Comment on lines
+2746
to
+2750
| @muladd function perform_step!( | ||
| integrator, cache::IMEXSSP222ConstantCache, repeat_step = false | ||
| ) | ||
| (; t, dt, uprev, u, p) = integrator | ||
| nlsolver = cache.nlsolver |
Member
There was a problem hiding this comment.
It doesn't seem helpful to just write a ton of perform_step!s for these pretableau.
615a3bb to
0a53fae
Compare
Contributor
Author
ranocha
reviewed
Apr 10, 2026
| [1 0] | ||
| b̃ = [1/2, 1/2] | ||
| =# | ||
| struct IMEXSSP222Tableau{T, T2} |
Member
There was a problem hiding this comment.
Why 222 instead of four numbers 2222 like for the others?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR introduces a set of Implicit-Explicit (IMEX) Runge-Kutta solvers based on the works of Boscarino–Russo (2009) and Pareschi–Russo (2005). These methods are designed for time integration of stiff systems with a natural splitting into non-stiff (explicit) and stiff (implicit) components, i.e.,
SplitODEProblem.The implementation extends the existing SDIRK/KenCarp framework in
OrdinaryDiffEqSDIRK, since the implicit part of these methods follows an ESDIRK structure, making them compatible with the current infrastructure.Implemented Methods
From Pareschi & Russo (2005)
IMEXSSP222 — SSP2(2,2,2)
IMEXSSP2322 — SSP2(3,2,2)
IMEXSSP3332 — SSP3(3,3,2)
IMEXSSP3433 — SSP3(4,3,3)
Implementation Details
Added new algorithm types in:
algorithms.jlAdded corresponding Butcher tableaux in:
sdirk_tableaus.jlIntegrated with existing KenCarp-style stepping logic:
kencarp_kvaerno_perform_step.jlkencarp_kvaerno_caches.jlThese methods follow the IMEX formulation:
f1) handled via SDIRKf2) handled via explicit RKMotivation
Existing IMEX methods (e.g., KenCarp family) do not explicitly include:
This PR adds:
Checklist
Additional context
Based on:
This PR focuses on core solver implementation; additional variants (e.g., MARS/MARK) can be added in follow-up PRs.