diff --git a/meshmode/array_context.py b/meshmode/array_context.py
index 6118e9d5530c1ee46aff3ff75ed4d0413698420b..81461b71aa9008e52fcb379532cfc51ea5de4b2c 100644
--- a/meshmode/array_context.py
+++ b/meshmode/array_context.py
@@ -153,6 +153,14 @@ class ArrayContext:
 
     @memoize_method
     def _get_scalar_func_loopy_program(self, name, nargs, naxes):
+        if name == "arctan2":
+            name = "atan2"
+        elif name == "atan2":
+            from warnings import warn
+            warn("'atan2' in ArrayContext.np is deprecated. Use 'arctan2', "
+                    "as in numpy2. This will be disallowed in 2021.",
+                    DeprecationWarning, stacklevel=3)
+
         from pymbolic import var
 
         var_names = ["i%d" % i for i in range(naxes)]
diff --git a/test/test_meshmode.py b/test/test_meshmode.py
index a888beff918cc0ef1ccc002fa2f9878123999911..e6312f55cc7a8e88c62988ebb98f28edab5fb98e 100644
--- a/test/test_meshmode.py
+++ b/test/test_meshmode.py
@@ -39,7 +39,7 @@ from meshmode.discretization.poly_element import (
         )
 from meshmode.mesh import Mesh, BTAG_ALL
 from meshmode.array_context import PyOpenCLArrayContext
-from meshmode.dof_array import thaw, flat_norm, flatten
+from meshmode.dof_array import thaw, flat_norm, flatten, unflatten
 from meshmode.discretization.connection import \
         FACE_RESTR_ALL, FACE_RESTR_INTERIOR
 import meshmode.mesh.generation as mgen
@@ -1447,6 +1447,38 @@ def test_mesh_multiple_groups(ctx_factory, ambient_dim, visualize=False):
             assert error < 1.0e-11, error
 
 
+def test_array_context_np_workalike(ctx_factory):
+    ctx = ctx_factory()
+    queue = cl.CommandQueue(ctx)
+    actx = PyOpenCLArrayContext(queue)
+
+    from meshmode.mesh.generation import generate_regular_rect_mesh
+    mesh = generate_regular_rect_mesh(
+            a=(-0.5,)*2, b=(0.5,)*2, n=(8,)*2, order=3)
+
+    from meshmode.discretization import Discretization
+    from meshmode.discretization.poly_element import \
+            PolynomialWarpAndBlendGroupFactory as GroupFactory
+    discr = Discretization(actx, mesh, GroupFactory(3))
+
+    for sym_name, n_args in [
+            ("sin", 1),
+            ("exp", 1),
+            ("arctan2", 2),
+            ("minimum", 2),
+            ("maximum", 2),
+            ]:
+        args = [np.random.randn(discr.ndofs) for i in range(n_args)]
+        ref_result = getattr(np, sym_name)(*args)
+
+        actx_args = [unflatten(actx, discr, actx.from_numpy(arg)) for arg in args]
+
+        actx_result = actx.to_numpy(
+                flatten(getattr(actx.np, sym_name)(*actx_args)))
+
+        assert np.allclose(actx_result, ref_result)
+
+
 if __name__ == "__main__":
     import sys
     if len(sys.argv) > 1: