@@ -19,7 +19,7 @@ D = Differential(t)
19
19
@test MT. get_units (E/ τ) == 1.0 u " MW"
20
20
@test MT. get_units (2 * P) == 1.0 u " MW"
21
21
@test MT. get_units (t/ τ) == 1.0
22
- @test MT. get_units (P - E/ τ)/ 1.0 u " MW " == 1.0
22
+ @test MT. get_units (P - E/ τ) == 1.0 u " MW "
23
23
24
24
@test MT. get_units (1.0 ^ (t/ τ)) == 1.0
25
25
@test MT. get_units (exp (t/ τ)) == 1.0
@@ -37,14 +37,11 @@ eqs = [D(E) ~ P - E/τ
37
37
@test MT. validate (eqs[1 ])
38
38
@test MT. validate (eqs[2 ])
39
39
@test MT. validate (eqs)
40
- sys = ODESystem (eqs)
41
- sys = ODESystem (eqs, t, [P, E], [τ])
40
+ @named sys = ODESystem (eqs)
41
+ @named sys = ODESystem (eqs, t, [P, E], [τ])
42
42
43
43
@test ! MT. validate (D (D (E)) ~ P)
44
44
@test ! MT. validate (0 ~ P + E* τ)
45
- @test_logs (:warn ,) MT. validate (0 ~ P + E* τ)
46
- @test_logs (:warn ,) MT. validate (P + E* τ ~ 0 )
47
- @test_logs (:warn ,) MT. validate (P ~ 0 )
48
45
49
46
# Unit-free
50
47
@variables x y z u
@@ -56,7 +53,7 @@ eqs = [0 ~ σ*(y - x)]
56
53
@variables t x[1 : 3 ,1 : 3 ](t)
57
54
D = Differential (t)
58
55
eqs = D .(x) .~ x
59
- ODESystem (eqs)
56
+ ODESystem (eqs,name = :sys )
60
57
61
58
# Array ops
62
59
using Symbolics: unwrap, wrap
@@ -69,7 +66,7 @@ eqs = [
69
66
collect (D .(x) ~ x)
70
67
D (y) ~ norm (x)* y
71
68
]
72
- ODESystem (eqs, t, [sts... ;], [ps... ;])
69
+ ODESystem (eqs, t, [sts... ;], [ps... ;],name = :sys )
73
70
74
71
#= Not supported yet b/c iterate doesn't work on unitful array
75
72
# Array ops with units
@@ -99,7 +96,7 @@ D = Difference(t; dt = 0.1u"s")
99
96
eqs = [
100
97
δ (x) ~ a* x
101
98
]
102
- de = ODESystem (eqs, t, [x, y], [a])
99
+ de = ODESystem (eqs, t, [x, y], [a],name = :sys )
103
100
104
101
105
102
@parameters t
@@ -111,15 +108,15 @@ eqs = [D(y[1]) ~ -k[1]*y[1] + k[3]*y[2]*y[3],
111
108
D (y[2 ]) ~ k[1 ]* y[1 ] - k[3 ]* y[2 ]* y[3 ] - k[2 ]* y[2 ]^ 2 ,
112
109
0 ~ y[1 ] + y[2 ] + y[3 ] - 1 ]
113
110
114
- sys = ODESystem (eqs,t,y,k)
111
+ @named sys = ODESystem (eqs,t,y,k)
115
112
116
113
# Nonlinear system
117
114
@parameters a [unit = u " kg" ^- 1 ]
118
115
@variables x [unit = u " kg" ]
119
116
eqs = [
120
117
0 ~ a* x
121
118
]
122
- nls = NonlinearSystem (eqs, [x], [a])
119
+ @named nls = NonlinearSystem (eqs, [x], [a])
123
120
124
121
# SDE test w/ noise vector
125
122
@parameters τ [unit = u " ms" ] Q [unit = u " MW" ]
@@ -130,11 +127,11 @@ eqs = [D(E) ~ P - E/τ
130
127
131
128
noiseeqs = [0.1 u " MW" ,
132
129
0.1 u " MW" ]
133
- sys = SDESystem (eqs, noiseeqs, t, [P, E], [τ, Q])
130
+ @named sys = SDESystem (eqs, noiseeqs, t, [P, E], [τ, Q])
134
131
# With noise matrix
135
132
noiseeqs = [0.1 u " MW" 0.1 u " MW"
136
133
0.1 u " MW" 0.1 u " MW" ]
137
- sys = SDESystem (eqs,noiseeqs, t, [P, E], [τ, Q])
134
+ @named sys = SDESystem (eqs,noiseeqs, t, [P, E], [τ, Q])
138
135
139
136
noiseeqs = [0.1 u " MW" 0.1 u " MW"
140
137
0.1 u " MW" 0.1 u " s" ]
@@ -146,24 +143,24 @@ noiseeqs = [0.1u"MW" 0.1u"MW"
146
143
D = Differential (t)
147
144
eqs = [D (L) ~ v,
148
145
V ~ L^ 3 ]
149
- sys = ODESystem (eqs)
146
+ @named sys = ODESystem (eqs)
150
147
sys_simple = structural_simplify (sys)
151
148
152
149
eqs = [D (V) ~ r,
153
150
V ~ L^ 3 ]
154
- sys = ODESystem (eqs)
151
+ @named sys = ODESystem (eqs)
155
152
sys_simple = structural_simplify (sys)
156
153
157
154
@variables V [unit = u " m" ^ 3 ] L [unit = u " m" ]
158
- @parameters v [unit = u " m/s" ] r [unit = u " m" ^ 3 / u " s" ] t [unit = u " s" ]
155
+ @parameters v [unit = u " m/s" ] r [unit = u " m" ^ 3 / u " s" ] t [unit = u " s" ]
159
156
eqs = [V ~ r* t,
160
157
V ~ L^ 3 ]
161
- sys = NonlinearSystem (eqs, [V, L], [t, r])
158
+ @named sys = NonlinearSystem (eqs, [V, L], [t, r])
162
159
sys_simple = structural_simplify (sys)
163
160
164
161
eqs = [L ~ v* t,
165
162
V ~ L^ 3 ]
166
- sys = NonlinearSystem (eqs, [V,L], [t,r])
163
+ @named sys = NonlinearSystem (eqs, [V,L], [t,r])
167
164
sys_simple = structural_simplify (sys)
168
165
169
166
# Jump System
@@ -175,25 +172,25 @@ rate₂ = γ*I
175
172
affect₂ = [I ~ I - 1 u " mol" , R ~ R + 1 u " mol" ]
176
173
j₁ = ConstantRateJump (rate₁, affect₁)
177
174
j₂ = VariableRateJump (rate₂, affect₂)
178
- js = JumpSystem ([j₁, j₂], t, [S, I, R], [β, γ])
175
+ js = JumpSystem ([j₁, j₂], t, [S, I, R], [β, γ],name = :sys )
179
176
180
177
affect_wrong = [S ~ S - 1 u " mol" , I ~ I + 1 ]
181
178
j_wrong = ConstantRateJump (rate₁, affect_wrong)
182
- @test_throws ArgumentError JumpSystem ([j_wrong, j₂], t, [S, I, R], [β, γ])
179
+ @test_throws ArgumentError JumpSystem ([j_wrong, j₂], t, [S, I, R], [β, γ],name = :sys )
183
180
184
181
rate_wrong = γ^ 2 * I
185
182
j_wrong = ConstantRateJump (rate_wrong, affect₂)
186
- @test_throws ArgumentError JumpSystem ([j₁, j_wrong], t, [S, I, R], [β, γ])
183
+ @test_throws ArgumentError JumpSystem ([j₁, j_wrong], t, [S, I, R], [β, γ],name = :sys )
187
184
188
185
# mass action jump tests for SIR model
189
186
maj1 = MassActionJump (2 * β/ 2 , [S => 1 , I => 1 ], [S => - 1 , I => 1 ])
190
187
maj2 = MassActionJump (γ, [I => 1 ], [I => - 1 , R => 1 ])
191
- js3 = JumpSystem ([maj1, maj2], t, [S,I,R], [β,γ])
188
+ @named js3 = JumpSystem ([maj1, maj2], t, [S,I,R], [β,γ])
192
189
193
190
# Test unusual jump system
194
191
@parameters β γ t
195
192
@variables S (t) I (t) R (t)
196
193
197
194
maj1 = MassActionJump (2.0 , [0 => 1 ], [S => 1 ])
198
195
maj2 = MassActionJump (γ, [S => 1 ], [S => - 1 ])
199
- js4 = JumpSystem ([maj1, maj2], t, [S], [β, γ])
196
+ @named js4 = JumpSystem ([maj1, maj2], t, [S], [β, γ])
0 commit comments