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...)
137137end
138138
139139function 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 )
145145 end
146146 end
147147 return nothing
148148end
149149
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+
150159Base.:(== )(sys1:: ODESystem , sys2:: ODESystem ) =
151160 _eq_unordered (sys1. eqs, sys2. eqs) && isequal (sys1. iv, sys2. iv) &&
152161 _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)
211211@test all (isequal .(states (sys), [x, y, z]))
212212@test all (isequal .(parameters (sys), [σ, β]))
213213@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