@@ -237,6 +237,8 @@ function ODESystem(deqs::AbstractVector{<:Equation}, iv, dvs, ps;
237
237
ctrl′ = value .(controls)
238
238
dvs′ = value .(dvs)
239
239
dvs′ = filter (x -> ! isdelay (x, iv), dvs′)
240
+ parameter_dependencies, ps′ = process_parameter_dependencies (
241
+ parameter_dependencies, ps′)
240
242
if ! (isempty (default_u0) && isempty (default_p))
241
243
Base. depwarn (
242
244
" `default_u0` and `default_p` are deprecated. Use `defaults` instead." ,
@@ -246,6 +248,8 @@ function ODESystem(deqs::AbstractVector{<:Equation}, iv, dvs, ps;
246
248
var_to_name = Dict ()
247
249
process_variables! (var_to_name, defaults, dvs′)
248
250
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])
249
253
defaults = Dict {Any, Any} (value (k) => value (v)
250
254
for (k, v) in pairs (defaults) if v != = nothing )
251
255
@@ -257,9 +261,15 @@ function ODESystem(deqs::AbstractVector{<:Equation}, iv, dvs, ps;
257
261
hasaguess = findall (! isnothing, syspsguesses)
258
262
ps_guesses = ps′[hasaguess] .=> syspsguesses[hasaguess]
259
263
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)
260
269
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 )
263
273
264
274
isempty (observed) || collect_var_to_name! (var_to_name, (eq. lhs for eq in observed))
265
275
@@ -274,8 +284,7 @@ function ODESystem(deqs::AbstractVector{<:Equation}, iv, dvs, ps;
274
284
end
275
285
cont_callbacks = SymbolicContinuousCallbacks (continuous_events)
276
286
disc_callbacks = SymbolicDiscreteCallbacks (discrete_events)
277
- parameter_dependencies, ps′ = process_parameter_dependencies (
278
- parameter_dependencies, ps′)
287
+
279
288
if is_dde === nothing
280
289
is_dde = _check_if_dde (deqs, iv′, systems)
281
290
end
0 commit comments