diff --git a/Project.toml b/Project.toml index 131b3164..74cb1382 100644 --- a/Project.toml +++ b/Project.toml @@ -48,7 +48,7 @@ Hwloc = "3.3" InteractiveUtils = "<0.0.1, 1" JET = "0.9.18" LinearAlgebra = "1.10" -LinearSolve = "3.9" +LinearSolve = "3.12" NonlinearSolveFirstOrder = "1.3" ODEInterface = "0.5" OrdinaryDiffEqLowOrderRK = "1.2" diff --git a/lib/BoundaryValueDiffEqShooting/src/multiple_shooting.jl b/lib/BoundaryValueDiffEqShooting/src/multiple_shooting.jl index 084a662e..4e27fdf0 100644 --- a/lib/BoundaryValueDiffEqShooting/src/multiple_shooting.jl +++ b/lib/BoundaryValueDiffEqShooting/src/multiple_shooting.jl @@ -111,7 +111,8 @@ function __solve_nlproblem!( end resid_prototype_cached = similar(resid_prototype) - jac_cache = DI.prepare_jacobian(nothing, resid_prototype_cached, diffmode, u_at_nodes) + jac_cache = DI.prepare_jacobian( + nothing, resid_prototype_cached, diffmode, u_at_nodes; strict = Val(false)) ode_cache_jac_fn = __multiple_shooting_init_jacobian_odecache( ensemblealg, prob, jac_cache, diffmode, alg.ode_alg, @@ -161,8 +162,8 @@ function __solve_nlproblem!(::StandardBVProblem, alg::MultipleShooting, bcresid_ else alg.jac_alg.nonbc_diffmode end - ode_jac_cache = DI.prepare_jacobian( - nothing, similar(u_at_nodes, cur_nshoot * N), nonbc_diffmode, u_at_nodes) + ode_jac_cache = DI.prepare_jacobian(nothing, similar(u_at_nodes, cur_nshoot * N), + nonbc_diffmode, u_at_nodes; strict = Val(false)) ode_cache_ode_jac_fn = __multiple_shooting_init_jacobian_odecache( ensemblealg, prob, ode_jac_cache, nonbc_diffmode, alg.ode_alg, cur_nshoot, u0; internal_ode_kwargs...) @@ -175,7 +176,7 @@ function __solve_nlproblem!(::StandardBVProblem, alg::MultipleShooting, bcresid_ bc_diffmode end bc_jac_cache = DI.prepare_jacobian( - nothing, similar(bcresid_prototype), bc_diffmode, u_at_nodes) + nothing, similar(bcresid_prototype), bc_diffmode, u_at_nodes; strict = Val(false)) ode_cache_bc_jac_fn = __multiple_shooting_init_jacobian_odecache( ensemblealg, prob, bc_jac_cache, bc_diffmode, alg.ode_alg, cur_nshoot, u0; internal_ode_kwargs...) diff --git a/lib/BoundaryValueDiffEqShooting/src/single_shooting.jl b/lib/BoundaryValueDiffEqShooting/src/single_shooting.jl index 1b0e69fe..37bc93b2 100644 --- a/lib/BoundaryValueDiffEqShooting/src/single_shooting.jl +++ b/lib/BoundaryValueDiffEqShooting/src/single_shooting.jl @@ -37,9 +37,9 @@ function SciMLBase.__solve(prob::BVProblem, alg_::Shooting; odesolve_kwargs = (; y_ = similar(resid_prototype) jac_cache = if iip - DI.prepare_jacobian(nothing, y_, diffmode, vec(u0)) + DI.prepare_jacobian(nothing, y_, diffmode, vec(u0); strict = Val(false)) else - DI.prepare_jacobian(nothing, diffmode, vec(u0)) + DI.prepare_jacobian(nothing, diffmode, vec(u0); strict = Val(false)) end ode_cache_jac_fn = __single_shooting_jacobian_ode_cache(