SciML / OrdinaryDiffEq.jl

High performance ordinary differential equation (ODE) and differential-algebraic equation (DAE) solvers, including neural ordinary differential equations (neural ODEs) and scientific machine learning (SciML)
https://diffeq.sciml.ai/latest/
Other
521 stars 198 forks source link

Optimistic first time convergence criterion (without messing with DelayDiffEq) #2233

Closed oscardssmith closed 3 weeks ago

oscardssmith commented 1 month ago

basically just https://github.com/SciML/OrdinaryDiffEq.jl/pull/2183 but made to not use the prev_theta value if it doesn't exist in the integrator. I made a new PR rather than just pushing to yingbo's because I don't want to break his history if I end up needing a rebase.

ChrisRackauckas commented 1 month ago

https://github.com/SciML/OrdinaryDiffEq.jl/actions/runs/9310615565/job/25628330734?pr=2233#step:6:1081

Make this just a normal broadcast? And I think the other test failure is just a tolerance thing?

oscardssmith commented 1 month ago

Make this just a normal broadcast?

isn't that a totally unrelated fastbroadcast bug? This code doesn't change anything about how the bdf methods work...

ChrisRackauckas commented 1 month ago

But you need the BDF tests running to have this PR

oscardssmith commented 3 weeks ago

re-tunning ci now that it is fixed, but assuming ci is green, this should be good to merge.

ChrisRackauckas commented 3 weeks ago

InterfaceV failure seems real.

oscardssmith commented 3 weeks ago

The InterfaceV failure was in fact real. The problem was that if the nonlinear solve was accepted after a single iteration, but the step was rejected, we weren't resetting prev_θ leading to an infinite loop of accepting the nlsolve after a single iteration, but rejecting the integrator step.