No method matching default_algorithm in SDDEProblem; SDEProblem and DDEProblem work

Hi, I tried running the example from the SDDE solvers documentation

using DifferentialEquations

function hayes_modelf(du, u, h, p, t)
    τ, a, b, c, α, β, γ = p
    du .= a .* u .+ b .* h(p, t - τ) .+ c
end
function hayes_modelg(du, u, h, p, t)
    τ, a, b, c, α, β, γ = p
    du .= α .* u .+ γ
end
h(p, t) = (ones(1) .+ t);
tspan = (0.0, 10.0)

pmul = [1.0, -4.0, -2.0, 10.0, -1.3, -1.2, 1.1]
padd = [1.0, -4.0, -2.0, 10.0, -0.0, -0.0, 0.1]

prob = SDDEProblem(hayes_modelf, hayes_modelg, [1.0], h, tspan, pmul;
    constant_lags = (pmul[1],));
sol = solve(prob, RKMil())

and got the error

MethodError: no method matching default_algorithm(::SDDEProblem{Vector{Float64}, Tuple{Float64, Float64}, Tuple{Float64}, Tuple{}, true, Vector{Float64}, Nothing, SDDEFunction{true, SciMLBase.FullSpecialize, typeof(hayes_modelf), typeof(hayes_modelg), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing}, typeof(hayes_modelg), typeof(h), Base.Pairs{Symbol, Union{}, Tuple{}, @NamedTuple{}}, Nothing})

which is surprising as the SDE and DDE examples work fine. As solve is given RKMil(), I’m also unsure why it’s looking for a default algorithm. How might I fix this? Thanks!

Output of `using Pkg; Pkg.status()`
Status `~/private/Project.toml`
  [0c46a032] DifferentialEquations v7.12.0
  [7073ff75] IJulia v1.24.2
  [91a5bcdd] Plots v1.40.0
  [6099a3de] PythonCall v0.9.15
Output of `versioninfo()`
Julia Version 1.10.0
Commit 3120989f39b (2023-12-25 18:01 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: macOS (arm64-apple-darwin22.4.0)
  CPU: 8 × Apple M1
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, apple-m1)
  Threads: 1 on 4 virtual cores
Environment:
  JULIA_NUM_THREADS = 

You might need to add StochasticDelayDiffEq.jl?

1 Like

Thanks, absolute doofus hours on my part. Thought it was just part of DifferentialEquations…

no that’s our fault. We should reexport it from diffeq