HomeBlogContact
← Back to Blog

GSoC 2026 Final Report — Tableau Infrastructure and Multirate Methods

OrganizationSciML (NumFOCUS)
MentorChris Rackauckas
PeriodMarch – August 2026
Merged PRs79 across 4 repos

This is my final work product for Google Summer of Code 2026 with SciML. The proposal had two deliverables for OrdinaryDiffEq.jl: migrate solver families from hand-written per-method implementations to generic tableau-driven forms, and build a family of multirate integrators for split ODE systems, finishing with public benchmarks. Both shipped. I merged 68 pull requests into OrdinaryDiffEq.jl, 7 into SciMLBenchmarks.jl, 3 into SciMLOperators.jl, and 1 into NonlinearSolve.jl, with 5 more under review as I write this.

I want to thank Chris for the fast reviews and for holding every PR to the same standard, which taught me more than the code did.

Multirate methods

OrdinaryDiffEq.jl had no multirate solvers when the project started. It now has a registered subpackage, OrdinaryDiffEqMultirate, with ten methods spanning the extrapolated, Adams-Bashforth, multirate-infinitesimal-step and MRI-GARK families, and a pending restructuring that splits the implicit members into OrdinaryDiffEqMultirateImplicit so the explicit package stays dependency-light.

multirate.jl Julia
# A split problem: cheap stiff fast part f1, expensive slow part f2.
prob = SplitODEProblem(f1, f2, u0, tspan)

sol = solve(prob, MREEF(m = 8))              # extrapolated forward Euler
sol = solve(prob, MRIGARKERK45a())           # explicit MRI-GARK, order 4
sol = solve(prob, MRIGARKESDIRK46a())        # implicit slow stage, stiff-slow-stable
sol = solve(prob, MREIL(m = 4, order = 4))   # linearly implicit, stiff-fast-stable
Fig 1. The family as it exists now; one problem type, four regimes covered.
DescriptionPRStatus
MREEF, extrapolated multirate forward Euler (Constantinescu and Sandu 2013)#3139Merged
MRAB, multirate Adams-Bashforth#3707Merged
MIS2, multirate infinitesimal step (Wensch, Knoth, Galant 2009)#3717Merged
Explicit MRI-GARK ERK22a and ERK22b (Sandu 2019)#3724Merged
Explicit MRI-GARK ERK33a and ERK45a#3747Merged
MRI-GARK slow-forcing accumulation fused#3741Merged
Implicit MRI-GARK IRK21a#3811Merged
Implicit MRI-GARK ESDIRK34a#3812Merged
Implicit MRI-GARK ESDIRK46a#3886Merged
MREIL, linearly implicit extrapolated member, plus the package split#4115Open
Multirate work-precision benchmarks#1629Open

MREIL was the deep end of the project: it factorizes W once per extrapolation column and reuses it across every substep in that column, reuses the Jacobian across rejected steps, and went through six adversarial verification rounds before opening. The most useful thing those rounds established is that it is a W-method: its Richardson extrapolation order survives a frozen or even wrong Jacobian, so a bad Jacobian costs stability rather than accuracy.

Work-precision diagram: error versus runtime for the multirate methods across rate ratios against single-rate references
Fig 2. Work-precision on the favorable problem: a cheap stiff fast part with an expensive slow coupling, swept across the rate ratio m, from SciMLBenchmarks #1629.

Tableau-based solver infrastructure

The second deliverable was moving solver families onto generic, data-driven implementations so a new method is a tableau plus a constructor rather than a hand-written perform_step!.

DescriptionPRStatus
Symplectic drift-kick methods migrated to generic form#3473Merged
Verner tableau and interpolant construction specialized#3591Merged
CFNLIRK3 migrated to ESDIRKIMEX tableau form#3651Merged
ABDF2 bootstrap moved onto the generic cache#3656Merged
Sixteen AlJahdali 3S* methods consolidated into the generic 3S dispatch#3241Merged
RK46NL folded into the generic 2N dispatch#3683Merged
Embedded-pair order-condition test for every adaptive SDIRK and ESDIRK tableau#3661Merged
ESDIRK659L2SA broken embedded coefficients caught by that test and fixed#3662Merged
Generic stage-predictor menu for ESDIRK methods#3668Merged

New methods added through that infrastructure: Ralston4 (#3215), the parametric relaxation RK family (#3246), MSRK10, a tenth-order method requested in a four-year-old issue (#3755), the ARS and BHR IMEX-RK schemes (#3704, #3706), the IMEX-SSP family (#3705), and ESDIRK3(2)5L[2]SA (#3827).

Hardening work beyond the proposal

Working in the solver internals surfaced bugs that I fixed as they blocked or adjoined the main work. The largest arc made NonlinearSolve.jl algorithms usable as inner solvers for the implicit steppers.

DescriptionPRStatus
Polyalgorithm inner solvers: crash and silent-stall fixes#3959Merged
Same bug class in the Newmark structural solvers#4112Merged
Same class for SimpleNonlinearSolve no-init caches#4137Open
W-matrix reuse for NonlinearSolve inner solvers#3693, #3753, #3703Merged
Upstream cache accessors for the polyalgorithm fix#1115Merged
Adaptive time stepping for Newmark solvers, broken since introduction#4148Open
Taylor-series solver silent wrong answers#3975, #4116Merged
Seven DAE benchmarks from the IVP test set#1480 – #1486Merged

The project arc

March

First methods land

Ralston4 and the parametric relaxation RK family, learning the contribution pipeline end to end.

April

MREEF opens the multirate track

The first multirate solver in the package, with the extrapolation and error-control machinery the later members reuse.

May

Tableau migrations

Symplectic, Verner, CFNLIRK3 and ABDF2 move onto generic forms; the embedded-pair test lands and catches a broken tableau.

June

IMEX schemes and explicit MRI-GARK

ARS, BHR and IMEX-SSP arrive through the new infrastructure; the explicit MRI-GARK ladder completes.

July

Implicit multirate and the hardening arc

IRK21a, ESDIRK34a and ESDIRK46a land on the NonlinearSolve plumbing fixed the same month.

August

MREIL and the benchmarks

The linearly implicit member and the work-precision notebook close both deliverables; this report is the last artifact.

Current state and what is left

Everything above is merged and released except the five open PRs, which are under review. Remaining future work: register OrdinaryDiffEqMultirateImplicit and add MREIL to the benchmark notebook once released, and the MrGARK family of Roberts, Loffeld, Sarshar, Woodward and Sandu (issue #961), which is scoped but not started.

Future prospects

I plan to stay involved with SciML past the program: the open PRs through review, the MrGARK family, and stochastic Taylor and RODE-Taylor integration as the next arc.

Full contribution lists