Open HelgavonLichtenstein opened 4 years ago
using Sundials, DiffEqCallbacks, LinearAlgebra
prob = ODEProblem((du,u,p,t) -> du .= u, rand(4,4), (0.0,1.0))
saved_values = SavedValues(Float64, Tuple{Float64,Float64})
cb = SavingCallback((u,t,integrator)->(tr(reshape(u,4,4)),norm(reshape(u,4,4))), saved_values)
sol = solve(prob, CVODE_BDF(), callback=cb)
is a workaround. We have to internally flatten for Sundials' API, and we normally reshape before f
to hide that from the user. But it looks like it's exposing itself here. This one is one of those issues that is particularly difficult to solve, but extremely easy to workaround, so I'm just going to leave it hanging until after JuliaCon.
I'm not very good at making a MWE so I took the example from and replaced Tsit5() with CVODE_BDF(). I assumed it would still work since it's just a different solver, albeit not very efficient since it is a stiff solver.
It errors with
My code creates this error, which is almost identical apart from
in #solve_up#459 at DiffEqBase\ytJuW\src\solve.jl:114
from example abovein #solve_up#459 at DiffEqBase\ytJuW\src\solve.jl:110
in error from below