11using ModelingToolkit, OrdinaryDiffEq, RecursiveArrayTools, StochasticDiffEq,
22 SymbolicIndexingInterface, Test
3-
3+ using ModelingToolkit : t_nounits as t, D_nounits as D
44# ## Tests on non-layered model (everything should work). ###
55
6- @parameters t a b c d
6+ @parameters a b c d
77@variables s1 (t) s2 (t)
8- D = Differential (t)
98
109eqs = [D (s1) ~ a * s1 / (1 + s1 + s2) - b * s1,
1110 D (s2) ~ + c * s2 / (1 + s1 + s2) - d * s2]
1211
13- @named population_model = ODESystem (eqs)
12+ @named population_model = ODESystem (eqs, t )
1413
1514# Tests on ODEProblem.
1615u0 = [s1 => 2.0 , s2 => 1.0 ]
@@ -119,23 +118,24 @@ integrator[noisy_population_model.s2] = 10.0
119118integrator[:s1 ] = 1.0
120119@test integrator[s1] == integrator[noisy_population_model. s1] == integrator[:s1 ] == 1.0
121120
122- @parameters t σ ρ β
121+ @parameters σ ρ β
123122@variables x (t) y (t) z (t)
124123D = Differential (t)
125124
126125eqs = [D (x) ~ σ * (y - x),
127126 D (y) ~ x * (ρ - z) - y,
128127 D (z) ~ x * y - β * z]
129128
130- @named lorenz1 = ODESystem (eqs)
131- @named lorenz2 = ODESystem (eqs)
129+ @named lorenz1 = ODESystem (eqs, t )
130+ @named lorenz2 = ODESystem (eqs, t )
132131
133132@parameters γ
134133@variables a (t) α (t)
135134connections = [0 ~ lorenz1. x + lorenz2. y + a * γ,
136135 α ~ 2 lorenz1. x + a * γ]
137- @named sys = ODESystem (connections, t, [a, α], [γ], systems = [lorenz1, lorenz2])
138- sys_simplified = structural_simplify (sys)
136+ @mtkbuild sys_simplified = ODESystem (
137+ connections, t, [a, α], [γ], systems = [lorenz1, lorenz2])
138+ sys_simplified = complete (structural_simplify (sys))
139139
140140u0 = [lorenz1. x => 1.0 ,
141141 lorenz1. y => 0.0 ,
@@ -185,7 +185,7 @@ step!(integrator, 100.0, true)
185185eqs = [D (q[1 ]) ~ 2 q[1 ]
186186 D (q[2 ]) ~ 2.0 ]
187187@named sys2 = ODESystem (eqs, t, [q... ], [])
188- sys2_simplified = structural_simplify (sys2)
188+ sys2_simplified = complete ( structural_simplify (sys2) )
189189prob2 = ODEProblem (sys2, [], (0.0 , 5.0 ))
190190integrator2 = init (prob2, Tsit5 ())
191191
@@ -198,7 +198,7 @@ integrator2 = init(prob2, Tsit5())
198198 @variables u (t)
199199 eqs = [D (u) ~ u]
200200
201- @named sys2 = ODESystem (eqs)
201+ @mtkbuild sys2 = ODESystem (eqs, t )
202202
203203 tspan = (0.0 , 5.0 )
204204
@@ -327,13 +327,12 @@ plot(sol,idxs=(t,α))
327327=#
328328
329329using LinearAlgebra
330- @variables t
331330sts = @variables x (t)[1 : 3 ]= [1 , 2 , 3.0 ] y (t)= 1.0
332331ps = @parameters p[1 : 3 ] = [1 , 2 , 3 ]
333332D = Differential (t)
334333eqs = [collect (D .(x) .~ x)
335334 D (y) ~ norm (x) * y - x[1 ]]
336- @named sys = ODESystem (eqs, t, [sts... ;], [ps... ;])
335+ @mtkbuild sys = ODESystem (eqs, t, [sts... ;], [ps... ;])
337336prob = ODEProblem (sys, [], (0 , 1.0 ))
338337integrator = init (prob, Tsit5 (), save_everystep = false )
339338@test integrator[x] isa Vector{Float64}
0 commit comments