SciMLOperators.jl
SciMLOperators.jl copied to clipboard
Dual number cache for use with ForwardDiff.jl
Is your feature request related to a problem? Please describe.
The problem is described here: https://discourse.julialang.org/t/how-to-use-scimloperators-jl-with-autograd-in-differentialequations-jl/117731
Describe the solution you’d like
I would like to be able to use SciMLOperators in an in-place ODEFunction, with a solver that does autodiff using ForwardDiff.jl. Here is an example:
using SciMLOperators, DifferentialEquations
op = FunctionOperator((du,u,p,t) -> du .= u .* u, rand(10), t=0.0, p=[0.0], batch=true)
op = cache_operator(op, rand(10))
prob = ODEProblem{true}(op, rand(10), (0.0,1.0), [0.0])
solve(prob, Rosenbrock23())
Currently, the above code doesn't work, presumably owing to the operator cache being Float64s rather than dual numbers.