@@ -36,7 +36,7 @@ h1(z) = z^3-6*z^2+8*z
3636
3737function f1! (du,u,p,t)
3838 @inbounds begin
39- du[1 ] = 1 // 2 * u[1 ]+ sqrt (u[1 ]^ 2 + 1 )
39+ du[1 ] = 5f-1 * u[1 ]+ sqrt (u[1 ]^ 2 + 1 )
4040 end
4141 nothing
4242end
@@ -56,28 +56,29 @@ ensemble_prob1 = EnsembleProblem(prob1;
5656 output_func = output_func,
5757 prob_func = prob_func,
5858 reduction = reduction,
59- u_init= Vector {eltype(prob1.u0)} ([0.0 ])
59+ u_init= Vector {eltype(prob1.u0)} ([0.0 ]),
60+ safetycopy = false
6061 )
6162
6263
6364# prob 2
6465u₀ = [0.1f0 ,0.1f0 ]
6566function f2! (du,u,p,t)
6667 @inbounds begin
67- du[1 ] = 3 // 2 * u[1 ]
68- du[2 ] = 3 // 2 * u[2 ]
68+ du[1 ] = 1.5f-0 * u[1 ]
69+ du[2 ] = 1.5f-0 * u[2 ]
6970 end
7071 nothing
7172end
7273function g2! (du,u,p,t)
7374 @inbounds begin
74- du[1 ] = 1 // 10 * u[1 ]
75- du[2 ] = 1 // 10 * u[2 ]
75+ du[1 ] = 1f-1 * u[1 ]
76+ du[2 ] = 1f-1 * u[2 ]
7677 end
7778 nothing
7879end
7980
80- f_true2 (t) = 1 // 10 * exp (3 // 2 * t) # 1//100*exp(301//100*t)
81+ f_true2 (t) = 1f-1 * exp (1.5f-1 * t) # 1//100*exp(301//100*t)
8182
8283h2 (z) = z # z^2
8384
@@ -86,7 +87,8 @@ ensemble_prob2 = EnsembleProblem(prob2;
8687 output_func = (sol,i) -> (h2 .(sol),false ),
8788 prob_func = prob_func,
8889 reduction = reduction,
89- u_init= Vector {eltype(prob2.u0)} ([0.0 , 0.0 ])
90+ u_init= Vector {eltype(prob2.u0)} ([0.0 , 0.0 ]),
91+ safetycopy = false
9092 )
9193
9294
@@ -109,19 +111,19 @@ seeds = rand(UInt, numtraj)
109111for i in 1 : 2
110112 @show i
111113
112- err1 = weak_error (probs[i],DRI1NM (),numtraj,Int (1e4 ),ftrue[i],tsave,abstol= 1f0 ,reltol= 1f0 , ensemblealg= EnsembleGPUArray ())
114+ err1 = weak_error (probs[i],DRI1NM (),numtraj,Int (1e4 ),ftrue[i],tsave,abstol= 1f0 ,reltol= 1f0 , ensemblealg= EnsembleGPUArray (CUDA . CUDABackend () ))
113115 @show err1
114- # err2 = weak_error(probs[i],DRI1NM(),numtraj,Int(1e4),ftrue[i],tsave,abstol=0.1f0,reltol=0.1f0, ensemblealg=EnsembleGPUArray())
116+ # err2 = weak_error(probs[i],DRI1NM(),numtraj,Int(1e4),ftrue[i],tsave,abstol=0.1f0,reltol=0.1f0, ensemblealg=EnsembleGPUArray(CUDA.CUDABackend() ))
115117 # @show err2
116- err3 = weak_error (probs[i],DRI1NM (),numtraj,Int (1e4 ),ftrue[i],tsave,abstol= 0.01f0 ,reltol= 0.01f0 , ensemblealg= EnsembleGPUArray ())
118+ err3 = weak_error (probs[i],DRI1NM (),numtraj,Int (1e4 ),ftrue[i],tsave,abstol= 0.01f0 ,reltol= 0.01f0 , ensemblealg= EnsembleGPUArray (CUDA . CUDABackend () ))
117119 @show err3
118120 @test err1 > err3
119121 println (" " )
120122end
121123
122124
123125#
124- # sol = @time solve(probs[1],DRI1NM(),EnsembleGPUArray(),
126+ # sol = @time solve(probs[1],DRI1NM(),EnsembleGPUArray(CUDA.CUDABackend() ),
125127# dt=0.001f0,adaptive=false,abstol=0.1f0,reltol=0.1f0,
126128# trajectories=numtraj,batch_size=Int(1e1),
127129# saveat = tsave
0 commit comments