From 57ee513e5a47328b1da79c67f6927a329eb773cd Mon Sep 17 00:00:00 2001 From: Alexandru Fikl Date: Wed, 26 May 2021 10:47:04 -0500 Subject: [PATCH] port tests from deprecated meshmode.array_context --- test/test_array.py | 5 ++--- test/test_discretization.py | 10 +++++----- test/test_firedrake_interop.py | 2 +- test/test_interop.py | 11 +++++------ test/test_mesh.py | 6 +++--- test/test_modal.py | 15 +++++++-------- test/test_partition.py | 13 +++++++------ test/test_refinement.py | 31 +++++++++++++++---------------- test/test_visualization.py | 11 +++++------ 9 files changed, 50 insertions(+), 54 deletions(-) diff --git a/test/test_array.py b/test/test_array.py index 03952207..4e637814 100644 --- a/test/test_array.py +++ b/test/test_array.py @@ -30,6 +30,7 @@ from arraycontext import ( # noqa: F401 as pytest_generate_tests) from arraycontext import ( + thaw, dataclass_array_container, with_container_arithmetic) @@ -80,9 +81,7 @@ def _get_test_containers(actx, ambient_dim=2): b=(+0.5,)*ambient_dim, n=(3,)*ambient_dim, order=1) discr = Discretization(actx, mesh, PolynomialWarpAndBlendGroupFactory(3)) - - from meshmode.array_context import thaw - x = thaw(actx, discr.nodes()[0]) + x = thaw(discr.nodes()[0], actx) # pylint: disable=unexpected-keyword-arg, no-value-for-parameter dataclass_of_dofs = MyContainer( diff --git a/test/test_discretization.py b/test/test_discretization.py index 59b42ba0..f0d97567 100644 --- a/test/test_discretization.py +++ b/test/test_discretization.py @@ -23,17 +23,17 @@ THE SOFTWARE. import numpy as np # import numpy.linalg as la + import meshmode.mesh.generation as mgen from meshmode.discretization import Discretization - -from meshmode.array_context import ( # noqa - pytest_generate_tests_for_pyopencl_array_context - as pytest_generate_tests) - from meshmode.discretization.poly_element import ( InterpolatoryQuadratureSimplexGroupFactory, ) +from arraycontext import ( # noqa: F401 + pytest_generate_tests_for_pyopencl_array_context + as pytest_generate_tests) + def test_discr_nodes_caching(actx_factory): actx = actx_factory() diff --git a/test/test_firedrake_interop.py b/test/test_firedrake_interop.py index e971ec62..c126bdb3 100644 --- a/test/test_firedrake_interop.py +++ b/test/test_firedrake_interop.py @@ -27,7 +27,7 @@ from pyopencl.tools import ( # noqa pytest_generate_tests_for_pyopencl as pytest_generate_tests) -from meshmode.array_context import PyOpenCLArrayContext +from arraycontext import PyOpenCLArrayContext from meshmode.discretization import Discretization from meshmode.discretization.poly_element import ( diff --git a/test/test_interop.py b/test/test_interop.py index 3e7d5a19..8e716323 100644 --- a/test/test_interop.py +++ b/test/test_interop.py @@ -24,12 +24,11 @@ THE SOFTWARE. import numpy as np import pytest -import meshmode # noqa: F401 -from meshmode.array_context import ( # noqa +from arraycontext import PyOpenCLArrayContext, thaw, _acf # noqa: F401 +from arraycontext import ( # noqa: F401 pytest_generate_tests_for_pyopencl_array_context - as pytest_generate_tests, - PyOpenCLArrayContext) -from meshmode.dof_array import thaw, flat_norm + as pytest_generate_tests) +from meshmode.dof_array import flat_norm import logging logger = logging.getLogger(__name__) @@ -60,7 +59,7 @@ def test_nodal_dg_interop(actx_factory, dim): err = flat_norm(x_ax-discr.nodes()[ax], np.inf) assert err < 1e-15 - n0 = thaw(actx, discr.nodes()[0]) + n0 = thaw(discr.nodes()[0], actx) ndgctx.push_dof_array("n0", n0) n0_2 = ndgctx.pull_dof_array(actx, "n0") diff --git a/test/test_mesh.py b/test/test_mesh.py index 357fe067..b82092c0 100644 --- a/test/test_mesh.py +++ b/test/test_mesh.py @@ -24,8 +24,9 @@ from functools import partial import numpy as np import numpy.linalg as la import pytest -import meshmode # noqa: F401 -from meshmode.array_context import ( # noqa + +from arraycontext import _acf # noqa: F401 +from arraycontext import ( # noqa: F401 pytest_generate_tests_for_pyopencl_array_context as pytest_generate_tests) @@ -35,7 +36,6 @@ from meshmode.discretization.poly_element import ( LegendreGaussLobattoTensorProductGroupFactory, ) import meshmode.mesh.generation as mgen -from meshmode import _acf # noqa: F401 import logging diff --git a/test/test_modal.py b/test/test_modal.py index 344ae4d4..6b470b7a 100644 --- a/test/test_modal.py +++ b/test/test_modal.py @@ -24,11 +24,12 @@ THE SOFTWARE. from functools import partial import numpy as np -import meshmode # noqa: F401 -from meshmode.array_context import ( # noqa +from arraycontext import thaw, _acf # noqa: F401 +from arraycontext import ( # noqa: F401 pytest_generate_tests_for_pyopencl_array_context as pytest_generate_tests ) + from meshmode.dof_array import DOFArray, flat_norm from meshmode.mesh import ( SimplexElementGroup, @@ -55,8 +56,6 @@ from meshmode.discretization.connection.modal import ( ModalToNodalDiscretizationConnection ) -from meshmode.dof_array import thaw - import meshmode.mesh.generation as mgen import pytest @@ -100,7 +99,7 @@ def test_inverse_modal_connections(actx_factory, nodal_group_factory): modal_disc, nodal_disc ) - x_nodal = thaw(actx, nodal_disc.nodes()[0]) + x_nodal = thaw(nodal_disc.nodes()[0], actx) nodal_f = f(x_nodal) # Map nodal coefficients of f to modal coefficients @@ -142,7 +141,7 @@ def test_modal_coefficients_by_projection(actx_factory, quad_group_factory): def f(x): return 2*actx.np.sin(5*x) - x_nodal = thaw(actx, nodal_disc.nodes()[0]) + x_nodal = thaw(nodal_disc.nodes()[0], actx) nodal_f = f(x_nodal) # Compute modal coefficients we expect to get @@ -208,7 +207,7 @@ def test_quadrature_based_modal_connection_reverse(actx_factory, quad_group_fact def f(x): return 1 + 2*x + 3*x**2 - x_nodal = thaw(actx, nodal_disc.nodes()[0]) + x_nodal = thaw(nodal_disc.nodes()[0], actx) nodal_f = f(x_nodal) # Map nodal coefficients using the quadrature-based projection @@ -273,7 +272,7 @@ def test_modal_truncation(actx_factory, nodal_group_factory, modal_disc, nodal_disc ) - x_nodal = thaw(actx, nodal_disc.nodes()[0]) + x_nodal = thaw(nodal_disc.nodes()[0], actx) nodal_f = f(x_nodal) # Map to modal diff --git a/test/test_partition.py b/test/test_partition.py index ce55b1f9..e56e423b 100644 --- a/test/test_partition.py +++ b/test/test_partition.py @@ -26,9 +26,10 @@ THE SOFTWARE. import numpy as np import pyopencl as cl -from meshmode.dof_array import thaw, flatten, unflatten, flat_norm +from meshmode.dof_array import flatten, unflatten, flat_norm -from meshmode.array_context import ( # noqa +from arraycontext import thaw, _acf # noqa: F401 +from arraycontext import ( # noqa: F401 pytest_generate_tests_for_pyopencl_array_context as pytest_generate_tests) @@ -155,7 +156,7 @@ def test_partition_interpolation(actx_factory, dim, mesh_pars, check_connection(actx, remote_to_local_conn) check_connection(actx, local_to_remote_conn) - true_local_points = f(thaw(actx, local_bdry.nodes()[0])) + true_local_points = f(thaw(local_bdry.nodes()[0], actx)) remote_points = local_to_remote_conn(true_local_points) local_points = remote_to_local_conn(remote_points) @@ -343,7 +344,7 @@ def _test_mpi_boundary_swap(dim, order, num_groups): group_factory = PolynomialWarpAndBlendGroupFactory(order) - from meshmode.array_context import PyOpenCLArrayContext + from arraycontext import PyOpenCLArrayContext cl_ctx = cl.create_some_context() queue = cl.CommandQueue(cl_ctx) actx = PyOpenCLArrayContext(queue) @@ -436,7 +437,7 @@ def _test_data_transfer(mpi_comm, actx, local_bdry_conns, for i_remote_part in connected_parts: conn = remote_to_local_bdry_conns[i_remote_part] bdry_discr = local_bdry_conns[i_remote_part].to_discr - bdry_x = thaw(actx, bdry_discr.nodes()[0]) + bdry_x = thaw(bdry_discr.nodes()[0], actx) true_local_f = f(bdry_x) remote_f = conn(true_local_f) @@ -506,7 +507,7 @@ def _test_data_transfer(mpi_comm, actx, local_bdry_conns, # 7. for i_remote_part in connected_parts: bdry_discr = local_bdry_conns[i_remote_part].to_discr - bdry_x = thaw(actx, bdry_discr.nodes()[0]) + bdry_x = thaw(bdry_discr.nodes()[0], actx) true_local_f = actx.to_numpy(flatten(f(bdry_x))) local_f = local_f_data[i_remote_part] diff --git a/test/test_refinement.py b/test/test_refinement.py index 649a0294..0c033da2 100644 --- a/test/test_refinement.py +++ b/test/test_refinement.py @@ -26,14 +26,12 @@ from functools import partial import numpy as np import pytest -from meshmode import _acf # noqa: F401 -from meshmode.array_context import ( # noqa: F401 +from arraycontext import thaw, _acf # noqa: F401 +from arraycontext import ( # noqa: F401 pytest_generate_tests_for_pyopencl_array_context as pytest_generate_tests) -from meshmode.dof_array import thaw, flat_norm -from meshmode.mesh.generation import ( # noqa: F401 - generate_icosahedron, generate_box_mesh, make_curve_mesh, ellipse) +from meshmode.dof_array import flat_norm from meshmode.mesh.refinement.utils import check_nodal_adj_against_geometry from meshmode.mesh.refinement import Refiner, RefinerWithoutAdjacency import meshmode.mesh.generation as mgen @@ -101,15 +99,15 @@ def uniform_refine_flags(mesh): ("3_to_1_ellipse_unif", partial( - make_curve_mesh, - partial(ellipse, 3), + mgen.make_curve_mesh, + partial(mgen.ellipse, 3), np.linspace(0, 1, 21), order=1), uniform_refine_flags, 4), ("rect2d_rand", - partial(generate_box_mesh, ( + partial(mgen.generate_box_mesh, ( np.linspace(0, 1, 3), np.linspace(0, 1, 3), ), order=1), @@ -117,7 +115,7 @@ def uniform_refine_flags(mesh): 4), ("rect2d_unif", - partial(generate_box_mesh, ( + partial(mgen.generate_box_mesh, ( np.linspace(0, 1, 2), np.linspace(0, 1, 2), ), order=1), @@ -130,7 +128,7 @@ def uniform_refine_flags(mesh): 4), ("rect3d_rand", - partial(generate_box_mesh, ( + partial(mgen.generate_box_mesh, ( np.linspace(0, 1, 2), np.linspace(0, 1, 3), np.linspace(0, 1, 2), @@ -139,7 +137,7 @@ def uniform_refine_flags(mesh): 3), ("rect3d_unif", - partial(generate_box_mesh, ( + partial(mgen.generate_box_mesh, ( np.linspace(0, 1, 2), np.linspace(0, 1, 2)), order=1), uniform_refine_flags, @@ -215,8 +213,9 @@ def test_refinement_connection( if mesh_name == "circle": assert dim == 1 h = 1 / mesh_par - mesh = make_curve_mesh( - partial(ellipse, 1), np.linspace(0, 1, mesh_par + 1), + mesh = mgen.make_curve_mesh( + mgen.circle, + np.linspace(0, 1, mesh_par + 1), order=mesh_order) elif mesh_name == "blob": if mesh_order == 5: @@ -264,8 +263,8 @@ def test_refinement_connection( fine_discr = connection.to_discr - x = thaw(actx, discr.nodes()) - x_fine = thaw(actx, fine_discr.nodes()) + x = thaw(discr.nodes(), actx) + x_fine = thaw(fine_discr.nodes(), actx) f_coarse = f(x) f_interp = connection(f_coarse) f_true = f(x_fine) @@ -314,7 +313,7 @@ def test_refinement_connection( (TensorProductElementGroup, False) ]) def test_uniform_refinement(group_cls, with_adjacency): - make_mesh = partial(generate_box_mesh, ( + make_mesh = partial(mgen.generate_box_mesh, ( np.linspace(0.0, 1.0, 2), np.linspace(0.0, 1.0, 3), np.linspace(0.0, 1.0, 2)), diff --git a/test/test_visualization.py b/test/test_visualization.py index d4202c8f..54470be3 100644 --- a/test/test_visualization.py +++ b/test/test_visualization.py @@ -37,14 +37,13 @@ from meshmode.discretization.poly_element import ( InterpolatoryQuadratureSimplexGroupFactory, LegendreGaussLobattoTensorProductGroupFactory, ) -from meshmode.dof_array import thaw -from meshmode.array_context import ( # noqa +import meshmode.mesh.generation as mgen + +from arraycontext import thaw, _acf # noqa: F401 +from arraycontext import ( # noqa: F401 pytest_generate_tests_for_pyopencl_array_context as pytest_generate_tests) -import meshmode.mesh.generation as mgen -from meshmode import _acf # noqa: F401 - # {{{ test visualizer @@ -159,7 +158,7 @@ def test_visualizers(actx_factory, dim, group_cls): from meshmode.discretization import Discretization discr = Discretization(actx, mesh, group_factory(target_order)) - nodes = thaw(actx, discr.nodes()) + nodes = thaw(discr.nodes(), actx) f = actx.np.sqrt(sum(nodes**2)) + 1j*nodes[0] g = VisualizerData(g=f) names_and_fields = [("f", f), ("g", g)] -- GitLab