diff --git a/lib/OrdinaryDiffEqCore/src/initialize_dae.jl b/lib/OrdinaryDiffEqCore/src/initialize_dae.jl index f4a28df105..4bb705902f 100644 --- a/lib/OrdinaryDiffEqCore/src/initialize_dae.jl +++ b/lib/OrdinaryDiffEqCore/src/initialize_dae.jl @@ -42,38 +42,17 @@ function DiffEqBase.initialize_dae!(integrator::ODEIntegrator, Val(DiffEqBase.isinplace(integrator.sol.prob))) end -## Default algorithms +## Default algorithm is CheckInit +## Changed in v7--previously was BrownFullBasicInit or ShampineCollocationInit -function _initialize_dae!(integrator, prob::ODEProblem, +function _initialize_dae!(integrator, prob::Union{ODEProblem, DAEProblem}, alg::DefaultInit, x::Union{Val{true}, Val{false}}) if SciMLBase.has_initializeprob(prob.f) _initialize_dae!(integrator, prob, OverrideInit(integrator.opts.abstol), x) - elseif !applicable(_initialize_dae!, integrator, prob, - BrownFullBasicInit(integrator.opts.abstol), x) - error("`OrdinaryDiffEqNonlinearSolve` is not loaded, which is required for the default initialization algorithm (`BrownFullBasicInit` or `ShampineCollocationInit`). To solve this problem, either do `using OrdinaryDiffEqNonlinearSolve` or pass `initializealg = CheckInit()` to the `solve` function. This second option requires consistent `u0`.") else _initialize_dae!(integrator, prob, - BrownFullBasicInit(integrator.opts.abstol), x) - end -end - -function _initialize_dae!(integrator, prob::DAEProblem, - alg::DefaultInit, x::Union{Val{true}, Val{false}}) - if SciMLBase.has_initializeprob(prob.f) - _initialize_dae!(integrator, prob, - OverrideInit(integrator.opts.abstol), x) - elseif !applicable(_initialize_dae!, integrator, prob, - BrownFullBasicInit(), x) && - !applicable(_initialize_dae!, - integrator, prob, ShampineCollocationInit(), x) - error("`OrdinaryDiffEqNonlinearSolve` is not loaded, which is required for the default initialization algorithm (`BrownFullBasicInit` or `ShampineCollocationInit`). To solve this problem, either do `using OrdinaryDiffEqNonlinearSolve` or pass `initializealg = CheckInit()` to the `solve` function. This second option requires consistent `u0`.") - elseif prob.differential_vars === nothing - _initialize_dae!(integrator, prob, - ShampineCollocationInit(), x) - else - _initialize_dae!(integrator, prob, - BrownFullBasicInit(integrator.opts.abstol), x) + CheckInit(), x) end end