diff --git a/test/test_grudge.py b/test/test_grudge.py index d138cc35363fce034cd1226c80f879586e5d777e..25707b217fed39acb7956e8a9ab6aefaccf9d358 100644 --- a/test/test_grudge.py +++ b/test/test_grudge.py @@ -703,6 +703,7 @@ def test_surface_divergence_theorem(ctx_factory, mesh_name, visualize=False): ("disk", [0.1, 0.05]), ("rect2", [4, 8]), ("rect3", [4, 6]), + ("warped2", [4, 8]), ]) @pytest.mark.parametrize("op_type", ["strong", "weak"]) @pytest.mark.parametrize("flux_type", ["central"]) @@ -746,11 +747,22 @@ def test_convergence_advec(ctx_factory, mesh_name, mesh_pars, op_type, flux_type dim = 2 dt_factor = 4 elif mesh_name.startswith("rect"): - dim = int(mesh_name[4:]) + dim = int(mesh_name[-1:]) from meshmode.mesh.generation import generate_regular_rect_mesh mesh = generate_regular_rect_mesh(a=(-0.5,)*dim, b=(0.5,)*dim, n=(mesh_par,)*dim, order=4) + if dim == 2: + dt_factor = 4 + elif dim == 3: + dt_factor = 2 + else: + raise ValueError("dt_factor not known for %dd" % dim) + elif mesh_name.startswith("warped"): + dim = int(mesh_name[-1:]) + from meshmode.mesh.generation import generate_warped_rect_mesh + mesh = generate_warped_rect_mesh(dim, order=order, n=mesh_par) + if dim == 2: dt_factor = 4 elif dim == 3: @@ -831,7 +843,11 @@ def test_convergence_advec(ctx_factory, mesh_name, mesh_pars, op_type, flux_type abscissa_label="h", error_label="L2 Error")) - assert eoc_rec.order_estimate() > order + if mesh_name.startswith("warped"): + # NOTE: curvilinear meshes are hard + assert eoc_rec.order_estimate() > order - 0.25 + else: + assert eoc_rec.order_estimate() > order # }}}