11using ModelingToolkit
22using Test
3- using ModelingToolkit: t_nounits as t, D_nounits as D
3+ using ModelingToolkit: t_nounits as t, D_nounits as D, SymbolicDiscreteCallback, SymbolicContinuousCallback
44using OrdinaryDiffEq
55using StochasticDiffEq
66using JumpProcesses
@@ -10,14 +10,14 @@ using SymbolicIndexingInterface
1010using NonlinearSolve
1111
1212@testset " ODESystem with callbacks" begin
13- @parameters p1= 1.0 p2
13+ @parameters p1 (t) = 1.0 p2
1414 @variables x (t)
15- cb1 = [x ~ 2.0 ] => [p1 ~ 2.0 ] # triggers at t=-2+√6
15+ cb1 = SymbolicContinuousCallback ( [x ~ 2.0 ] => [p1 ~ 2.0 ], discrete_parameters = [p1]) # triggers at t=-2+√6
1616 function affect1! (integ, u, p, ctx)
1717 integ. ps[p[1 ]] = integ. ps[p[2 ]]
1818 end
1919 cb2 = [x ~ 4.0 ] => (affect1!, [], [p1, p2], [p1]) # triggers at t=-2+√7
20- cb3 = [1.0 ] => [p1 ~ 5.0 ]
20+ cb3 = SymbolicDiscreteCallback ( [1.0 ] => [p1 ~ 5.0 ], discrete_parameters = [p1])
2121
2222 @mtkbuild sys = ODESystem (
2323 [D (x) ~ p1 * t + p2],
203203@testset " Clock system" begin
204204 dt = 0.1
205205 @variables x (t) y (t) u (t) yd (t) ud (t) r (t) z (t)
206- @parameters kp kq
206+ @parameters kp (t) kq
207207 d = Clock (dt)
208208 k = ShiftIndex (d)
209209
225225 @test_nowarn solve (prob, Tsit5 ())
226226
227227 @mtkbuild sys = ODESystem (eqs, t; parameter_dependencies = [kq => 2 kp],
228- discrete_events = [[0.5 ] => [kp ~ 2.0 ]])
228+ discrete_events = [SymbolicDiscreteCallback ( [0.5 ] => [kp ~ 2.0 ], discrete_parameters = [kp]) ])
229229 prob = ODEProblem (sys, [x => 0.0 , y => 0.0 ], (0.0 , Tf),
230230 [kp => 1.0 ; z (k - 1 ) => 3.0 ; yd (k - 1 ) => 0.0 ; z (k - 2 ) => 4.0 ;
231231 yd (k - 2 ) => 2.0 ])
245245end
246246
247247@testset " SDESystem" begin
248- @parameters σ ρ β
248+ @parameters σ (t) ρ β
249249 @variables x (t) y (t) z (t)
250250
251251 eqs = [D (x) ~ σ * (y - x),
269269
270270 @named sys = ODESystem (eqs, t)
271271 @named sdesys = SDESystem (sys, noiseeqs; parameter_dependencies = [ρ => 2 σ],
272- discrete_events = [[10.0 ] => [σ ~ 15.0 ]])
272+ discrete_events = [SymbolicDiscreteCallback ( [10.0 ] => [σ ~ 15.0 ], discrete_parameters = [σ]) ])
273273 sdesys = complete (sdesys)
274274 prob = SDEProblem (
275275 sdesys, [x => 1.0 , y => 0.0 , z => 0.0 ], (0.0 , 100.0 ), [σ => 10.0 , β => 2.33 ])
283283
284284@testset " JumpSystem" begin
285285 rng = StableRNG (12345 )
286- @parameters β γ
286+ @parameters β γ (t)
287287 @constants h = 1
288288 @variables S (t) I (t) R (t)
289289 rate₁ = β * S * I * h
308308
309309 @named js2 = JumpSystem (
310310 [j₁, j₃], t, [S, I, R], [γ]; parameter_dependencies = [β => 0.01 γ],
311- discrete_events = [[10.0 ] => [γ ~ 0.02 ]])
311+ discrete_events = [SymbolicDiscreteCallback ( [10.0 ] => [γ ~ 0.02 ], discrete_parameters = [γ]) ])
312312 js2 = complete (js2)
313313 dprob = DiscreteProblem (js2, u₀map, tspan, parammap)
314314 jprob = JumpProblem (js2, dprob, Direct (), save_positions = (false , false ), rng = rng)
0 commit comments