Skip to content

Commit 32aeac6

Browse files
committed
update master
1 parent 2fe7cd9 commit 32aeac6

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed

test/jumpsystem.jl

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ end
301301
# basic VariableRateJump test
302302
let
303303
N = 1000 # number of simulations for testing solve accuracy
304-
Random.seed!(rng, 1111)
304+
Random.seed!(rng, 1111)
305305
@variables A(t) B(t) C(t)
306306
@parameters k
307307
vrj = VariableRateJump(k * (sin(t) + 1), [A ~ A + 1, C ~ C + 2])
@@ -427,20 +427,34 @@ end
427427
let
428428
@variables X(t) Y(t)
429429
@parameters k1 k2
430-
rate1 = k1 * X
431-
affect1! = [X ~ X - 1]
432-
rate2 = k1
433-
affect2! = [Y ~ Y + 1]
430+
vrj1 = VariableRateJump(k1 * X, [X ~ X - 1])
431+
vrj2 = VariableRateJump(k2, [Y ~ Y + 1])
434432
eqs = [D(X) ~ k2, D(Y) ~ -k2/100*Y]
435-
vrj1 = VariableRateJump(rate1, affect1!)
436-
vrj2 = VariableRateJump(rate2, affect2!)
437433
@named jsys = JumpSystem([vrj1, vrj2, eqs[1], eqs[2]], t, [X, Y], [k1, k2])
438434
jsys = complete(jsys)
439-
u0 = [X => 0.0, Y => 0.0]
440-
p = [k1 => 1.0, k2 => 20.0]
435+
X0 = 0.0; Y0 = 0.0
436+
u0 = [X => X0, Y => Y0]
437+
k1val = 1.0; k2val = 20.0
438+
p = [k1 => k1val, k2 => k2val]
441439
tspan = (0.0, 20.0)
442440
oprob = ODEProblem(jsys, u0, tspan, p)
443441
jprob = JumpProblem(jsys, oprob; rng)
444-
sol = solve(jprob, Tsit5())
442+
443+
times = range(0.0, 20.0, length = 100)
444+
Nsims = 2000
445+
X = zeros(length(times))
446+
Y = similar(X)
447+
for n in 1:Nsims
448+
sol = solve(jprob, Tsit5())
449+
X .+= Array(sol(times; idxs = X))
450+
Y .+= Array(sol(times; idxs = Y))
451+
end
452+
X ./= Nsims; Y ./= Nsims;
453+
454+
Xact(t) = X0 * exp(-k1val * t) + (k2val / k1val) * (1 - exp(-k1val * t))
455+
Yact(t) = Y0 * exp(-k2val/100 * t) + (k1 / (k2val/100)) * (1 - exp(-k2val/100 * t))
456+
457+
@test all(abs.(X .- Xact.(times)) .<= 0.05 .* X)
458+
@test all(abs.(Y .- Yact.(times)) .<= 0.05 .* Y)
445459

446460
end

0 commit comments

Comments
 (0)