diff --git a/experiments/stokes-2d-interior.py b/experiments/stokes-2d-interior.py index 977ae8329991e5f5acabdb1bbec3024fa55ac39e..bcb15fde819208bc7b8ceeef28333eb5ebea7330 100644 --- a/experiments/stokes-2d-interior.py +++ b/experiments/stokes-2d-interior.py @@ -65,7 +65,7 @@ def main(nelements): # Get normal vectors for the density discretization -- used in integration with stresslet mv_normal = bind(density_discr, sym.normal(2))(queue) - normal = mv_normal.as_vector(np.object) + normal = mv_normal.as_vector(object) # {{{ describe bvp diff --git a/experiments/two-domain-helmholtz.py b/experiments/two-domain-helmholtz.py index 21a5fa2c953e3b3084106262d5d55d3b2769ef6e..ba8de66149d3b883a990de7fa45eddb0fabf3e93 100644 --- a/experiments/two-domain-helmholtz.py +++ b/experiments/two-domain-helmholtz.py @@ -118,7 +118,7 @@ def main(): sqrt_w = bind(density_discr, sym.sqrt_jac_q_weight())(queue) - bvp_rhs = np.zeros(len(pde_op.bcs), dtype=np.object) + bvp_rhs = np.zeros(len(pde_op.bcs), dtype=object) for i_bc, terms in enumerate(pde_op.bcs): for term in terms: assert term.i_interface == 0 diff --git a/pytential/__init__.py b/pytential/__init__.py index 9d0e91ccd00c59aaea857bb0eb3c77a244518778..9f48234612474ba74d610b5906eda073422b3064 100644 --- a/pytential/__init__.py +++ b/pytential/__init__.py @@ -98,7 +98,7 @@ def _norm_inf_op(discr, num_components): def norm(discr, x, p=2): from pymbolic.geometric_algebra import MultiVector if isinstance(x, MultiVector): - x = x.as_vector(np.object) + x = x.as_vector(object) from meshmode.dof_array import DOFArray num_components = None diff --git a/pytential/linalg/proxy.py b/pytential/linalg/proxy.py index 8ff76bb9e0f0f3f9b7a47d27b91d14210c68cd9c..057a4dda239e0d28dd0484db6218f9d6a099dbaa 100644 --- a/pytential/linalg/proxy.py +++ b/pytential/linalg/proxy.py @@ -79,7 +79,7 @@ def partition_by_nodes(actx, discr, leaf_boxes, = (tree.box_flags & box_flags_enum.HAS_CHILDREN == 0).nonzero() - indices = np.empty(len(leaf_boxes), dtype=np.object) + indices = np.empty(len(leaf_boxes), dtype=object) for i, ibox in enumerate(leaf_boxes): box_start = tree.box_source_starts[ibox] box_end = box_start + tree.box_source_counts_cumul[ibox] @@ -90,11 +90,11 @@ def partition_by_nodes(actx, discr, ) indices = actx.from_numpy(np.hstack(indices)) else: - indices = actx.from_numpy(np.arange(0, discr.ndofs, dtype=np.int)) + indices = actx.from_numpy(np.arange(0, discr.ndofs, dtype=np.int64)) ranges = actx.from_numpy(np.arange( 0, discr.ndofs + 1, - max_nodes_in_box, dtype=np.int)) + max_nodes_in_box, dtype=np.int64)) assert ranges[-1] == discr.ndofs @@ -261,7 +261,7 @@ class ProxyGenerator: shape=(self.ambient_dim, "nranges")), lp.GlobalArg("proxy_radius", None, shape="nranges"), - lp.ValueArg("nsources", np.int), + lp.ValueArg("nsources", np.int64), "..." ], name="find_proxy_radii_knl", @@ -328,7 +328,7 @@ class ProxyGenerator: from pytential.utils import flatten_to_numpy centers = flatten_to_numpy(actx, centers_dev) radii = flatten_to_numpy(actx, radii_dev) - proxies = np.empty(indices.nblocks, dtype=np.object) + proxies = np.empty(indices.nblocks, dtype=object) for i in range(indices.nblocks): proxies[i] = _affine_map(self.ref_points, A=(radii[i] * np.eye(self.ambient_dim)), @@ -406,7 +406,7 @@ def gather_block_neighbor_points(actx, discr, indices, pxycenters, pxyradii, ]) pxyradii = actx.to_numpy(pxyradii) - nbrindices = np.empty(indices.nblocks, dtype=np.object) + nbrindices = np.empty(indices.nblocks, dtype=object) for iproxy in range(indices.nblocks): # get list of boxes intersecting the current ball istart = query.leaves_near_ball_starts[iproxy] @@ -504,9 +504,9 @@ def gather_block_interaction_points(actx, places, source_dd, indices, shape="nnbrindices"), lp.GlobalArg("nodes", None, shape=(lpot_source.ambient_dim, "nproxies + nnbrindices")), - lp.ValueArg("nsources", np.int), - lp.ValueArg("nproxies", np.int), - lp.ValueArg("nnbrindices", np.int), + lp.ValueArg("nsources", np.int64), + lp.ValueArg("nproxies", np.int64), + lp.ValueArg("nnbrindices", np.int64), "..." ], name="concat_proxy_and_neighbors", @@ -533,7 +533,7 @@ def gather_block_interaction_points(actx, places, source_dd, indices, max_nodes_in_box=max_nodes_in_box) from meshmode.dof_array import flatten, thaw - ranges = actx.zeros(indices.nblocks + 1, dtype=np.int) + ranges = actx.zeros(indices.nblocks + 1, dtype=np.int64) _, (nodes, ranges) = knl()(actx.queue, sources=flatten(thaw(actx, discr.nodes())), proxies=proxies, diff --git a/pytential/qbx/direct.py b/pytential/qbx/direct.py index 50e051db579dcb1b2d4bd5bf590a292d2471dced..461f3cb341f51a5f1c6b4db5796a32ac8a3bb945 100644 --- a/pytential/qbx/direct.py +++ b/pytential/qbx/direct.py @@ -78,8 +78,7 @@ class LayerPotentialOnTargetAndCenterSubset(LayerPotentialBase): <> icenter = qbx_center_numbers[itgt] <> itgt_overall = qbx_tgt_numbers[itgt] - <> a[idim] = center[idim, icenter] - src[idim, isrc] \ - {dup=idim} + <> a[idim] = center[idim, icenter] - src[idim, isrc] <> b[idim] = tgt[idim, itgt_overall] - center[idim, icenter] \ {dup=idim} <> rscale = expansion_radii[icenter] diff --git a/pytential/qbx/fmmlib.py b/pytential/qbx/fmmlib.py index 0075af11c7eb1eabe198297a8c6971ea1e8d556e..bee8b24f2bfc040942cf63733b516792219cc159 100644 --- a/pytential/qbx/fmmlib.py +++ b/pytential/qbx/fmmlib.py @@ -473,7 +473,7 @@ class QBXFMMLibExpansionWrangler(FMMLibExpansionWrangler): nlevels = geo_data.tree().nlevels - box_to_rscale = np.empty(geo_data.tree().nboxes, dtype=np.float) + box_to_rscale = np.empty(geo_data.tree().nboxes, dtype=np.float64) for isrc_level in range(nlevels): lev_box_start, lev_box_stop = self.tree.level_start_box_nrs[ isrc_level:isrc_level+2] @@ -598,9 +598,9 @@ class QBXFMMLibExpansionWrangler(FMMLibExpansionWrangler): ifgrad = self.ifgrad # Create temporary output arrays for potential / gradient. - pot = np.zeros(self.tree.ntargets, np.complex) if ifpot else None + pot = np.zeros(self.tree.ntargets, np.complex128) if ifpot else None grad = ( - np.zeros((self.dim, self.tree.ntargets), np.complex) + np.zeros((self.dim, self.tree.ntargets), np.complex128) if ifgrad else None) ts.eval_target_specific_qbx_locals( diff --git a/pytential/qbx/interactions.py b/pytential/qbx/interactions.py index e8a13f51b313f2d4aff6e44cefe35794c54580bc..dc8eea9c42be33bf9eb958a40bd4325459d0ff32 100644 --- a/pytential/qbx/interactions.py +++ b/pytential/qbx/interactions.py @@ -77,7 +77,7 @@ class P2QBXLFromCSR(P2EBase): for itgt_center <> tgt_icenter = global_qbx_centers[itgt_center] - <> center[idim] = qbx_centers[idim, tgt_icenter] {dup=idim} + <> center[idim] = qbx_centers[idim, tgt_icenter] <> rscale = qbx_expansion_radii[tgt_icenter] <> itgt_box = qbx_center_to_target_box[tgt_icenter] diff --git a/pytential/qbx/refinement.py b/pytential/qbx/refinement.py index ab431e9c31b80fd5bcb10d2e05b877c77c0e809d..b0481e98b7b536e3917b76aa5c394ab87577866e 100644 --- a/pytential/qbx/refinement.py +++ b/pytential/qbx/refinement.py @@ -438,7 +438,7 @@ class RefinerWrangler(TreeWranglerBase): """ if isinstance(refine_flags, cl.array.Array): refine_flags = refine_flags.get(self.queue) - refine_flags = refine_flags.astype(np.bool) + refine_flags = refine_flags.astype(bool) with ProcessLogger(logger, "refine mesh"): refiner.refine(refine_flags) @@ -510,7 +510,7 @@ def _visualize_refinement(actx: PyOpenCLArrayContext, discr, assert len(flags) == discr.mesh.nelements - flags = flags.astype(np.bool) + flags = flags.astype(bool) nodes_flags = np.zeros(discr.ndofs) for grp in discr.groups: meg = grp.mesh_el_group @@ -760,7 +760,7 @@ def _refine_qbx_stage2(lpot_source, stage1_density_discr, conn = wrangler.refine( stage2_density_discr, refiner, - np.ones(stage2_density_discr.mesh.nelements, dtype=np.bool), + np.ones(stage2_density_discr.mesh.nelements, dtype=bool), group_factory, debug) stage2_density_discr = conn.to_discr connections.append(conn) diff --git a/pytential/qbx/target_specific/impl.pyx b/pytential/qbx/target_specific/impl.pyx index 60e9bbadfa0b9c60563f4ab128886746ca2120c5..88d6052f86d5ccee084ad5ca1656bae46bb3525b 100644 --- a/pytential/qbx/target_specific/impl.pyx +++ b/pytential/qbx/target_specific/impl.pyx @@ -106,8 +106,8 @@ def h3dall_wrapper(nterms, z, scale, hs, hders): int nterms_, ifder double scale_ double complex z_ - double complex[:] hvec = np.empty(1 + nterms, np.complex) - double complex[:] hdervec = np.empty(1 + nterms, np.complex) + double complex[:] hvec = np.empty(1 + nterms, np.complex128) + double complex[:] hdervec = np.empty(1 + nterms, np.complex128) ifder = hders is not None @@ -677,9 +677,9 @@ def eval_target_specific_qbx_locals( target = np.zeros((maxthreads, PADDING)) center = np.zeros((maxthreads, PADDING)) dipole = np.zeros((maxthreads, PADDING)) - result_grad = np.zeros((maxthreads, PADDING), dtype=np.complex) - jvals = np.zeros((maxthreads, BUFSIZE + PADDING), dtype=np.complex) - jderivs = np.zeros((maxthreads, BUFSIZE + PADDING), dtype=np.complex) + result_grad = np.zeros((maxthreads, PADDING), dtype=np.complex128) + jvals = np.zeros((maxthreads, BUFSIZE + PADDING), dtype=np.complex128) + jderivs = np.zeros((maxthreads, BUFSIZE + PADDING), dtype=np.complex128) # TODO: Check that the order is not too high, since temporary # arrays in this module that are limited by BUFSIZE may overflow diff --git a/pytential/symbolic/dof_connection.py b/pytential/symbolic/dof_connection.py index 19afdf009e859cf9641226a65186770acb079a7d..c788d1db8679221532394dd55a7157963e8293a8 100644 --- a/pytential/symbolic/dof_connection.py +++ b/pytential/symbolic/dof_connection.py @@ -117,7 +117,7 @@ class CenterGranularityConnection(GranularityConnection): prg(), src1=src1, src2=src2, dst=result, nelements=grp.nelements, nunit_dofs=grp.nunit_dofs) results.append(result) - return DOFArray.from_list(self.array_context, results) + return DOFArray(self.array_context, tuple(results)) def __call__(self, arys): r""" diff --git a/pytential/symbolic/execution.py b/pytential/symbolic/execution.py index b18893480c3a644d7b6fc4d23a1005e678c1632e..fea1336cbfa465bbbed37902ed45e8bb6c1092a6 100644 --- a/pytential/symbolic/execution.py +++ b/pytential/symbolic/execution.py @@ -176,9 +176,10 @@ class EvaluationMapperBase(PymbolicEvaluationMapper): return _reduce(node_knl(), discr.empty(self.array_context, dtype=dtype)) elif granularity is sym.GRANULARITY_ELEMENT: - result = DOFArray.from_list(self.array_context, [ - self.array_context.empty((grp.nelements, 1), dtype=dtype) - for grp in discr.groups]) + result = DOFArray(self.array_context, tuple([ + self.array_context.empty((grp.nelements, 1), dtype=dtype) + for grp in discr.groups + ])) return _reduce(element_knl(), result) else: raise ValueError(f"unsupported granularity: {granularity}") @@ -1162,7 +1163,7 @@ def build_matrix(actx, places, exprs, input_exprs, domains=None, from pytential.symbolic.matrix import MatrixBuilder, is_zero nblock_rows = len(exprs) nblock_columns = len(input_exprs) - blocks = np.zeros((nblock_rows, nblock_columns), dtype=np.object) + blocks = np.zeros((nblock_rows, nblock_columns), dtype=object) dtypes = [] for ibcol in range(nblock_columns): diff --git a/pytential/symbolic/matrix.py b/pytential/symbolic/matrix.py index 3a89914583f66b9fdc0e41dfa76556dc9f64cbbd..17fb38a7a6a62c731cb4f100d0206c551d106d68 100644 --- a/pytential/symbolic/matrix.py +++ b/pytential/symbolic/matrix.py @@ -444,7 +444,7 @@ class P2PMatrixBuilder(MatrixBuilderBase): expr, include_args=kernel_args) if self.exclude_self: kernel_args["target_to_source"] = actx.from_numpy( - np.arange(0, target_discr.ndofs, dtype=np.int) + np.arange(0, target_discr.ndofs, dtype=np.int64) ) from sumpy.p2p import P2PMatrixGenerator @@ -576,7 +576,7 @@ class FarFieldBlockBuilder(MatrixBlockBuilderBase): expr, include_args=kernel_args) if self.exclude_self: kernel_args["target_to_source"] = actx.from_numpy( - np.arange(0, target_discr.ndofs, dtype=np.int) + np.arange(0, target_discr.ndofs, dtype=np.int64) ) from sumpy.p2p import P2PMatrixBlockGenerator diff --git a/pytential/symbolic/primitives.py b/pytential/symbolic/primitives.py index a8f48df7ef52b7166bc18931355bbfcb36892ead..38d10d4abc12a968f2edf0362405f244ca264dc7 100644 --- a/pytential/symbolic/primitives.py +++ b/pytential/symbolic/primitives.py @@ -667,7 +667,7 @@ def reference_jacobian(func, output_dim, dim, dofdesc=None): """Return a :class:`numpy.ndarray` representing the Jacobian of a vector function with respect to the reference coordinates. """ - jac = np.zeros((output_dim, dim), np.object) + jac = np.zeros((output_dim, dim), object) for i in range(output_dim): func_component = func[i] @@ -1594,7 +1594,7 @@ def _get_dir_vec(dsource, ambient_dim): coeffs = _DSourceCoefficientFinder()(dsource) - dir_vec = np.zeros(ambient_dim, np.object) + dir_vec = np.zeros(ambient_dim, object) for i in range(ambient_dim): dir_vec[i] = coeffs.pop(NablaComponent(i, None), 0) diff --git a/pytential/symbolic/stokes.py b/pytential/symbolic/stokes.py index 49dcf83abd2834940f8bb1fa521d8f4c0ffb1b64..a04435e98f20b45d26bb5fdb8d2cddb47094cd25 100644 --- a/pytential/symbolic/stokes.py +++ b/pytential/symbolic/stokes.py @@ -114,7 +114,7 @@ class StokesletWrapper: # Start variable count for kernel with 1 for the requested result # component - base_count = np.zeros(self.dim, dtype=np.int) + base_count = np.zeros(self.dim, dtype=np.int32) base_count[comp] += 1 for i in range(self.dim): @@ -176,7 +176,7 @@ class StokesletWrapper: # Start variable count for kernel with 1 for the requested result # component - base_count = np.zeros(self.dim, dtype=np.int) + base_count = np.zeros(self.dim, dtype=np.int32) base_count[comp] += 1 for i in range(self.dim): @@ -236,7 +236,7 @@ class StokesletWrapper: # Start variable count for kernel with 1 for the requested result # component - base_count = np.zeros(self.dim, dtype=np.int) + base_count = np.zeros(self.dim, dtype=np.int32) base_count[comp] += 1 for i, j in itertools.product(range(self.dim), range(self.dim)): @@ -349,7 +349,7 @@ class StressletWrapper: # Start variable count for kernel with 1 for the requested result # component - base_count = np.zeros(self.dim, dtype=np.int) + base_count = np.zeros(self.dim, dtype=np.int32) base_count[comp] += 1 for i, j in itertools.product(range(self.dim), range(self.dim)): @@ -425,7 +425,7 @@ class StressletWrapper: # Start variable count for kernel with 1 for the requested result # component - base_count = np.zeros(self.dim, dtype=np.int) + base_count = np.zeros(self.dim, dtype=np.int32) base_count[comp] += 1 for i, j in itertools.product(range(self.dim), range(self.dim)): diff --git a/test/extra_matrix_data.py b/test/extra_matrix_data.py index 7401d13860e81229e735b7e571ff95f9ce5b6fa2..d7ed88fa59e578c85323f0fa0444f8dd2b074d03 100644 --- a/test/extra_matrix_data.py +++ b/test/extra_matrix_data.py @@ -57,7 +57,7 @@ class MatrixTestCaseMixin: # randomly pick a subset of points indices = indices.get(actx.queue) - subset = np.empty(indices.nblocks, dtype=np.object) + subset = np.empty(indices.nblocks, dtype=object) for i in range(indices.nblocks): iidx = indices.block_indices(i) isize = int(self.index_sparsity_factor * len(iidx)) diff --git a/test/test_cost_model.py b/test/test_cost_model.py index 1d9a2746a948ba4d0dc9d33318135aa389c2f0b6..e090364052975857fffe02b3979cc9091235708c 100644 --- a/test/test_cost_model.py +++ b/test/test_cost_model.py @@ -718,7 +718,7 @@ def test_cost_model_correctness(ctx_factory, dim, off_surface, from boxtree.tools import make_uniform_particle_array ntargets = 10 ** 3 targets = PointsTarget( - make_uniform_particle_array(queue, ntargets, dim, np.float)) + make_uniform_particle_array(queue, ntargets, dim, np.float64)) target_discrs_and_qbx_sides = ((targets, 0),) qbx_forced_limit = None else: diff --git a/test/test_global_qbx.py b/test/test_global_qbx.py index ec2a11a8833d231bcf925c4b6adc0cfdd1b94e52..df4b9b8d008ace9047b271ca93fe28c7cd525e00 100644 --- a/test/test_global_qbx.py +++ b/test/test_global_qbx.py @@ -294,7 +294,7 @@ def test_target_association(ctx_factory, curve_name, curve_f, nelements, density_discr = places.get_discretization(dd.geometry) noise = actx.to_numpy( - rng.uniform(queue, density_discr.ndofs, dtype=np.float, a=0.01, b=1.0)) + rng.uniform(queue, density_discr.ndofs, dtype=np.float64, a=0.01, b=1.0)) tunnel_radius = dof_array_to_numpy(actx, bind(places, sym._close_target_tunnel_radii( @@ -302,9 +302,9 @@ def test_target_association(ctx_factory, curve_name, curve_f, nelements, def targets_from_sources(sign, dist, dim=2): nodes = dof_array_to_numpy(actx, - bind(places, sym.nodes(dim, dofdesc=dd))(actx).as_vector(np.object)) + bind(places, sym.nodes(dim, dofdesc=dd))(actx).as_vector(object)) normals = dof_array_to_numpy(actx, - bind(places, sym.normal(dim, dofdesc=dd))(actx).as_vector(np.object)) + bind(places, sym.normal(dim, dofdesc=dd))(actx).as_vector(object)) return actx.from_numpy(nodes + normals * sign * dist) from pytential.target import PointsTarget diff --git a/test/test_layer_pot_eigenvalues.py b/test/test_layer_pot_eigenvalues.py index 36d30b7423e849ab348c0d5504aec8572e88e540..5c84ef535fce3ec9d6b9a1cd81a8370f5a9a527e 100644 --- a/test/test_layer_pot_eigenvalues.py +++ b/test/test_layer_pot_eigenvalues.py @@ -124,7 +124,7 @@ def test_ellipse_eigenvalues(ctx_factory, ellipse_aspect, mode_nr, qbx_order, centers = bind(places, sym.expansion_centers(qbx.ambient_dim, +1))(actx) normals = bind(places, - sym.normal(qbx.ambient_dim))(actx).as_vector(np.object) + sym.normal(qbx.ambient_dim))(actx).as_vector(object) nodes_h = np.array([actx.to_numpy(axis) for axis in flatten(nodes)]) centers_h = np.array([actx.to_numpy(axis) for axis in flatten(centers)]) diff --git a/test/test_layer_pot_identity.py b/test/test_layer_pot_identity.py index 85ce14fa7c60d5f8df87ccb22f079a3b6d44848b..141da21060ba80bfce65c8a09aa06db1f246a0c5 100644 --- a/test/test_layer_pot_identity.py +++ b/test/test_layer_pot_identity.py @@ -341,7 +341,7 @@ def test_identity_convergence(ctx_factory, case, visualize=False): from meshmode.dof_array import thaw, flatten, unflatten nodes_host = [actx.to_numpy(axis) for axis in flatten(thaw(actx, density_discr.nodes()))] - normal = bind(places, sym.normal(d))(actx).as_vector(np.object) + normal = bind(places, sym.normal(d))(actx).as_vector(object) normal_host = [actx.to_numpy(axis)for axis in flatten(normal)] if k != 0: @@ -405,7 +405,7 @@ def test_identity_convergence(ctx_factory, case, visualize=False): bdry_vis = make_visualizer(actx, density_discr, target_order) bdry_normals = bind(places, sym.normal(mesh.ambient_dim))(actx)\ - .as_vector(dtype=np.object) + .as_vector(dtype=object) bdry_vis.write_vtk_file("source-%s.vtu" % resolution, [ ("u", u_dev), diff --git a/test/test_symbolic.py b/test/test_symbolic.py index 682af7aad5669fdc8876014b5910197e7ad3defa..5c5410abde58580bbf3dbcb3157f62cd7e56793e 100644 --- a/test/test_symbolic.py +++ b/test/test_symbolic.py @@ -329,7 +329,7 @@ def test_node_reduction(ctx_factory): el_nr_base += grp.nelements from meshmode.dof_array import DOFArray - ary = DOFArray.from_list(actx, ary) + ary = DOFArray(actx, tuple(ary)) for func, expected in [ (sym.NodeSum, nelements * (nelements + 1) // 2), diff --git a/test/test_target_specific_qbx.py b/test/test_target_specific_qbx.py index b7c977c547b33c35b0a92820a22c77596df5a0ed..2f2d1c7ea4367d1cb73ec1a0bd3b790c12c55fd2 100644 --- a/test/test_target_specific_qbx.py +++ b/test/test_target_specific_qbx.py @@ -50,8 +50,8 @@ def test_spherical_bessel_functions(): nterms = 9 z = 3j scale = 1 - j = np.zeros(1 + nterms, dtype=np.complex) - jder = np.zeros(1 + nterms, dtype=np.complex) + j = np.zeros(1 + nterms, dtype=np.complex128) + jder = np.zeros(1 + nterms, dtype=np.complex128) ts.jfuns3d_wrapper(nterms, z, scale, j, jder) # Reference solution computed using scipy.special.spherical_jn @@ -93,8 +93,8 @@ def test_spherical_hankel_functions(): nterms = 9 z = 2 + 3j scale = 1 - h = np.zeros(1 + nterms, dtype=np.complex) - hder = np.zeros(1 + nterms, dtype=np.complex) + h = np.zeros(1 + nterms, dtype=np.complex128) + hder = np.zeros(1 + nterms, dtype=np.complex128) ts.h3dall_wrapper(nterms, z, scale, h, hder) # Reference solution computed using