@@ -13,7 +13,7 @@ import SymbolicUtils as SU
1313# ## Nonlinear system
1414# ##
1515@constants h = 1
16- @variables u1 (t) u2 (t) u3 (t) u4 (t) u5 (t)
16+ @variables u1 (t) u2 (t) u3 (t) u4 (t) u5 (t) [state_priority = 10 ]
1717eqs = [
1818 0 ~ u1 - sin (u5) * h,
1919 0 ~ u2 - cos (u1),
@@ -65,7 +65,8 @@ graph2vars(graph) = map(is -> Set(map(i -> int2var[i], is)), graph.fadjlist)
6565
6666newsys = tearing (sys)
6767@test length (equations (newsys)) == 1
68- @test issetequal (SU. search_variables (equations (newsys)), [u1, u4, u5])
68+ vars = SU. search_variables (equations (newsys))
69+ @test issetequal (vars, [u1, u4, u5]) || issetequal (vars, [h, u1, u5])
6970
7071# Before:
7172# u1 u2 u3 u4 u5
@@ -100,16 +101,19 @@ newsys = tearing(sys)
100101# --------------------|-----
101102# e5 [ 1 1 | 1 ]
102103
103- let state = TearingState (sys)
104- result, = tearing (state)
105- S = StructuralTransformations. reordered_matrix (sys, result. var_eq_matching)
106- @test S == [
107- 1 0 0 0 1
108- 1 1 0 0 0
109- 1 1 1 0 0
110- 0 1 1 1 0
111- 1 0 0 1 1
112- ]
104+ # Variable and equation ordering changes with version
105+ if v " 1.12" <= VERSION < v " 1.13"
106+ let state = TearingState (sys)
107+ result, = tearing (state)
108+ S = StructuralTransformations. reordered_matrix (sys, result. var_eq_matching)
109+ @test S == [
110+ 1 0 0 0 1
111+ 1 1 0 0 0
112+ 1 1 1 0 0
113+ 0 1 1 1 0
114+ 1 0 0 1 1
115+ ]
116+ end
113117end
114118
115119# unknowns: u5
124128# solve for
125129# 0 = u5 - hypot(sin(u5), hypot(cos(sin(u5)), hypot(sin(u5), cos(sin(u5)))))
126130tornsys = complete (tearing (sys))
127- @test isequal (equations (tornsys), [0 ~ u5 - hypot (u4, u1)])
128- prob = NonlinearProblem (tornsys, [u5 => 1.0 ])
131+ @test isequal (equations (tornsys), [0 ~ u5 - hypot (u4, u1)]) || isequal ( equations (tornsys), [ 0 ~ u1 - h * sin (u5)])
132+ prob = NonlinearProblem (tornsys, [u5 => 1.0 , u1 => 1.0 ])
129133sol = solve (prob, NewtonRaphson ())
130134@test norm (prob. f (sol. u, sol. prob. p)) < 1.0e-10
131135
260264 @test length (equations (sys3)) == 1
261265 @test isequal (only (unknowns (sys3)), sys3. capacitor. v)
262266
263- idx = findfirst (isequal (sys3. capacitor . p . i ), observables (sys3))
267+ idx = findfirst (isequal (sys3. resistor1 . v ), observables (sys3))
264268 rhs = observed (sys3)[idx]. rhs
265269 @test operation (rhs) === getindex
266270 @test operation (arguments (rhs)[1 ]) === (\ )
0 commit comments