4141""" 
4242$(TYPEDSIGNATURES) 
4343
44- Generate `System` of nonlinear equations which initializes a problem from specified initial conditions of an `AbstractTimeDependentSystem `. 
44+ Generate `System` of nonlinear equations which initializes a problem from specified initial conditions of a time-dependent `AbstractSystem `. 
4545""" 
4646function  generate_initializesystem_timevarying (sys:: AbstractSystem ;
4747        op =  Dict (),
@@ -71,7 +71,6 @@ function generate_initializesystem_timevarying(sys::AbstractSystem;
7171    eqs_ics =  Equation[]
7272    defs =  copy (defaults (sys)) #  copy so we don't modify sys.defaults
7373    additional_guesses =  anydict (guesses)
74-     additional_initialization_eqs =  Vector {Equation} (initialization_eqs)
7574    guesses =  merge (get_guesses (sys), additional_guesses)
7675    idxs_diff =  isdiffeq .(eqs)
7776
@@ -190,11 +189,13 @@ function generate_initializesystem_timevarying(sys::AbstractSystem;
190189    push! (pars, get_iv (sys))
191190
192191    #  8) use observed equations for guesses of observed variables if not provided
192+     guessed =  Set (keys (defs)) #  x(t), D(x(t)), ...
193+     guessed =  union (guessed, Set (default_toterm .(guessed))) #  x(t), D(x(t)), xˍt(t), ...
193194    for  eq in  trueobs
194-         haskey (defs,  eq. lhs)  &&   continue 
195-         any (x  ->   isequal ( default_toterm (x),  eq. lhs),  keys (defs))  &&   continue 
196- 
197-         defs[eq . lhs]  =  eq . rhs 
195+         if   ! ( eq. lhs  in  guessed) 
196+             defs[ eq. lhs]  =  eq . rhs 
197+              # push!(guessed, eq.lhs) # should not encounter eq.lhs twice, so don't need to track it 
198+         end 
198199    end 
199200    append! (eqs_ics, trueobs)
200201
216217""" 
217218$(TYPEDSIGNATURES) 
218219
219- Generate `System` of nonlinear equations which initializes a problem from specified initial conditions of an `AbstractTimeDependentSystem `. 
220+ Generate `System` of nonlinear equations which initializes a problem from specified initial conditions of a time-independent `AbstractSystem `. 
220221""" 
221222function  generate_initializesystem_timeindependent (sys:: AbstractSystem ;
222223        op =  Dict (),
@@ -228,12 +229,10 @@ function generate_initializesystem_timeindependent(sys::AbstractSystem;
228229    eqs =  equations (sys)
229230    trueobs, eqs =  unhack_observed (observed (sys), eqs)
230231    vars =  unique ([unknowns (sys); getfield .(trueobs, :lhs )])
231-     vars_set =  Set (vars) #  for efficient in-lookup
232232
233233    eqs_ics =  Equation[]
234234    defs =  copy (defaults (sys)) #  copy so we don't modify sys.defaults
235235    additional_guesses =  anydict (guesses)
236-     additional_initialization_eqs =  Vector {Equation} (initialization_eqs)
237236    guesses =  merge (get_guesses (sys), additional_guesses)
238237
239238    #  PREPROCESSING
0 commit comments