diff --git a/Project.toml b/Project.toml index 894a9ed..842359e 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "ODEInterfaceDiffEq" uuid = "09606e27-ecf5-54fc-bb29-004bd9f985bf" authors = ["Chris Rackauckas "] -version = "3.17.0" +version = "3.18.0" [deps] Compat = "34da2185-b29b-5c13-b0c7-acf172513d20" @@ -20,7 +20,7 @@ DiffEqBase = "6.122" FunctionWrappers = "1.0" ODEInterface = "0.5" Reexport = "0.2, 1.0" -SciMLBase = "1.73, 2" +SciMLBase = "1.73, 2, 3.1" julia = "1.6" [extras] diff --git a/src/integrator_utils.jl b/src/integrator_utils.jl index 1bb31bc..432d5d3 100644 --- a/src/integrator_utils.jl +++ b/src/integrator_utils.jl @@ -99,6 +99,18 @@ end return integrator.u_modified = bool end +# SciMLBase v3 renamed `u_modified!` → `derivative_discontinuity!`. On v3+, +# also provide the overload under the new name so callers using the new +# API dispatch correctly for `ODEInterfaceIntegrator` instead of hitting +# the generic `error(...)` fallback in `SciMLBase.derivative_discontinuity!`. +@static if isdefined(SciMLBase, :derivative_discontinuity!) + @inline function SciMLBase.derivative_discontinuity!( + integrator::ODEInterfaceIntegrator, bool::Bool + ) + return integrator.u_modified = bool + end +end + function initialize_callbacks!(integrator, initialize_save = true) t = integrator.t u = integrator.u