Differentialequations.jl: SDE ensemble solve fails for vector SDEs?

I’ve been using the examples in the documentation to play around with the SDE solvers in DifferentialEquations.jl and have run into trouble trying to run ensemble simulations with vector-valued SDEs (the scalar case worked fine for me). I tried the Lorenz example in ensemble mode:

using DifferentialEquations

function lorenz(du,u,p,t)
du[1] = 10.0(u[2]-u[1])
du[2] = u[1]*(28.0-u[3]) - u[2]
du[3] = u[1]*u[2] - (8/3)*u[3]
end

function σ_lorenz(du,u,p,t)
du[1] = 3.0
du[2] = 3.0
du[3] = 3.0
end

prob_sde_lorenz = SDEProblem(lorenz,σ_lorenz,[1.0,0.0,0.0],(0.0,1.0))
sol = solve(prob_sde_lorenz)

ensembleprob = EnsembleProblem(prob_sde_lorenz)
sol = solve(ensembleprob,EnsembleThreads(),trajectories=10)

and got the error

**ERROR:** LoadError: MethodError: no method matching __solve(::EnsembleProblem{SDEProblem{Array{Float64,1},Tuple{Float64,Float64},true,SciMLBase.NullParameters,Nothing,SDEFunction{true,typeof(lorenz),typeof(σ_lorenz),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing},typeof(σ_lorenz),Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},Nothing},typeof(SciMLBase.DEFAULT_PROB_FUNC),typeof(SciMLBase.DEFAULT_OUTPUT_FUNC),typeof(SciMLBase.DEFAULT_REDUCTION),Nothing}, ::EnsembleThreads; trajectories=10)

I’m pretty sure this used to work in the past. Am I missing something obvious?

Best,

Colm

The issue was that default method handling with Ensembles broke when when SciMLBase was split out, but now I just fixed that so if you update now you should be good.

1 Like

Thanks Chris. It’s working again now.