diff --git a/CHANGELOG.md b/CHANGELOG.md index 32d2e09f9f4c8..dd100eb8d3e56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ ## Current develop ### Added (new features/APIs/variables/...) +- [[PR 1353]](https://github.com/parthenon-hpc-lab/parthenon/pull/1353) RK34 low storage 3rd order 4 stage SSP integrator with CFL <= 2 from Spiteri unit test added + & Ruuth 2002, SIAM Journal on Numerical Analysis, 40(2):469–491 - [[PR 1337]](https://github.com/parthenon-hpc-lab/parthenon/pull/1337) Add task list based timing capabilities - [[PR 1331]](https://github.com/parthenon-hpc-lab/parthenon/pull/1331) Add control over whether to include/exclude an output on final signal - [[PR 1330]](https://github.com/parthenon-hpc-lab/parthenon/pull/1330) Add userspace mechanisms to control number of comm buffers allocated diff --git a/tst/unit/test_unit_integrators.cpp b/tst/unit/test_unit_integrators.cpp index 834526d455036..44674b30faa1b 100644 --- a/tst/unit/test_unit_integrators.cpp +++ b/tst/unit/test_unit_integrators.cpp @@ -189,6 +189,18 @@ TEST_CASE("Low storage integrator", "[StagedIntegrator]") { REQUIRE(std::abs(u[1] - ufinal[1]) <= 1e-2); } } + WHEN("We integrate with LowStorage rk34") { + // still accurate with large timestep + constexpr Real dt = 1e-2; + auto integrator = MakeIntegrator("rk34"); + State_t u; + GetInitialData(u); + Integrate(integrator, Step2SStar, tf, dt, u); + THEN("The final state doesn't differ too much from the true solution") { + REQUIRE(std::abs(u[0] - ufinal[0]) <= 1e-2); + REQUIRE(std::abs(u[1] - ufinal[1]) <= 1e-2); + } + } WHEN("We integrate with LowStorage rk4") { // still accurate with large timestep constexpr Real dt = 1e-2;