@@ -2791,7 +2791,7 @@ function Symbolics.substitute(sys::AbstractSystem, rules::Union{Vector{<:Pair},
27912791 # post-walk to avoid infinite recursion
27922792 @set! sys. systems = map (Base. Fix2 (substitute, dict), systems)
27932793 something (get (rules, nameof (sys), nothing ), sys)
2794- elseif sys isa ODESystem
2794+ elseif sys isa System
27952795 rules = todict (map (r -> Symbolics. unwrap (r[1 ]) => Symbolics. unwrap (r[2 ]),
27962796 collect (rules)))
27972797 eqs = fast_substitute (get_eqs (sys), rules)
@@ -2800,9 +2800,15 @@ function Symbolics.substitute(sys::AbstractSystem, rules::Union{Vector{<:Pair},
28002800 for (k, v) in get_defaults (sys))
28012801 guess = Dict (fast_substitute (k, rules) => fast_substitute (v, rules)
28022802 for (k, v) in get_guesses (sys))
2803+ noise_eqs = fast_substitute (get_noise_eqs (sys), rules)
2804+ costs = fast_substitute (get_costs (sys), rules)
2805+ observed = fast_substitute (get_observed (sys), rules)
2806+ initialization_eqs = fast_substitute (get_initialization_eqs (sys), rules)
2807+ cstrs = fast_substitute (get_constraints (sys), rules)
28032808 subsys = map (s -> substitute (s, rules), get_systems (sys))
2804- ODESystem (eqs, get_iv (sys); name = nameof (sys), defaults = defs,
2805- guesses = guess, parameter_dependencies = pdeps, systems = subsys)
2809+ System (eqs, get_iv (sys); name = nameof (sys), defaults = defs,
2810+ guesses = guess, parameter_dependencies = pdeps, systems = subsys, noise_eqs,
2811+ observed, initialization_eqs, constraints = cstrs)
28062812 else
28072813 error (" substituting symbols is not supported for $(typeof (sys)) " )
28082814 end
0 commit comments