DifferentialEquations.jl icon indicating copy to clipboard operation
DifferentialEquations.jl copied to clipboard

tstops should give meaningful error if given duals

Open elbert5770 opened this issue 1 year ago • 1 comments

It's entirely plausible that during an optimization, tstops (e.g. for callbacks) might depend on an optimized variable, and this can lead to a subtle problem with AD. When setting up an ODE, it would be pretty easy and fast to check to see if tstops is of type dual, and if so it should give a meaningful error (other than the generic Float64(Dual...) error), perhaps with instructions of how to extract values from a dual. I can't think of a case where you would want tstops to be a dual.

elbert5770 avatar May 03 '24 17:05 elbert5770

Almost missed this one.

Differentiating tstops is used for example in optimal experimental design. There's tests for this because it's a pretty common application that requires learning what the right time points would be.

nd this can lead to a subtle problem with AD

Can you share what this problem is? Maybe handling that problem is the better solution.

ChrisRackauckas avatar Jul 06 '24 20:07 ChrisRackauckas