From dd4c09837116570d8cbebb00b99d5260eb5acf6e Mon Sep 17 00:00:00 2001 From: Timothy Smith Date: Wed, 17 Jul 2019 19:16:30 +0200 Subject: [PATCH] Revert "Merge branch 'revert-0f45a837' into 'consistent-part-test'" This reverts merge request !24 --- WENO.F90 | 1 + test.py | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) diff --git a/WENO.F90 b/WENO.F90 index f829dfe..200d3a9 100644 --- a/WENO.F90 +++ b/WENO.F90 @@ -688,6 +688,7 @@ subroutine consistent_part(nvars, generalized_fluxes, consistent) consistent(v) = generalized_fluxes(v,-2) - 8*generalized_fluxes(v,-1) & + 37*generalized_fluxes(v,0) + 37*generalized_fluxes(v,1) & - 8*generalized_fluxes(v,2) + generalized_fluxes(v,3) + consistent(v) = consistent(v)/60.0 end do end subroutine diff --git a/test.py b/test.py index 79b1b7c..878e48c 100644 --- a/test.py +++ b/test.py @@ -100,6 +100,96 @@ def test_consistent_part_uniform_grid( u.compare_arrays(consistent_dev.get(), consistent_expected) +@pytest.mark.xfail +@pytest.mark.parametrize(("char_fluxes_str,combined_metric," + "R_str,dissipation_expected_str"), [ + (("1.09071563 1.23015152 1.23015152 7.52305259 0.232956271," + "0.467376796 -0.6627417 -0.6627417 1.47953026 0.312527304"), + 1.0, + ("1 0 0 0.45781246 0.45781246," + "1.58578644 0 0 1.43309957 0.0188860081," + "1.58578644 1.41421356 0 0.725992789 0.725992789," + "1.58578644 0 1.41421356 0.725992789 0.725992789," + "3.77207794 2.24264069 2.24264069 5.57860029 3.3359596"), + "1.67685514 4.82397437 3.99761177 3.99761177 22.1451964"), + (("0.0672231577 0.248528137 0.248528137 0.374562227 0.107250611," + "0.168354897 -0.0585786438 -0.0585786438 0.306026299 0.727493464"), + 1.0, + ("1 0 0 0.45781246 0.45781246," + "-1.58578644 0 0 -0.0188860081 -1.43309957," + "-1.58578644 1.41421356 0 -0.725992789 -0.725992789," + "-1.58578644 0 1.41421356 -0.725992789 -0.725992789," + "3.77207794 -2.24264069 -2.24264069 3.3359596 5.57860029"), + "-0.17685508 0.523974175 0.497611669 0.497611669 -2.49519635") + ]) +def test_dissipation_part_pos_uniform_grid( + ctx_factory, char_fluxes_str, combined_metric, R_str, + dissipation_expected_str): + prg = u.get_weno_program_with_root_kernel("dissipation_part_pos") + queue = u.get_queue(ctx_factory) + + nvars = 5 + + char_fluxes = u.expand_to_6( + u.transposed_array_from_string(char_fluxes_str)) + R = u.array_from_string(R_str) + dissipation_dev = u.empty_array_on_device(queue, nvars) + + prg(queue, nvars=nvars, + characteristic_fluxes=char_fluxes, + combined_frozen_metrics=combined_metric, + R=R, + dissipation_pos=dissipation_dev) + + dissipation_expected = u.array_from_string(dissipation_expected_str) + u.compare_arrays(dissipation_dev.get(), dissipation_expected) + + +@pytest.mark.xfail +@pytest.mark.parametrize(("char_fluxes_str,combined_metric," + "R_str,dissipation_expected_str"), [ + (("-0.168354897 -0.0585786438 -0.0585786438 -0.727493464 -0.306026299," + "-0.0672231577 0.248528137 0.248528137 -0.107250611 -0.374562227"), + 1.0, + ("1 0 0 0.45781246 0.45781246," + "1.58578644 0 0 1.43309957 0.0188860081," + "1.58578644 1.41421356 0 0.725992789 0.725992789," + "1.58578644 0 1.41421356 0.725992789 0.725992789," + "3.77207794 2.24264069 2.24264069 5.57860029 3.3359596"), + "0.17685508 0.523974175 0.497611669 0.497611669 2.49519635"), + (("-0.467376796 -0.6627417 -0.6627417 -0.312527304 -1.47953026," + "-1.09071563 1.23015152 1.23015152 -0.232956271 -7.52305259"), + 1.0, + ("1 0 0 0.45781246 0.45781246," + "-1.58578644 0 0 -0.0188860081 -1.43309957," + "-1.58578644 1.41421356 0 -0.725992789 -0.725992789," + "-1.58578644 0 1.41421356 -0.725992789 -0.725992789," + "3.77207794 -2.24264069 -2.24264069 3.3359596 5.57860029"), + "-1.67685514 4.82397437 3.99761177 3.99761177 -22.1451964") + ]) +def test_dissipation_part_neg_uniform_grid( + ctx_factory, char_fluxes_str, combined_metric, R_str, + dissipation_expected_str): + prg = u.get_weno_program_with_root_kernel("dissipation_part_neg") + queue = u.get_queue(ctx_factory) + + nvars = 5 + + char_fluxes = u.expand_to_6( + u.transposed_array_from_string(char_fluxes_str)) + R = u.array_from_string(R_str) + dissipation_dev = u.empty_array_on_device(queue, nvars) + + prg(queue, nvars=nvars, + characteristic_fluxes=char_fluxes, + combined_frozen_metrics=combined_metric, + R=R, + dissipation_neg=dissipation_dev) + + dissipation_expected = u.array_from_string(dissipation_expected_str) + u.compare_arrays(dissipation_dev.get(), dissipation_expected) + + @pytest.mark.slow @pytest.mark.parametrize(("states_str,fluxes_str,R_inv_str,wavespeeds_str," "fluxes_pos_expected_str,fluxes_neg_expected_str"), [ -- GitLab