@@ -42,7 +42,7 @@ prob = ODEProblem(connected1,u0map,(0.0,100.0),parammap,jac=true)
4242@test prob. p == [7.0 ,1.0 ,2.0 ,3.0 ,4.0 ,5.0 ,6.0 ]
4343@test prob. u0 isa Vector
4444@test prob. p isa SVector
45- @test prob. f. syms == [:a ,:lorenz1′ x ,:lorenz1′ y ,:lorenz1′ z ,:lorenz2′ x ,:lorenz2′ y ,:lorenz2′ z ]
45+ @test prob. f. syms == [:a ,:lorenz1₊ x ,:lorenz1₊ y ,:lorenz1₊ z ,:lorenz2₊ x ,:lorenz2₊ y ,:lorenz2₊ z ]
4646
4747eqs_flat = [D (a) ~ a* lorenz1. x,
4848 D (lorenz1. x) ~ lorenz1. σ* (lorenz1. y- lorenz1. x),
@@ -56,19 +56,19 @@ eqs_flat = [D(a) ~ a*lorenz1.x,
5656@test parameters (connected1) == convert .(Variable,[α,lorenz1. σ,lorenz1. ρ,lorenz1. β,lorenz2. σ,lorenz2. ρ,lorenz2. β])
5757@test eqs_flat == equations (connected1)
5858
59- @variables lorenz1′ x (t) lorenz1′ y (t) lorenz1′ z (t) lorenz2′ x (t) lorenz2′ y (t) lorenz2′ z (t)
60- @parameters lorenz1′ σ lorenz1′ ρ lorenz1′ β lorenz2′ σ lorenz2′ ρ lorenz2′ β
59+ @variables lorenz1₊ x (t) lorenz1₊ y (t) lorenz1₊ z (t) lorenz2₊ x (t) lorenz2₊ y (t) lorenz2₊ z (t)
60+ @parameters lorenz1₊ σ lorenz1₊ ρ lorenz1₊ β lorenz2₊ σ lorenz2₊ ρ lorenz2₊ β
6161
62- eqs_flat2 = [D (a) ~ a* lorenz1′ x,
63- D (lorenz1′ x) ~ lorenz1′ σ* (lorenz1′ y- lorenz1′ x),
64- D (lorenz1′ y) ~ lorenz1′ x* (lorenz1′ ρ- lorenz1′ z)- lorenz1′ y,
65- 0 ~ lorenz1′ x + lorenz1′ y + lorenz1′ β* lorenz1′ z,
66- D (lorenz2′ x) ~ lorenz2′ σ* (lorenz2′ y- lorenz2′ x),
67- D (lorenz2′ y) ~ lorenz2′ x* (lorenz2′ ρ- lorenz2′ z)- lorenz2′ y,
68- 0 ~ lorenz2′ x + lorenz2′ y + lorenz2′ β* lorenz2′ z]
62+ eqs_flat2 = [D (a) ~ a* lorenz1₊ x,
63+ D (lorenz1₊ x) ~ lorenz1₊ σ* (lorenz1₊ y- lorenz1₊ x),
64+ D (lorenz1₊ y) ~ lorenz1₊ x* (lorenz1₊ ρ- lorenz1₊ z)- lorenz1₊ y,
65+ 0 ~ lorenz1₊ x + lorenz1₊ y + lorenz1₊ β* lorenz1₊ z,
66+ D (lorenz2₊ x) ~ lorenz2₊ σ* (lorenz2₊ y- lorenz2₊ x),
67+ D (lorenz2₊ y) ~ lorenz2₊ x* (lorenz2₊ ρ- lorenz2₊ z)- lorenz2₊ y,
68+ 0 ~ lorenz2₊ x + lorenz2₊ y + lorenz2₊ β* lorenz2₊ z]
6969
70- @test [x. name for x in states (connected1)] == [:a ,:lorenz1′ x ,:lorenz1′ y ,:lorenz1′ z ,:lorenz2′ x ,:lorenz2′ y ,:lorenz2′ z ]
71- @test [x. name for x in parameters (connected1)] == [:α ,:lorenz1′ σ ,:lorenz1′ ρ ,:lorenz1′ β ,:lorenz2′ σ ,:lorenz2′ ρ ,:lorenz2′ β ]
70+ @test [x. name for x in states (connected1)] == [:a ,:lorenz1₊ x ,:lorenz1₊ y ,:lorenz1₊ z ,:lorenz2₊ x ,:lorenz2₊ y ,:lorenz2₊ z ]
71+ @test [x. name for x in parameters (connected1)] == [:α ,:lorenz1₊ σ ,:lorenz1₊ ρ ,:lorenz1₊ β ,:lorenz2₊ σ ,:lorenz2₊ ρ ,:lorenz2₊ β ]
7272@test eqs_flat == equations (connected1)
7373
7474connected2 = ODESystem (connnectedeqs,t,[a],[α],systems= [lorenz1,lorenz2],name= :connected2 )
@@ -104,32 +104,32 @@ eqs_flat = [D(g) ~ g*connected1.lorenz1.x,
104104@test eqs_flat == equations (doublelevel)
105105
106106@test [x. name for x in states (doublelevel)] == [:g ,
107- :connected1′ a ,:connected1′ lorenz1′ x ,:connected1′ lorenz1′ y ,:connected1′ lorenz1′ z ,:connected1′ lorenz2′ x ,:connected1′ lorenz2′ y ,:connected1′ lorenz2′ z ,
108- :connected2′ a ,:connected2′ lorenz1′ x ,:connected2′ lorenz1′ y ,:connected2′ lorenz1′ z ,:connected2′ lorenz2′ x ,:connected2′ lorenz2′ y ,:connected2′ lorenz2′ z ]
107+ :connected1₊ a ,:connected1₊ lorenz1₊ x ,:connected1₊ lorenz1₊ y ,:connected1₊ lorenz1₊ z ,:connected1₊ lorenz2₊ x ,:connected1₊ lorenz2₊ y ,:connected1₊ lorenz2₊ z ,
108+ :connected2₊ a ,:connected2₊ lorenz1₊ x ,:connected2₊ lorenz1₊ y ,:connected2₊ lorenz1₊ z ,:connected2₊ lorenz2₊ x ,:connected2₊ lorenz2₊ y ,:connected2₊ lorenz2₊ z ]
109109@test [x. name for x in parameters (doublelevel)] == [:γ ,
110- :connected1′ α ,:connected1′ lorenz1′ σ ,:connected1′ lorenz1′ ρ ,:connected1′ lorenz1′ β ,:connected1′ lorenz2′ σ ,:connected1′ lorenz2′ ρ ,:connected1′ lorenz2′ β ,
111- :connected2′ α ,:connected2′ lorenz1′ σ ,:connected2′ lorenz1′ ρ ,:connected2′ lorenz1′ β ,:connected2′ lorenz2′ σ ,:connected2′ lorenz2′ ρ ,:connected2′ lorenz2′ β ]
112-
113- @variables connected1′ a (t) connected1′ lorenz1′ x (t) connected1′ lorenz1′ y (t) connected1′ lorenz1′ z (t) connected1′ lorenz2′ x (t) connected1′ lorenz2′ y (t) connected1′ lorenz2′ z (t)
114- @variables connected2′ a (t) connected2′ lorenz1′ x (t) connected2′ lorenz1′ y (t) connected2′ lorenz1′ z (t) connected2′ lorenz2′ x (t) connected2′ lorenz2′ y (t) connected2′ lorenz2′ z (t)
115- @parameters connected1′ α connected1′ lorenz1′ σ connected1′ lorenz1′ ρ connected1′ lorenz1′ β connected1′ lorenz2′ σ connected1′ lorenz2′ ρ connected1′ lorenz2′ β
116- @parameters connected2′ α connected2′ lorenz1′ σ connected2′ lorenz1′ ρ connected2′ lorenz1′ β connected2′ lorenz2′ σ connected2′ lorenz2′ ρ connected2′ lorenz2′ β
117-
118- eqs_flat2 = [D (g) ~ g* connected1′ lorenz1′ x,
119- D (connected1′ a) ~ connected1′ a* connected1′ lorenz1′ x,
120- D (connected1′ lorenz1′ x) ~ connected1′ lorenz1′ σ* (connected1′ lorenz1′ y- connected1′ lorenz1′ x),
121- D (connected1′ lorenz1′ y) ~ connected1′ lorenz1′ x* (connected1′ lorenz1′ ρ- connected1′ lorenz1′ z)- connected1′ lorenz1′ y,
122- 0 ~ connected1′ lorenz1′ x + connected1′ lorenz1′ y + connected1′ lorenz1′ β* connected1′ lorenz1′ z,
123- D (connected1′ lorenz2′ x) ~ connected1′ lorenz2′ σ* (connected1′ lorenz2′ y- connected1′ lorenz2′ x),
124- D (connected1′ lorenz2′ y) ~ connected1′ lorenz2′ x* (connected1′ lorenz2′ ρ- connected1′ lorenz2′ z)- connected1′ lorenz2′ y,
125- 0 ~ connected1′ lorenz2′ x + connected1′ lorenz2′ y + connected1′ lorenz2′ β* connected1′ lorenz2′ z,
126- D (connected2′ a) ~ connected2′ a* connected2′ lorenz1′ x,
127- D (connected2′ lorenz1′ x) ~ connected2′ lorenz1′ σ* (connected2′ lorenz1′ y- connected2′ lorenz1′ x),
128- D (connected2′ lorenz1′ y) ~ connected2′ lorenz1′ x* (connected2′ lorenz1′ ρ- connected2′ lorenz1′ z)- connected2′ lorenz1′ y,
129- 0 ~ connected2′ lorenz1′ x + connected2′ lorenz1′ y + connected2′ lorenz1′ β* connected2′ lorenz1′ z,
130- D (connected2′ lorenz2′ x) ~ connected2′ lorenz2′ σ* (connected2′ lorenz2′ y- connected2′ lorenz2′ x),
131- D (connected2′ lorenz2′ y) ~ connected2′ lorenz2′ x* (connected2′ lorenz2′ ρ- connected2′ lorenz2′ z)- connected2′ lorenz2′ y,
132- 0 ~ connected2′ lorenz2′ x + connected2′ lorenz2′ y + connected2′ lorenz2′ β* connected2′ lorenz2′ z]
110+ :connected1₊ α ,:connected1₊ lorenz1₊ σ ,:connected1₊ lorenz1₊ ρ ,:connected1₊ lorenz1₊ β ,:connected1₊ lorenz2₊ σ ,:connected1₊ lorenz2₊ ρ ,:connected1₊ lorenz2₊ β ,
111+ :connected2₊ α ,:connected2₊ lorenz1₊ σ ,:connected2₊ lorenz1₊ ρ ,:connected2₊ lorenz1₊ β ,:connected2₊ lorenz2₊ σ ,:connected2₊ lorenz2₊ ρ ,:connected2₊ lorenz2₊ β ]
112+
113+ @variables connected1₊ a (t) connected1₊ lorenz1₊ x (t) connected1₊ lorenz1₊ y (t) connected1₊ lorenz1₊ z (t) connected1₊ lorenz2₊ x (t) connected1₊ lorenz2₊ y (t) connected1₊ lorenz2₊ z (t)
114+ @variables connected2₊ a (t) connected2₊ lorenz1₊ x (t) connected2₊ lorenz1₊ y (t) connected2₊ lorenz1₊ z (t) connected2₊ lorenz2₊ x (t) connected2₊ lorenz2₊ y (t) connected2₊ lorenz2₊ z (t)
115+ @parameters connected1₊ α connected1₊ lorenz1₊ σ connected1₊ lorenz1₊ ρ connected1₊ lorenz1₊ β connected1₊ lorenz2₊ σ connected1₊ lorenz2₊ ρ connected1₊ lorenz2₊ β
116+ @parameters connected2₊ α connected2₊ lorenz1₊ σ connected2₊ lorenz1₊ ρ connected2₊ lorenz1₊ β connected2₊ lorenz2₊ σ connected2₊ lorenz2₊ ρ connected2₊ lorenz2₊ β
117+
118+ eqs_flat2 = [D (g) ~ g* connected1₊ lorenz1₊ x,
119+ D (connected1₊ a) ~ connected1₊ a* connected1₊ lorenz1₊ x,
120+ D (connected1₊ lorenz1₊ x) ~ connected1₊ lorenz1₊ σ* (connected1₊ lorenz1₊ y- connected1₊ lorenz1₊ x),
121+ D (connected1₊ lorenz1₊ y) ~ connected1₊ lorenz1₊ x* (connected1₊ lorenz1₊ ρ- connected1₊ lorenz1₊ z)- connected1₊ lorenz1₊ y,
122+ 0 ~ connected1₊ lorenz1₊ x + connected1₊ lorenz1₊ y + connected1₊ lorenz1₊ β* connected1₊ lorenz1₊ z,
123+ D (connected1₊ lorenz2₊ x) ~ connected1₊ lorenz2₊ σ* (connected1₊ lorenz2₊ y- connected1₊ lorenz2₊ x),
124+ D (connected1₊ lorenz2₊ y) ~ connected1₊ lorenz2₊ x* (connected1₊ lorenz2₊ ρ- connected1₊ lorenz2₊ z)- connected1₊ lorenz2₊ y,
125+ 0 ~ connected1₊ lorenz2₊ x + connected1₊ lorenz2₊ y + connected1₊ lorenz2₊ β* connected1₊ lorenz2₊ z,
126+ D (connected2₊ a) ~ connected2₊ a* connected2₊ lorenz1₊ x,
127+ D (connected2₊ lorenz1₊ x) ~ connected2₊ lorenz1₊ σ* (connected2₊ lorenz1₊ y- connected2₊ lorenz1₊ x),
128+ D (connected2₊ lorenz1₊ y) ~ connected2₊ lorenz1₊ x* (connected2₊ lorenz1₊ ρ- connected2₊ lorenz1₊ z)- connected2₊ lorenz1₊ y,
129+ 0 ~ connected2₊ lorenz1₊ x + connected2₊ lorenz1₊ y + connected2₊ lorenz1₊ β* connected2₊ lorenz1₊ z,
130+ D (connected2₊ lorenz2₊ x) ~ connected2₊ lorenz2₊ σ* (connected2₊ lorenz2₊ y- connected2₊ lorenz2₊ x),
131+ D (connected2₊ lorenz2₊ y) ~ connected2₊ lorenz2₊ x* (connected2₊ lorenz2₊ ρ- connected2₊ lorenz2₊ z)- connected2₊ lorenz2₊ y,
132+ 0 ~ connected2₊ lorenz2₊ x + connected2₊ lorenz2₊ y + connected2₊ lorenz2₊ β* connected2₊ lorenz2₊ z]
133133
134134@test eqs_flat2 == equations (doublelevel)
135135
@@ -140,11 +140,11 @@ M[12,12] = false
140140M[15 ,15 ] = false
141141@test calculate_massmatrix (doublelevel) == M
142142
143- jac = [connected1′ lorenz1′ x 0 g zeros (1 ,12 )
143+ jac = [connected1₊ lorenz1₊ x 0 g zeros (1 ,12 )
144144 zeros (7 ,1 ) calculate_jacobian (connected1) zeros (Expression,7 ,7 )
145145 zeros (Expression,7 ,8 ) calculate_jacobian (connected2)]
146146
147- jac2 = [connected1′ lorenz1′ x 0 g zeros (1 ,12 )
147+ jac2 = [connected1₊ lorenz1₊ x 0 g zeros (1 ,12 )
148148 zeros (7 ,1 ) ModelingToolkit. namespace_operation .(calculate_jacobian (connected1),connected1. name,:t ) zeros (Expression,7 ,7 )
149149 zeros (Expression,7 ,8 ) ModelingToolkit. namespace_operation .(calculate_jacobian (connected2),connected2. name,:t )]
150150
0 commit comments