@@ -16,8 +16,9 @@ const z0 = NPZ.npzread(joinpath(data_dir, "ic.npy"))
16
16
const Yk_test = NPZ. npzread (joinpath (data_dir, " Yk.npy" ))
17
17
const full_test = NPZ. npzread (joinpath (data_dir, " full.npy" ))
18
18
const balanced_test = NPZ. npzread (joinpath (data_dir, " balanced.npy" ))
19
- const dp5_test = NPZ. npzread (joinpath (data_dir, " dp5.npy" ))
20
- const tp8_test = NPZ. npzread (joinpath (data_dir, " tsitpap8.npy" ))
19
+ const dp5_test = NPZ. npzread (joinpath (data_dir, " dp5_full.npy" ))
20
+ const tp8_test = NPZ. npzread (joinpath (data_dir, " tsitpap8_full.npy" ))
21
+ const bal_test = NPZ. npzread (joinpath (data_dir, " dp5_bal.npy" ))
21
22
22
23
# ###############################################################################
23
24
# unit testing #################################################################
@@ -37,26 +38,40 @@ println("")
37
38
# ###############################################################################
38
39
# integration testing ##########################################################
39
40
# ###############################################################################
40
- const T = 4
41
- pb = DE. ODEProblem (full, z0, (0.0 , T), l96)
41
+ const T = 1.0
42
+ const dtmax = 1e-4
43
+ const saveat = 1e-2
44
+ pb_full = DE. ODEProblem (full, z0, (0.0 , T), l96)
45
+ pb_bal = DE. ODEProblem (balanced, z0[1 : l96. K], (0.0 , T), l96)
42
46
47
+ # full, DP5
43
48
print (rpad (" (full, DP5)" , RPAD))
44
49
elapsed_dp5 = @elapsed begin
45
- sol_dp5 = DE. solve (pb , DE. DP5 (), reltol = 1e-5 , abstol = 1e-9 , saveat= 0.1 )
50
+ sol_dp5 = DE. solve (pb_full , DE. DP5 (), dtmax = dtmax , saveat = saveat )
46
51
end
47
52
println (" steps:" , lpad (length (sol_dp5. t), LPAD_INTEGER),
48
53
" \t elapsed:" , lpad (elapsed_dp5, LPAD_FLOAT))
49
54
55
+ # full, TsitPap8
50
56
print (rpad (" (full, TsitPap8)" , RPAD))
51
57
elapsed_tp8 = @elapsed begin
52
- sol_tp8 = DE. solve (pb , DE. TsitPap8 (), reltol = 1e-5 , abstol = 1e-9 , saveat= 0.1 )
58
+ sol_tp8 = DE. solve (pb_full , DE. TsitPap8 (), dtmax = dtmax , saveat = saveat )
53
59
end
54
60
println (" steps:" , lpad (length (sol_tp8. t), LPAD_INTEGER),
55
61
" \t elapsed:" , lpad (elapsed_tp8, LPAD_FLOAT))
56
62
63
+ # balanced, DP5
64
+ print (rpad (" (balanced, DP5)" , RPAD))
65
+ elapsed_bal = @elapsed begin
66
+ sol_bal = DE. solve (pb_bal, DE. DP5 (), dtmax = dtmax, saveat = saveat)
67
+ end
68
+ println (" steps:" , lpad (length (sol_bal. t), LPAD_INTEGER),
69
+ " \t elapsed:" , lpad (elapsed_bal, LPAD_FLOAT))
70
+
57
71
@testset " integration testing" begin
58
- @test isapprox (sol_dp5[:,1 : end ], dp5_test, atol= 5e-8 )
59
- @test isapprox (sol_tp8[:,1 : end ], tp8_test, atol= 5e-8 )
72
+ @test isapprox (sol_dp5[:,1 : end ], dp5_test, atol= 1e-6 )
73
+ @test isapprox (sol_tp8[:,1 : end ], tp8_test, atol= 1e-6 )
74
+ @test isapprox (sol_bal[:,1 : end ], bal_test, atol= 1e-6 )
60
75
end
61
76
println (" " )
62
77
0 commit comments