107107function tearing_substitute_expr (sys:: AbstractSystem , expr; simplify = false )
108108 empty_substitutions (sys) && return expr
109109 substitutions = get_substitutions (sys)
110- @unpack subs = substitutions
111- solved = Dict (eq. lhs => eq. rhs for eq in subs)
110+ solved = Dict (eq. lhs => eq. rhs for eq in substitutions)
112111 return tearing_sub (expr, solved, simplify)
113112end
114113
@@ -121,20 +120,17 @@ These equations matches generated numerical code.
121120See also [`equations`](@ref) and [`ModelingToolkit.get_eqs`](@ref).
122121"""
123122function full_equations (sys:: AbstractSystem ; simplify = false )
124- empty_substitutions (sys) && return equations (sys)
125- substitutions = get_substitutions (sys)
126- substitutions. subed_eqs === nothing || return substitutions. subed_eqs
127- @unpack subs = substitutions
128- solved = Dict (eq. lhs => eq. rhs for eq in subs)
123+ isempty (observed (sys)) && return equations (sys)
124+ subs = Dict ([eq. lhs => eq. rhs for eq in observed (sys)])
129125 neweqs = map (equations (sys)) do eq
130126 if iscall (eq. lhs) && operation (eq. lhs) isa Union{Shift, Differential}
131- return tearing_sub (eq. lhs, solved , simplify) ~ tearing_sub (eq. rhs, solved ,
127+ return tearing_sub (eq. lhs, subs , simplify) ~ tearing_sub (eq. rhs, subs ,
132128 simplify)
133129 else
134130 if ! (eq. lhs isa Number && eq. lhs == 0 )
135131 eq = 0 ~ eq. rhs - eq. lhs
136132 end
137- rhs = tearing_sub (eq. rhs, solved , simplify)
133+ rhs = tearing_sub (eq. rhs, subs , simplify)
138134 if rhs isa Symbolic
139135 return 0 ~ rhs
140136 else # a number
@@ -143,7 +139,6 @@ function full_equations(sys::AbstractSystem; simplify = false)
143139 end
144140 eq
145141 end
146- substitutions. subed_eqs = neweqs
147142 return neweqs
148143end
149144
0 commit comments