@@ -223,16 +223,19 @@ function is_parameter_solvable(p, pmap, defs, guesses)
223
223
_val1 === nothing && _val2 != = nothing )) && _val3 != = nothing
224
224
end
225
225
226
- function SciMLBase. remake_initialization_data (sys:: ODESystem , odefn, u0, t0, p, newu0, newp)
226
+ function SciMLBase. remake_initialization_data (
227
+ sys:: AbstractSystem , odefn, u0, t0, p, newu0, newp)
227
228
if u0 === missing && p === missing
228
229
return odefn. initialization_data
229
230
end
230
231
if ! (eltype (u0) <: Pair ) && ! (eltype (p) <: Pair )
231
- oldinitprob = odefn. initializeprob
232
+ oldinitdata = odefn. initialization_data
233
+ oldinitdata === nothing && return nothing
234
+
235
+ oldinitprob = oldinitdata. initializeprob
232
236
oldinitprob === nothing && return nothing
233
237
if ! SciMLBase. has_sys (oldinitprob. f) || ! (oldinitprob. f. sys isa NonlinearSystem)
234
- return SciMLBase. OverrideInitData (oldinitprob, odefn. update_initializeprob!,
235
- odefn. initializeprobmap, odefn. initializeprobpmap)
238
+ return oldinitdata
236
239
end
237
240
pidxs = ParameterIndex[]
238
241
pvals = []
@@ -254,7 +257,7 @@ function SciMLBase.remake_initialization_data(sys::ODESystem, odefn, u0, t0, p,
254
257
if p != = missing
255
258
for sym in parameter_symbols (oldinitprob)
256
259
push! (pidxs, parameter_index (oldinitprob, sym))
257
- if isequal (sym, get_iv (sys))
260
+ if is_time_dependent (sys) && isequal (sym, get_iv (sys))
258
261
push! (pvals, t0)
259
262
else
260
263
push! (pvals, getp (sys, sym)(p))
@@ -283,8 +286,8 @@ function SciMLBase.remake_initialization_data(sys::ODESystem, odefn, u0, t0, p,
283
286
length (oldinitprob. f. resid_prototype), newu0, newp))
284
287
end
285
288
initprob = remake (oldinitprob; f = newf, u0 = newu0, p = newp)
286
- return SciMLBase. OverrideInitData (initprob, odefn . update_initializeprob!,
287
- odefn . initializeprobmap, odefn . initializeprobpmap)
289
+ return SciMLBase. OverrideInitData (initprob, oldinitdata . update_initializeprob!,
290
+ oldinitdata . initializeprobmap, oldinitdata . initializeprobpmap)
288
291
end
289
292
dvs = unknowns (sys)
290
293
ps = parameters (sys)
@@ -298,7 +301,7 @@ function SciMLBase.remake_initialization_data(sys::ODESystem, odefn, u0, t0, p,
298
301
use_scc = true
299
302
300
303
if SciMLBase. has_initializeprob (odefn)
301
- oldsys = odefn. initializeprob. f. sys
304
+ oldsys = odefn. initialization_data . initializeprob. f. sys
302
305
meta = get_metadata (oldsys)
303
306
if meta isa InitializationSystemMetadata
304
307
u0map = merge (meta. u0map, u0map)
@@ -336,7 +339,7 @@ function SciMLBase.remake_initialization_data(sys::ODESystem, odefn, u0, t0, p,
336
339
pmap[p] = getp (sys, p)(newp)
337
340
end
338
341
end
339
- if t0 === nothing
342
+ if t0 === nothing && is_time_dependent (sys)
340
343
t0 = 0.0
341
344
end
342
345
filter_missing_values! (u0map)
0 commit comments