@@ -21,6 +21,7 @@ function generate_initializesystem(sys::AbstractSystem;
21
21
eqs_ics = Equation[]
22
22
defs = copy (defaults (sys)) # copy so we don't modify sys.defaults
23
23
additional_guesses = anydict (guesses)
24
+ additional_initialization_eqs = Vector {Equation} (initialization_eqs)
24
25
guesses = merge (get_guesses (sys), additional_guesses)
25
26
idxs_diff = isdiffeq .(eqs)
26
27
@@ -191,7 +192,7 @@ function generate_initializesystem(sys::AbstractSystem;
191
192
defs[k] = substitute (defs[k], paramsubs)
192
193
end
193
194
meta = InitializationSystemMetadata (
194
- anydict (u0map), anydict (pmap), additional_guesses, extra_metadata)
195
+ anydict (u0map), anydict (pmap), additional_guesses, additional_initialization_eqs, extra_metadata)
195
196
return NonlinearSystem (eqs_ics,
196
197
vars,
197
198
pars;
@@ -207,6 +208,7 @@ struct InitializationSystemMetadata
207
208
u0map:: Dict{Any, Any}
208
209
pmap:: Dict{Any, Any}
209
210
additional_guesses:: Dict{Any, Any}
211
+ additional_initialization_eqs:: Vector{Equation}
210
212
extra_metadata:: NamedTuple
211
213
end
212
214
@@ -297,6 +299,7 @@ function SciMLBase.remake_initialization_data(
297
299
defs = defaults (sys)
298
300
cmap, cs = get_cmap (sys)
299
301
use_scc = true
302
+ initialization_eqs = Equation[]
300
303
301
304
if SciMLBase. has_initializeprob (odefn)
302
305
oldsys = odefn. initialization_data. initializeprob. f. sys
@@ -306,6 +309,7 @@ function SciMLBase.remake_initialization_data(
306
309
pmap = merge (meta. pmap, pmap)
307
310
merge! (guesses, meta. additional_guesses)
308
311
use_scc = get (meta. extra_metadata, :use_scc , true )
312
+ initialization_eqs = meta. additional_initialization_eqs
309
313
end
310
314
else
311
315
# there is no initializeprob, so the original problem construction
@@ -346,7 +350,7 @@ function SciMLBase.remake_initialization_data(
346
350
op, missing_unknowns, missing_pars = build_operating_point (
347
351
u0map, pmap, defs, cmap, dvs, ps)
348
352
kws = maybe_build_initialization_problem (
349
- sys, op, u0map, pmap, t0, defs, guesses, missing_unknowns; use_scc)
353
+ sys, op, u0map, pmap, t0, defs, guesses, missing_unknowns; use_scc, initialization_eqs )
350
354
return get (kws, :initialization_data , nothing )
351
355
end
352
356
0 commit comments