|
425 | 425 |
|
426 | 426 | # PDMP test
|
427 | 427 | let
|
428 |
| - Random.seed!(rng, 1111) |
429 |
| - Random.seed!(Random.default_rng(), 1111) |
| 428 | + seed = 1111 |
| 429 | + Random.seed!(rng, seed) |
430 | 430 | @variables X(t) Y(t)
|
431 | 431 | @parameters k1 k2
|
432 | 432 | vrj1 = VariableRateJump(k1 * X, [X ~ X - 1]; save_positions = (false, false))
|
|
449 | 449 | Xv = zeros(length(times))
|
450 | 450 | Yv = zeros(length(times))
|
451 | 451 | for n in 1:Nsims
|
452 |
| - sol = solve(jprob, Tsit5(); saveat = times) |
| 452 | + sol = solve(jprob, Tsit5(); saveat = times, seed) |
453 | 453 | Xv .+= sol[1, :]
|
454 | 454 | Yv .+= sol[2, :]
|
| 455 | + seed += 1 |
455 | 456 | end
|
456 | 457 | Xv ./= Nsims
|
457 | 458 | Yv ./= Nsims
|
|
466 | 467 |
|
467 | 468 | # that mixes ODEs and jump types, and then contin events
|
468 | 469 | let
|
469 |
| - Random.seed!(rng, 1111) |
470 |
| - Random.seed!(Random.default_rng(), 1111) |
| 470 | + seed = 1111 |
| 471 | + Random.seed!(rng, seed) |
471 | 472 | @variables X(t) Y(t)
|
472 | 473 | @parameters α β
|
473 | 474 | vrj = VariableRateJump(β * X, [X ~ X - 1]; save_positions = (false, false))
|
|
487 | 488 | Xv = zeros(length(times))
|
488 | 489 | Yv = zeros(length(times))
|
489 | 490 | for n in 1:Nsims
|
490 |
| - sol = solve(jprob, Tsit5(); saveat = times) |
| 491 | + sol = solve(jprob, Tsit5(); saveat = times, seed) |
491 | 492 | Xv .+= sol[1, :]
|
492 | 493 | Yv .+= sol[2, :]
|
| 494 | + seed += 1 |
493 | 495 | end
|
494 | 496 | Xv ./= Nsims
|
495 | 497 | Yv ./= Nsims
|
|
523 | 525 | Xsamp = 0.0
|
524 | 526 | Nsims = 4000
|
525 | 527 | for n in 1:Nsims
|
526 |
| - sol = solve(jprob, Tsit5(), saveat = tspan[2]) |
| 528 | + sol = solve(jprob, Tsit5(), saveat = tspan[2], seed) |
527 | 529 | @test sol.retcode == ReturnCode.Terminated
|
528 | 530 | Xsamp += sol[1, end]
|
| 531 | + seed += 1 |
529 | 532 | end
|
530 | 533 | Xsamp /= Nsims
|
531 | 534 | @test abs(Xsamp - Xf(0.2, p) < 0.05 * Xf(0.2, p))
|
|
0 commit comments