Skip to content

Commit a88ef2e

Browse files
refactor: update tearing_substitute_expr, full_equations to use observed
1 parent 4814f1c commit a88ef2e

File tree

1 file changed

+5
-10
lines changed

1 file changed

+5
-10
lines changed

src/structural_transformation/symbolics_tearing.jl

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,7 @@ end
107107
function 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)
113112
end
114113

@@ -121,20 +120,17 @@ These equations matches generated numerical code.
121120
See also [`equations`](@ref) and [`ModelingToolkit.get_eqs`](@ref).
122121
"""
123122
function 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
148143
end
149144

0 commit comments

Comments
 (0)