File tree Expand file tree Collapse file tree 2 files changed +22
-5
lines changed Expand file tree Collapse file tree 2 files changed +22
-5
lines changed Original file line number Diff line number Diff line change @@ -137,16 +137,25 @@ function ODESystem(eqs, iv=nothing; kwargs...)
137
137
end
138
138
139
139
function collect_vars! (states, parameters, expr, iv)
140
- for var in vars (expr)
141
- if isparameter (var) || isparameter (var . op )
142
- isequal (var, iv) || push! (parameters, var)
143
- else
144
- push ! (states, var)
140
+ if expr isa Sym
141
+ collect_var! (states, parameters, expr, iv )
142
+ else
143
+ for var in vars (expr)
144
+ collect_var ! (states, parameters, var, iv )
145
145
end
146
146
end
147
147
return nothing
148
148
end
149
149
150
+ function collect_var! (states, parameters, var, iv)
151
+ if isparameter (var) || isparameter (var. op)
152
+ isequal (var, iv) || push! (parameters, var)
153
+ else
154
+ push! (states, var)
155
+ end
156
+ return nothing
157
+ end
158
+
150
159
Base.:(== )(sys1:: ODESystem , sys2:: ODESystem ) =
151
160
_eq_unordered (sys1. eqs, sys2. eqs) && isequal (sys1. iv, sys2. iv) &&
152
161
_eq_unordered (sys1. states, sys2. states) && _eq_unordered (sys1. ps, sys2. ps)
Original file line number Diff line number Diff line change @@ -211,3 +211,11 @@ sys = ODESystem(eqs)
211
211
@test all (isequal .(states (sys), [x, y, z]))
212
212
@test all (isequal .(parameters (sys), [σ, β]))
213
213
@test equations (sys) == eqs
214
+
215
+ # issue 701
216
+ using ModelingToolkit
217
+ @parameters t a
218
+ @variables x (t)
219
+ @derivatives D' ~ t
220
+ sys = ODESystem ([D (x) ~ a])
221
+ @test sys. eqs[1 ]. rhs isa Sym
You can’t perform that action at this time.
0 commit comments