@@ -101,6 +101,10 @@ struct ODESystem <: AbstractODESystem
101101 """
102102 initializesystem:: Union{Nothing, NonlinearSystem}
103103 """
104+ Extra equations to be enforced during the initialization sequence.
105+ """
106+ initialization_eqs:: Vector{Equation}
107+ """
104108 The schedule for the code generation process.
105109 """
106110 schedule:: Any
@@ -171,7 +175,8 @@ struct ODESystem <: AbstractODESystem
171175
172176 function ODESystem (tag, deqs, iv, dvs, ps, tspan, var_to_name, ctrls, observed, tgrad,
173177 jac, ctrl_jac, Wfact, Wfact_t, name, systems, defaults, guesses,
174- torn_matching, initializesystem, schedule, connector_type, preface, cevents,
178+ torn_matching, initializesystem, initialization_eqs, schedule,
179+ connector_type, preface, cevents,
175180 devents, parameter_dependencies,
176181 metadata = nothing , gui_metadata = nothing ,
177182 tearing_state = nothing ,
@@ -190,8 +195,8 @@ struct ODESystem <: AbstractODESystem
190195 end
191196 new (tag, deqs, iv, dvs, ps, tspan, var_to_name, ctrls, observed, tgrad, jac,
192197 ctrl_jac, Wfact, Wfact_t, name, systems, defaults, guesses, torn_matching,
193- initializesystem, schedule, connector_type, preface, cevents, devents, parameter_dependencies ,
194- metadata,
198+ initializesystem, initialization_eqs, schedule, connector_type, preface,
199+ cevents, devents, parameter_dependencies, metadata,
195200 gui_metadata, tearing_state, substitutions, complete, index_cache,
196201 discrete_subsystems, solved_unknowns, split_idxs, parent)
197202 end
@@ -208,6 +213,7 @@ function ODESystem(deqs::AbstractVector{<:Equation}, iv, dvs, ps;
208213 defaults = _merge (Dict (default_u0), Dict (default_p)),
209214 guesses = Dict (),
210215 initializesystem = nothing ,
216+ initialization_eqs = Equation[],
211217 schedule = nothing ,
212218 connector_type = nothing ,
213219 preface = nothing ,
@@ -260,7 +266,8 @@ function ODESystem(deqs::AbstractVector{<:Equation}, iv, dvs, ps;
260266 ODESystem (Threads. atomic_add! (SYSTEM_COUNT, UInt (1 )),
261267 deqs, iv′, dvs′, ps′, tspan, var_to_name, ctrl′, observed, tgrad, jac,
262268 ctrl_jac, Wfact, Wfact_t, name, systems, defaults, guesses, nothing , initializesystem,
263- schedule, connector_type, preface, cont_callbacks, disc_callbacks, parameter_dependencies,
269+ initialization_eqs, schedule, connector_type, preface, cont_callbacks,
270+ disc_callbacks, parameter_dependencies,
264271 metadata, gui_metadata, checks = checks)
265272end
266273
0 commit comments