@@ -237,6 +237,8 @@ function ODESystem(deqs::AbstractVector{<:Equation}, iv, dvs, ps;
237237 ctrl′ = value .(controls)
238238 dvs′ = value .(dvs)
239239 dvs′ = filter (x -> ! isdelay (x, iv), dvs′)
240+ parameter_dependencies, ps′ = process_parameter_dependencies (
241+ parameter_dependencies, ps′)
240242 if ! (isempty (default_u0) && isempty (default_p))
241243 Base. depwarn (
242244 " `default_u0` and `default_p` are deprecated. Use `defaults` instead." ,
@@ -246,6 +248,8 @@ function ODESystem(deqs::AbstractVector{<:Equation}, iv, dvs, ps;
246248 var_to_name = Dict ()
247249 process_variables! (var_to_name, defaults, dvs′)
248250 process_variables! (var_to_name, defaults, ps′)
251+ process_variables! (var_to_name, defaults, [eq. lhs for eq in parameter_dependencies])
252+ process_variables! (var_to_name, defaults, [eq. rhs for eq in parameter_dependencies])
249253 defaults = Dict {Any, Any} (value (k) => value (v)
250254 for (k, v) in pairs (defaults) if v != = nothing )
251255
@@ -257,9 +261,15 @@ function ODESystem(deqs::AbstractVector{<:Equation}, iv, dvs, ps;
257261 hasaguess = findall (! isnothing, syspsguesses)
258262 ps_guesses = ps′[hasaguess] .=> syspsguesses[hasaguess]
259263 syspsguesses = isempty (ps_guesses) ? Dict () : todict (ps_guesses)
264+ syspdepguesses = [ModelingToolkit. getguess (eq. lhs) for eq in parameter_dependencies]
265+ hasaguess = findall (! isnothing, syspdepguesses)
266+ pdep_guesses = [eq. lhs for eq in parameter_dependencies][hasaguess] .=>
267+ syspdepguesses[hasaguess]
268+ syspdepguesses = isempty (pdep_guesses) ? Dict () : todict (pdep_guesses)
260269
261- guesses = merge (sysdvsguesses, syspsguesses, todict (guesses))
262- guesses = Dict {Any, Any} (value (k) => value (v) for (k, v) in pairs (guesses))
270+ guesses = merge (sysdvsguesses, syspsguesses, syspdepguesses, todict (guesses))
271+ guesses = Dict {Any, Any} (value (k) => value (v)
272+ for (k, v) in pairs (guesses) if v != = nothing )
263273
264274 isempty (observed) || collect_var_to_name! (var_to_name, (eq. lhs for eq in observed))
265275
@@ -274,8 +284,7 @@ function ODESystem(deqs::AbstractVector{<:Equation}, iv, dvs, ps;
274284 end
275285 cont_callbacks = SymbolicContinuousCallbacks (continuous_events)
276286 disc_callbacks = SymbolicDiscreteCallbacks (discrete_events)
277- parameter_dependencies, ps′ = process_parameter_dependencies (
278- parameter_dependencies, ps′)
287+
279288 if is_dde === nothing
280289 is_dde = _check_if_dde (deqs, iv′, systems)
281290 end
0 commit comments