@@ -125,8 +125,8 @@ function remake(prob::ODEProblem; f = missing,
125
125
126
126
if f === missing
127
127
if build_initializeprob
128
- initialization_data = remake_initialization_data (
129
- prob. f. sys, prob. f, u0, tspan[1 ], p)
128
+ initialization_data = remake_initialization_data_compat_wrapper (
129
+ prob. f. sys, prob. f, u0, tspan[1 ], p, newu0, newp )
130
130
else
131
131
initialization_data = nothing
132
132
end
@@ -203,16 +203,32 @@ function remake_initializeprob(sys, scimlfn, u0, t0, p)
203
203
end
204
204
205
205
"""
206
- remake_initialization_data(sys, scimlfn, u0, t0, p)
206
+ $(TYPEDSIGNATURES)
207
+
208
+ Wrapper around `remake_initialization_data` for backward compatibility when `newu0` and
209
+ `newp` were not arguments.
210
+ """
211
+ function remake_initialization_data_compat_wrapper (sys, scimlfn, u0, t0, p, newu0, newp)
212
+ if hasmethod (remake_initialization_data,
213
+ Tuple{typeof (sys), typeof (scimlfn), typeof (u0), typeof (t0), typeof (p)})
214
+ remake_initialization_data (sys, scimlfn, u0, t0, p)
215
+ else
216
+ remake_initialization_data (sys, scimlfn, u0, t0, p, newu0, newp)
217
+ end
218
+ end
219
+
220
+ """
221
+ remake_initialization_data(sys, scimlfn, u0, t0, p, newu0, newp)
207
222
208
223
Re-create the initialization data present in the function `scimlfn`, using the
209
- associated system `sys` and the user provided new values of `u0`, initial time `t0` and
210
- `p`. By default, this calls `remake_initializeprob` for backward compatibility and
211
- attempts to construct an `OverrideInitData` from the result.
224
+ associated system `sys`, the user provided new values of `u0`, initial time `t0`,
225
+ user-provided `p`, new u0 vector `newu0` and new parameter object `newp`. By default,
226
+ this calls `remake_initializeprob` for backward compatibility and attempts to construct
227
+ an `OverrideInitData` from the result.
212
228
213
229
Note that `u0` or `p` may be `missing` if the user does not provide a value for them.
214
230
"""
215
- function remake_initialization_data (sys, scimlfn, u0, t0, p)
231
+ function remake_initialization_data (sys, scimlfn, u0, t0, p, newu0, newp )
216
232
return reconstruct_initialization_data (
217
233
nothing , remake_initializeprob (sys, scimlfn, u0, t0, p)... )
218
234
end
0 commit comments