Ah, nice, thanks for the tip.
Concerning work on ODEs: @pwl and I have been overhauling ODE this summer and I think it is looking promising. We're working in https://github.com/JuliaODE, which is currently just a work-space but could, if interest is there, be also used as a org.
Anyway, the current development is in the branch https://github.com/JuliaODE/ODE.jl/tree/dev . Maybe this is closer to your requirements? If not, maybe you could comment whether there is anything which is missing.
A-B-M is @obiajulu's work: JuliaLang/ODE.jl#106
There is some work on stiff solvers: JuliaLang/ODE.jl#72 and @obiajulu is starting on RADAU, but nothing finished.
Anyway, have a look at the iterator work and see whether you like it. If so you could consider wrapping that instead of the old one. Also, wrapping outside solvers should be easy with that, and is planned.
tspan
, see https://github.com/JuliaODE/ODE.jl/blob/dev/src/types.jl for our latest thoughts.
ode = ODE.ExplicitODE(t0,y0,(t,y,dy)->dy[1]=y[1])
opts = Dict(:initstep=>0.1,
:tspan=>[0.,0.5,1.],
:points=>:specified,
:reltol=>1e-5,
:abstol=>1e-5)
stepper = ODE.RKStepperAdaptive{:rk45}
sol = ODE.solve(ode,stepper;opts...)
for (t,y) in sol # iterate over the solution
println((t,y))
end
println(collect(sol)) # get all the solution at once
ODE.solve(ode,stepper;opts...)
calls.
solve(prob,tspan,alg=:algorithm)