Native Julia ODE, SDE, DAE, DDE, and (S)PDE Solvers
OrdinaryDiffEq.jl contains over 18 IMEX Runge–Kutta implementations that share identical stepping logic but have bespoke per-method perform_step! functions. This creates massive code duplication and makes adding new methods prohibitively expensive. This project builds a unified IMEXTableau{T,T2} infrastructure — one struct holding both explicit and implicit Butcher arrays, one generic perform_step! dispatching on it — so new IMEX methods require only coefficient definitions. The existing KenCarp and Kvaerno families (18 methods) are migrated to this framework, deleting ~3,300 lines of hardcoded code. New Pareschi–Russo methods from issue #2065 are added on top of the infrastructure. The second deliverable extends the multirate solver family. MREEF (Multirate Extrapolated Explicit Euler) is already implemented and approved (PR #3139). This project adds MREIL (linearly implicit variant for stiff fast components) and MIS methods (Schlegel–Knoth scheme used in atmospheric chemistry, issue #1195). Key deliverables: Generic IMEXTableau framework with one perform_step! replacing 18 implementations Migration of KenCarp/Kvaerno family with ~3,300 lines deleted Pareschi–Russo IMEX methods (issue #2065) MREIL: linearly implicit multirate extrapolation MIS methods: Schlegel–Knoth atmospheric chemistry scheme (issue #1195) Convergence tests and SciMLBenchmarks work-precision diagrams for all new methods
Project details
Technologies
Not listed in the archive