I have been successfully solving a system of 123 ODE’s for the past few month using Julia. I have tried a number of solvers (see some commented out code below). The Tsit5 (fifth order Runge Kutta) generally does the job, even though I believe my equations become “stiff” as time progresses so occasionally I get problems for certain input conditions. I have tried Rosenbrock23 and composite algorithm approach (commented out below), which also work although at a time penalty.
Now for my problem.
I have just upgraded to Julia to 1.6.1 and am using the latest version of Vscode as my IDE. What I notice that I get “warning” message in VScode referring to the DiffEquation package. I also get a squiggly blue line under the line integ = init(prob… . No matter what Kwargs I use the blue line does not disappear, although the program runs. My colleagues keep asking me what the warning and the blue squiggly line means. Has anyone encountered the same problem? Might is be due to the version 1.6.1?\
Thanks,
Peter
## Call Solver
prob = ODEProblem(rhs, ystart, (0.0, dT_Control*60.), p)
# https://diffeq.sciml.ai/stable/basics/integrator/#integrator
# default error 10^-6
# Tsit5() - 5th order Runge Kutta
# Non adaptive works for both RadauIIA5 and Tsit5.
# Adaptive step size only works for Tsit5
integ = init(prob, Tsit5(); save_everystep = false, save_start = false, save_end = false, adaptive = true, dt = dT_Min) #, abstol = Tol_Abs, reltol = Tol_Abs)
#integ = init(prob, BS5(); save_everystep = false, save_start = false, save_end = false, adaptive = true, dt = dT_Min, abstol = Tol_Abs)
# Stiff Integrators
#integ = init(prob, RadauIIA5(); save_everystep = false, save_start = false, save_end = false, dt = dT_Min, abstol = Tol_Abs, adaptive = false, autodiff=false)
# RadauIIA5(;autodiff=false). The non-adaptive step option works
#integ = init(prob, Rodas5(); save_everystep = false, save_start = false, save_end = false, dt = dT_Min, abstol = Tol_Abs, adaptive = true, autodiff=false)
#integ = init(prob, Rosenbrock23(autodiff=false); save_everystep = false, save_start = false, save_end = false, adaptive = true, dt = dT_Min, abstol = Tol_Abs)
# sol = solve(prob,alg_hints=[:stiff])
# Composite Algorithm - to investiagte ratio further
# tsidas_alg = AutoTsit5(Rosenbrock23(autodiff=false), stiffalgfirst = false, maxstiffstep=10, maxnonstiffstep=3, nonstifftol=9//10, stifftol=9//10)
# integ = init(prob, tsidas_alg;save_everystep = false, save_start = false, save_end = false, adaptive = true, dt = dT_Min, abstol = Tol_Abs)
# exclamation mark means the function will change (mutate) the arguments
solve!(integ)
# @show integ.u # should output 123
# @show integ.t # dT_Control*60 seconds
y = integ.u #pull out vector values