@@ -2285,7 +2285,7 @@ function linearization_function(sys::AbstractSystem, inputs,
22852285
22862286 function (u, p, t)
22872287 p_setter! (oldps, p_getter (u, p... , t))
2288- newu = u_getter (u, p, t)
2288+ newu = u_getter (u, p... , t)
22892289 return newu, oldps
22902290 end
22912291 end
@@ -2303,6 +2303,13 @@ function linearization_function(sys::AbstractSystem, inputs,
23032303 initfn = NonlinearFunction (initsys; eval_expression, eval_module)
23042304 initprobmap = build_explicit_observed_function (
23052305 initsys, unknowns (sys); eval_expression, eval_module)
2306+ if has_index_cache (sys) && get_index_cache (sys) != = nothing
2307+ initprobmap = let inner = initprobmap
2308+ fn (u, p:: MTKParameters ) = inner (u, p... )
2309+ fn (u, p) = inner (u, p)
2310+ fn
2311+ end
2312+ end
23062313 ps = parameters (sys)
23072314 h = build_explicit_observed_function (sys, outputs; eval_expression, eval_module)
23082315 lin_fun = let diff_idxs = diff_idxs,
@@ -2342,7 +2349,7 @@ function linearization_function(sys::AbstractSystem, inputs,
23422349 initu0, initp = get_initprob_u_p (u, p, t)
23432350 initprob = NonlinearLeastSquaresProblem (initfn, initu0, initp)
23442351 nlsol = solve (initprob, initialization_solver_alg)
2345- u = initprobmap (nlsol)
2352+ u = initprobmap (state_values ( nlsol), parameter_values (nlsol) )
23462353 end
23472354 end
23482355 uf = SciMLBase. UJacobianWrapper (fun, t, p)
0 commit comments