@@ -427,34 +427,32 @@ end
427427let 
428428    @variables  X (t) Y (t)
429429    @parameters  k1 k2
430-     vrj1 =  VariableRateJump (k1 *  X, [X ~  X -  1 ])
431-     vrj2 =  VariableRateJump (k2 , [Y ~  Y +  1 ])
430+     vrj1 =  VariableRateJump (k1 *  X, [X ~  X -  1 ]; save_positions  =  ( false ,  false ) )
431+     vrj2 =  VariableRateJump (k1 , [Y ~  Y +  1 ]; save_positions  =  ( false ,  false ) )
432432    eqs =  [D (X) ~  k2, D (Y) ~  - k2/ 100 * Y]
433433    @named  jsys =  JumpSystem ([vrj1, vrj2, eqs[1 ], eqs[2 ]], t, [X, Y], [k1, k2])
434434    jsys =  complete (jsys)
435435    X0 =  0.0 ; Y0 =  0.0 
436436    u0 =  [X =>  X0, Y =>  Y0]
437437    k1val =  1.0 ; k2val =  20.0 
438438    p =  [k1 =>  k1val, k2 =>  k2val]
439-     tspan =  (0.0 , 20 .0 )
439+     tspan =  (0.0 , 10 .0 )
440440    oprob =  ODEProblem (jsys, u0, tspan, p)
441-     jprob =  JumpProblem (jsys, oprob; rng)
441+     jprob =  JumpProblem (jsys, oprob; rng, save_positions  =  ( false ,  false ) )
442442
443-     times =  range (0.0 , 20.0 , length =  100 )
443+     times =  range (0.0 , tspan[ 2 ] , length =  100 )
444444    Nsims =  2000 
445-     X  =  zeros (length (times))
446-     Y  =  similar (X )
445+     Xv  =  zeros (length (times))
446+     Yv  =  copy (Xv )
447447    for  n in  1 : Nsims
448-         sol =  solve (jprob, Tsit5 ())
449-         X  .+ =  Array ( sol (times; idxs =  X) )
450-         Y  .+ =  Array ( sol (times; idxs =  Y) )
448+         sol =  solve (jprob, Tsit5 (); saveat  =  times )
449+         Xv  .+ =  sol[ 1 ,:]  # sol (times; idxs = X)
450+         Yv  .+ =  sol[ 2 ,:]  # sol (times; idxs = Y)
451451    end 
452-     X  ./=  Nsims; Y  ./=  Nsims;
452+     Xv  ./=  Nsims; Yv  ./=  Nsims;
453453
454454    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)
459- 
455+     Yact (t) =  Y0 *  exp (- k2val/ 100  *  t) +  (k1val /  (k2val/ 100 )) *  (1  -  exp (- k2val/ 100  *  t))
456+     @test  all (abs .(Xv .-  Xact .(times)) .<=  0.05  .*  Xv)
457+     @test  all (abs .(Yv .-  Yact .(times)) .<=  0.05  .*  Yv)
460458end 
0 commit comments