Skip to content

Commit e57b189

Browse files
authored
Merge pull request #1582 from SciML/myb/aliasfix
Make sure we substitute both sides just in case
2 parents bce0a76 + ebcb570 commit e57b189

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

src/structural_transformation/symbolics_tearing.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ function full_equations(sys::AbstractSystem; simplify=false)
7070
solved = Dict(eq.lhs => eq.rhs for eq in subs)
7171
neweqs = map(equations(sys)) do eq
7272
if isdiffeq(eq)
73-
return eq.lhs ~ tearing_sub(eq.rhs, solved, simplify)
73+
return tearing_sub(eq.lhs, solved, simplify) ~ tearing_sub(eq.rhs, solved, simplify)
7474
else
7575
if !(eq.lhs isa Number && eq.lhs == 0)
7676
eq = 0 ~ eq.rhs - eq.lhs

src/systems/alias_elimination.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ function alias_elimination(sys)
5252

5353
dict = Dict(subs)
5454
for (ieq, eq) in enumerate(eqs)
55-
eqs[ieq] = eq.lhs ~ fixpoint_sub(eq.rhs, dict)
55+
eqs[ieq] = fixpoint_sub(eq.lhs, dict) ~ fixpoint_sub(eq.rhs, dict)
5656
end
5757

5858
newstates = []

test/odesystem.jl

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -756,3 +756,23 @@ let
756756
@test arr == sol
757757
@test typeof(arr) == typeof(sol)
758758
end
759+
760+
761+
let
762+
@parameters t
763+
764+
u = collect(first(@variables u[1:4](t)))
765+
Dt = Differential(t)
766+
767+
eqs = [
768+
Differential(t)(u[2]) - 1.1u[1] ~ 0
769+
Differential(t)(u[3]) - 1.1u[2] ~ 0
770+
u[1] ~ 0.0
771+
u[4] ~ 0.0
772+
]
773+
774+
ps = []
775+
776+
@named sys = ODESystem(eqs, t, u, ps)
777+
@test_nowarn simpsys = structural_simplify(sys)
778+
end

0 commit comments

Comments
 (0)