I just spent an entire afternoon debugging why my equation appears to go unstable. Stupidly, I was animating the solution for T=[0, 10], whereas the solution was solved on the interval T=[0, 3].
For clarity, my code (from memory) looked something like
T = 3.0
sol = solve(ode_problem, u0, T)
ts = LinRange(0.0, 10.0, 100)
While fully admitting my culpability, is this not a bit of a footgun? Can we protect silly people like me by throwing an error when ‘t’ in ‘sol(t)’ is outside the range of the solution?
Otherwise, thank you for what is an amazing package/ecosystem!