user12158459
user12158459

Reputation:

How to use new Initialization Schemes in DifferentialEquations.jl?

I am trying to use the new Initialization Schemes option of DifferentialEquations.jl

https://diffeq.sciml.ai/dev/solvers/dae_solve/#Initialization-Schemes-1

But I do not know how to access the new methods.

using DifferentialEquations
import DifferentialEquations: ShampineCollocationInit
using Sundials
using Plots

function f(out,du,u,p,t)
  out[1] = - 0.04u[1]              + 1e4*u[2]*u[3] - du[1]
  out[2] = + 0.04u[1] - 3e7*u[2]^2 - 1e4*u[2]*u[3] - du[2]
  out[3] = u[1] + u[2] + u[3] - 1.0
end

u₀ = [1.0, 0, 0]
du₀ = [-0.04, 0.04, 0.0]
tspan = (0.0,100000.0)

differential_vars = [true,true,false]
prob = DAEProblem(f,du₀,u₀,tspan,differential_vars=differential_vars)

sol = solve(prob,IDA(initializealg = ShampineCollocationInit))

plot(sol, xscale=:log10, tspan=(1e-6, 1e5), layout=(3,1))

The previous example return the following Error:

WARNING: could not import DifferentialEquations.ShampineCollocationInit into Main
LoadError: UndefVarError: ShampineCollocationInit not defined
Stacktrace:
 [1] top-level scope at /home/Documents/test.jl:19
in expression starting at /home/Documents/test.jl:19

What am I doing wrong?

Upvotes: 2

Views: 320

Answers (1)

Chris Rackauckas
Chris Rackauckas

Reputation: 19142

Those initialization schemes only apply to the OrdinaryDiffEq algorithms, while the initialization of IDA (Sundials.jl) is defined in the Sundials.jl portion of the documentation this may change in the near future (with a deprecation warning of course) as it gets more and more homogenized.

Upvotes: 0

Related Questions