Skip to content

Commit 3c85f50

Browse files
feat: lexicographically sort equations in structural_simplify
1 parent 21dd529 commit 3c85f50

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/systems/systemstructure.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,12 @@ function TearingState(sys; quick_cancel = false, check = true)
381381
neqs = length(eqs)
382382
symbolic_incidence = symbolic_incidence[eqs_to_retain]
383383

384+
# sort equations lexicographically to reduce simplification issues
385+
# depending on order due to NP-completeness of tearing.
386+
sortidxs = Base.sortperm(eqs, by = string)
387+
eqs = eqs[sortidxs]
388+
symbolic_incidence = symbolic_incidence[sortidxs]
389+
384390
### Handle discrete variables
385391
lowest_shift = Dict()
386392
for var in fullvars

0 commit comments

Comments
 (0)