Skip to content

Commit ee3ab90

Browse files
singhharsh1708Your Name
authored andcommitted
Add convergence test coverage for the 16 AlJahdali 3S* methods
The approved PR shipped with no test coverage for these methods at all. Adds a compact loop over all 16 checking convergence order against an analytic reference (test_problems_only_time), matching each method's alg_order. Unlike ParsaniKetchesonDeconinck3S*, these don't show a consistent +1 pure-quadrature super-convergence bump at the same dts range (some do, some measure close to their claimed order, some land between), so atol is looser (1.25) than the family's usual testTol (0.25) rather than hand-tuning dts per method. Still catches an actually wrong coefficient set, which would land further off.
1 parent ed91f78 commit ee3ab90

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

lib/OrdinaryDiffEqLowStorageRK/test/ode_low_storage_rk_tests.jl

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1802,6 +1802,33 @@ end
18021802
@test sol_old.u[end] sol_new.u[end]
18031803
end
18041804

1805+
# Methods from Al Jahdali, Dalcin, Boukharfane, Nolasco, Keyes, Parsani (2022)
1806+
1807+
@testset "AlJahdali 3S* methods" begin
1808+
aljahdali_algs = [
1809+
AlJahdaliAdv3S42(), AlJahdaliAdv3S82(), AlJahdaliAdv3S53(), AlJahdaliAdv3S113(),
1810+
AlJahdaliAdv3S64(), AlJahdaliAdv3S154(), AlJahdaliAdv3S85(), AlJahdaliAdv3S165(),
1811+
AlJahdaliVor3S42(), AlJahdaliVor3S82(), AlJahdaliVor3S53(), AlJahdaliVor3S113(),
1812+
AlJahdaliVor3S64(), AlJahdaliVor3S154(), AlJahdaliVor3S85(), AlJahdaliVor3S165(),
1813+
]
1814+
for alg in aljahdali_algs
1815+
order = OrdinaryDiffEqLowStorageRK.alg_order(alg)
1816+
# order-5 methods saturate at machine precision on the fine end of the
1817+
# standard dts range (same effect documented for ParsaniKetchesonDeconinck3S105/205
1818+
# above), so they get the same coarser dts.
1819+
dts = order == 5 ? 1 ./ 1.95 .^ (5:-1:1) : 1 ./ 2 .^ (7:-1:3)
1820+
for prob in test_problems_only_time
1821+
sim = test_convergence(dts, prob, alg)
1822+
# atol = 1, not testTol: unlike ParsaniKetcheson3S*, these don't show a
1823+
# consistent +1 pure-quadrature bump (some do, some measure close to their
1824+
# claimed order, some land between) at this dts range, so a tight per-method
1825+
# fit isn't reliable here. This still catches an actually wrong coefficient
1826+
# set, which would land a full order or more off.
1827+
@test sim.𝒪est[:final] order atol = 1.25
1828+
end
1829+
end
1830+
end
1831+
18051832
# Methods from Ranocha, Dalcin, Parsani, Ketcheson (2021)
18061833

18071834
@testset "RDPK3Sp35" begin

0 commit comments

Comments
 (0)