When the right hand side function has a time dependence, Rodas4 gives dual number method errors, when other solvers (e.g. QBDF) do not. I thought that autodiff was the use-case for dual numbers, but Rodas4 uses dual numbers for time even with autodiff=false? Example code:
using DifferentialEquations
u = [0.0, 0.0]
function du(u,p,t)
#display(typeof(t))
du = zeros(2)
du[1] = 0.1*u[1] + 0.2*u[2]
du[2] = 0.1*t
return du
end
prob = ODEProblem(du,u,(0.0,1.0))
#No error:
sol = solve(prob,QBDF(autodiff=false))
#Dual number error:
sol = solve(prob,Rodas4(autodiff=false))
Yeah I ran into this yesterday when writing tests for the checkpointed sensitivity analysis fix. It seems like it’s just with Rodas4 and Rodas3 and only in the OOP form, but I added a bigger test suite to make sure we covered this better. The PR fix is here:
that should merge in an hour or so since it’s quite simple.