@@ -581,11 +581,21 @@ function SciMLBase.remake_initialization_data(
581581 op, missing_unknowns, missing_pars = build_operating_point! (sys,
582582 u0map, pmap, defs, cmap, dvs, ps)
583583 floatT = float_type_from_varmap (op)
584+ u0_constructor = p_constructor = identity
585+ if newu0 isa StaticArray
586+ u0_constructor = vals -> SymbolicUtils. Code. create_array (
587+ typeof (newu0), floatT, Val (1 ), Val (length (vals)), vals... )
588+ end
589+ if newp isa StaticArray || newp isa MTKParameters && newp. initials isa StaticArray
590+ p_constructor = vals -> SymbolicUtils. Code. create_array (
591+ typeof (newp. initials), floatT, Val (1 ), Val (length (vals)), vals... )
592+ end
584593 kws = maybe_build_initialization_problem (
585- sys, op, u0map, pmap, t0, defs, guesses, missing_unknowns;
586- use_scc, initialization_eqs, floatT, allow_incomplete = true )
594+ sys, SciMLBase . isinplace (odefn), op, u0map, pmap, t0, defs, guesses, missing_unknowns;
595+ use_scc, initialization_eqs, floatT, u0_constructor, p_constructor, allow_incomplete = true )
587596
588- return SciMLBase. remake_initialization_data (sys, kws, newu0, t0, newp, newu0, newp)
597+ odefn = remake (odefn; kws... )
598+ return SciMLBase. remake_initialization_data (sys, odefn, newu0, t0, newp, newu0, newp)
589599end
590600
591601function promote_u0_p (u0, p:: MTKParameters , t0)
0 commit comments