11using ModelingToolkit, Test, OrdinaryDiffEq
22
33@parameters t
4+ @constants h = 1 zr = 0
45@variables u (t)
56D = Differential (t)
67
@@ -16,19 +17,19 @@ i4 = findfirst(==(4.0), sol[:t])
1617@test sol. u[i4 + 1 ][1 ] > 10.0
1718
1819# callback
19- cb = ModelingToolkit. SymbolicDiscreteCallback (t == 0 ,
20+ cb = ModelingToolkit. SymbolicDiscreteCallback (t == zr ,
2021 (f = affect1!, sts = [], pars = [],
2122 ctx = [1 ]))
22- cb1 = ModelingToolkit. SymbolicDiscreteCallback (t == 0 , (affect1!, [], [], [1 ]))
23+ cb1 = ModelingToolkit. SymbolicDiscreteCallback (t == zr , (affect1!, [], [], [1 ]))
2324@test ModelingToolkit. affects (cb) isa ModelingToolkit. FunctionalAffect
2425@test cb == cb1
2526@test ModelingToolkit. SymbolicDiscreteCallback (cb) === cb # passthrough
2627@test hash (cb) == hash (cb1)
2728
28- cb = ModelingToolkit. SymbolicContinuousCallback ([t ~ 0 ],
29+ cb = ModelingToolkit. SymbolicContinuousCallback ([t ~ zr ],
2930 (f = affect1!, sts = [], pars = [],
3031 ctx = [1 ]))
31- cb1 = ModelingToolkit. SymbolicContinuousCallback ([t ~ 0 ], (affect1!, [], [], [1 ]))
32+ cb1 = ModelingToolkit. SymbolicContinuousCallback ([t ~ zr ], (affect1!, [], [], [1 ]))
3233@test cb == cb1
3334@test ModelingToolkit. SymbolicContinuousCallback (cb) === cb # passthrough
3435@test hash (cb) == hash (cb1)
@@ -48,7 +49,7 @@ de = de[1]
4849@test ModelingToolkit. has_functional_affect (de)
4950
5051sys2 = ODESystem (eqs, t, [u], [], name = :sys ,
51- discrete_events = [[4.0 ] => [u ~ - u]])
52+ discrete_events = [[4.0 ] => [u ~ - u * h ]])
5253@test ! ModelingToolkit. has_functional_affect (ModelingToolkit. get_discrete_events (sys2)[1 ])
5354
5455# context
@@ -121,7 +122,7 @@ i8 = findfirst(==(8.0), sol[:t])
121122ctx = [0 ]
122123function affect4! (integ, u, p, ctx)
123124 ctx[1 ] += 1
124- @test u. resistor₊v == 1
125+ @test u. resistor₊v == h
125126end
126127s1 = compose (ODESystem (Equation[], t, [], [], name = :s1 ,
127128 discrete_events = 1.0 => (affect4!, [resistor. v], [], ctx)),
@@ -268,7 +269,7 @@ function bb_affect!(integ, u, p, ctx)
268269end
269270
270271@named bb_model = ODESystem (bb_eqs, t, sts, par,
271- continuous_events = [[y ~ 0 ] => (bb_affect!, [v], [], nothing )])
272+ continuous_events = [[y ~ zr ] => (bb_affect!, [v], [], nothing )])
272273
273274bb_sys = structural_simplify (bb_model)
274275@test ModelingToolkit. affects (ModelingToolkit. continuous_events (bb_sys)) isa
0 commit comments