@@ -2835,15 +2835,14 @@ function Symbolics.substitute(sys::AbstractSystem, rules::Union{Vector{<:Pair},
2835
2835
elseif sys isa ODESystem
2836
2836
rules = todict (map (r -> Symbolics. unwrap (r[1 ]) => Symbolics. unwrap (r[2 ]),
2837
2837
collect (rules)))
2838
- eqs = fast_substitute (get_eqs (sys), rules)
2839
- pdeps = fast_substitute (get_parameter_dependencies (sys), rules)
2840
- defs = Dict (fast_substitute (k, rules) => fast_substitute (v, rules)
2838
+ newsys = @set sys. eqs = fast_substitute (get_eqs (sys), rules)
2839
+ @set! newsys. parameter_dependencies = fast_substitute (
2840
+ get_parameter_dependencies (sys), rules)
2841
+ @set! newsys. defaults = Dict (fast_substitute (k, rules) => fast_substitute (v, rules)
2841
2842
for (k, v) in get_defaults (sys))
2842
- guess = Dict (fast_substitute (k, rules) => fast_substitute (v, rules)
2843
+ @set! newsys . guesses = Dict (fast_substitute (k, rules) => fast_substitute (v, rules)
2843
2844
for (k, v) in get_guesses (sys))
2844
- subsys = map (s -> substitute (s, rules), get_systems (sys))
2845
- ODESystem (eqs, get_iv (sys); name = nameof (sys), defaults = defs,
2846
- guesses = guess, parameter_dependencies = pdeps, systems = subsys)
2845
+ @set! newsys. systems = map (s -> substitute (s, rules), get_systems (sys))
2847
2846
else
2848
2847
error (" substituting symbols is not supported for $(typeof (sys)) " )
2849
2848
end
0 commit comments