|
95 | 95 | end # Rosenbrock methods |
96 | 96 |
|
97 | 97 | @testset "IMEX methods" begin |
| 98 | + @testset "H222" begin |
| 99 | + alg = Theseus.H222() |
| 100 | + order = 2 |
| 101 | + dts = 2.0 .^ (-2:-1:-6) |
| 102 | + errors = compute_errors(ode_split, u_ana, alg, dts) |
| 103 | + eoc = compute_eoc(dts, errors) |
| 104 | + @test isapprox(eoc, order; atol = 0.1) |
| 105 | + end |
| 106 | + |
98 | 107 | @testset "SSP2222" begin |
99 | 108 | alg = Theseus.SSP2222() |
100 | 109 | order = 2 |
|
144 | 153 | # but it is documented to be third-order. |
145 | 154 | end |
146 | 155 |
|
| 156 | + @testset "HT222" begin |
| 157 | + alg = Theseus.HT222() |
| 158 | + order = 2 |
| 159 | + dts = 2.0 .^ (-2:-1:-6) |
| 160 | + errors = compute_errors(ode_split, u_ana, alg, dts) |
| 161 | + eoc = compute_eoc(dts, errors) |
| 162 | + @test isapprox(eoc, order; atol = 0.1) |
| 163 | + end |
| 164 | + |
147 | 165 | @testset "ARS111" begin |
148 | 166 | alg = Theseus.ARS111() |
149 | 167 | order = 1 |
|
164 | 182 | @test isapprox(eoc, order; atol = 0.1) |
165 | 183 | end |
166 | 184 |
|
| 185 | + @testset "ARS233" begin |
| 186 | + alg = Theseus.ARS233() |
| 187 | + order = 3 + 1 # Gaussian quadrature |
| 188 | + dts = 2.0 .^ (-2:-1:-6) |
| 189 | + errors = compute_errors(ode_split, u_ana, alg, dts) |
| 190 | + eoc = compute_eoc(dts, errors) |
| 191 | + @test isapprox(eoc, order; atol = 0.1) |
| 192 | + end |
| 193 | + |
167 | 194 | @testset "ARS443" begin |
168 | 195 | alg = Theseus.ARS443() |
169 | 196 | order = 3 |
|
256 | 283 | end # Rosenbrock methods |
257 | 284 |
|
258 | 285 | @testset "IMEX methods" begin |
| 286 | + @testset "H222" begin |
| 287 | + alg = Theseus.H222() |
| 288 | + order = 2 |
| 289 | + dts = 2.0 .^ (-2:-1:-6) |
| 290 | + errors = compute_errors( |
| 291 | + ode_split, u_ana, alg, dts; |
| 292 | + newton_tol_abs = 1.0e-8 |
| 293 | + ) |
| 294 | + eoc = compute_eoc(dts, errors) |
| 295 | + @test isapprox(eoc, order; atol = 0.1) |
| 296 | + end |
| 297 | + |
259 | 298 | @testset "SSP2222" begin |
260 | 299 | alg = Theseus.SSP2222() |
261 | 300 | order = 2 |
|
318 | 357 | @test isapprox(eoc, order; atol = 0.1) |
319 | 358 | end |
320 | 359 |
|
| 360 | + @testset "HT222" begin |
| 361 | + alg = Theseus.HT222() |
| 362 | + order = 2 |
| 363 | + dts = 2.0 .^ (-2:-1:-6) |
| 364 | + errors = compute_errors( |
| 365 | + ode_split, u_ana, alg, dts; |
| 366 | + newton_tol_abs = 1.0e-8 |
| 367 | + ) |
| 368 | + eoc = compute_eoc(dts, errors) |
| 369 | + @test isapprox(eoc, order; atol = 0.1) |
| 370 | + end |
| 371 | + |
321 | 372 | @testset "ARS111" begin |
322 | 373 | alg = Theseus.ARS111() |
323 | 374 | order = 1 |
|
344 | 395 | @test isapprox(eoc, order; atol = 0.1) |
345 | 396 | end |
346 | 397 |
|
| 398 | + @testset "ARS233" begin |
| 399 | + alg = Theseus.ARS233() |
| 400 | + order = 3 |
| 401 | + dts = 2.0 .^ (-2:-1:-6) |
| 402 | + errors = compute_errors( |
| 403 | + ode_split, u_ana, alg, dts; |
| 404 | + newton_tol_abs = 1.0e-8, |
| 405 | + newton_tol_rel = 1.0e-8 |
| 406 | + ) |
| 407 | + eoc = compute_eoc(dts, errors) |
| 408 | + @test isapprox(eoc, order; atol = 0.1) |
| 409 | + end |
| 410 | + |
347 | 411 | @testset "ARS443" begin |
348 | 412 | alg = Theseus.ARS443() |
349 | 413 | order = 3 |
|
0 commit comments