From cbb1ebd60f240180db359cfbe9d5a1e69e9d0e3a Mon Sep 17 00:00:00 2001 From: Felix Koehler Date: Tue, 3 Sep 2024 16:06:54 +0200 Subject: [PATCH] Add a test for the new repeated stepper --- tests/test_repeated_stepper.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 tests/test_repeated_stepper.py diff --git a/tests/test_repeated_stepper.py b/tests/test_repeated_stepper.py new file mode 100644 index 0000000..4e486bc --- /dev/null +++ b/tests/test_repeated_stepper.py @@ -0,0 +1,28 @@ +import jax +import pytest + +import exponax as ex + + +def test_repeated_stepper(): + DOMAIN_EXTENT = 1.0 + NUM_POINTS = 81 + DT = 0.1 + NUM_REPEATS = 10 + + burgers_stepper = ex.stepper.Burgers(1, DOMAIN_EXTENT, NUM_POINTS, DT) + + burgers_stepper_repeated = ex.RepeatedStepper(burgers_stepper, NUM_REPEATS) + + burgers_stepper_repeated_manually = ex.repeat(burgers_stepper, NUM_REPEATS) + + u_0 = ex.ic.RandomTruncatedFourierSeries(1, max_one=True)( + NUM_POINTS, key=jax.random.PRNGKey(0) + ) + + u_final = burgers_stepper_repeated(u_0) + u_final_manually = burgers_stepper_repeated_manually(u_0) + + # Need a looser rel tolerance because Burgers is a decaying phenomenon, + # hence the expected/reference state has low magnitude after 10 steps. + assert u_final == pytest.approx(u_final_manually, rel=1e-3)