From 70fbbb4ded9acb6ee6791cf8f29bac2f7aad7659 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Fri, 24 Jun 2011 01:28:12 -0400 Subject: [PATCH] Make P2M2P test work. --- sumpy/m2p.py | 2 +- sumpy/symbolic/__init__.py | 4 +++- test/test_kernels.py | 16 +++++----------- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/sumpy/m2p.py b/sumpy/m2p.py index b86009ed..d3e2bb06 100644 --- a/sumpy/m2p.py +++ b/sumpy/m2p.py @@ -118,7 +118,7 @@ void m2p( % endfor loc_mpole_base += ${dimensions}; - #define COEFF(i) mpole_coeff_l[loc_mpole_base+${dimensions}+i] + #define COEFF(i) mpole_coeff_l[loc_mpole_base+i] % for var, expr in vars_and_exprs: % if var.startswith("output"): diff --git a/sumpy/symbolic/__init__.py b/sumpy/symbolic/__init__.py index 6376a158..fe51e6aa 100644 --- a/sumpy/symbolic/__init__.py +++ b/sumpy/symbolic/__init__.py @@ -175,8 +175,10 @@ def make_coulomb_kernel_in(var_name, dimensions): if dimensions == 2: return sp.log(sp.sqrt((dist.T*dist)[0,0])) - else: + elif dimensions == 3: return 1/sp.sqrt((dist.T*dist)[0,0]) + else: + raise RuntimeError("unsupported dimensionality") diff --git a/test/test_kernels.py b/test/test_kernels.py index 81e56c9e..755b1968 100644 --- a/test/test_kernels.py +++ b/test/test_kernels.py @@ -74,7 +74,7 @@ def test_p2m2p(ctx_getter): ctx = ctx_getter() queue = cl.CommandQueue(ctx) - res = 10 + res = 100 dimensions = 3 sources = np.random.rand(dimensions, 5).astype(np.float32) @@ -102,7 +102,7 @@ def test_p2m2p(ctx_getter): from sumpy.expansion import TaylorExpansion texp = TaylorExpansion( make_coulomb_kernel_in("b", dimensions), - order=2, dimensions=dimensions) + order=3, dimensions=dimensions) coeff_dtype = np.float32 @@ -150,17 +150,11 @@ def test_p2m2p(ctx_getter): if 0: import matplotlib.pyplot as pt - pt.imshow(potential_dev_direct.get().reshape(res, res)) + pt.imshow((potential_dev-potential_dev_direct).get().reshape(res, res)) + pt.colorbar() pt.show() - pt.imshow(potential_dev.get().reshape(res, res)) - pt.show() - - print potential_dev-potential_dev_direct - print potential_dev - print potential_dev_direct - #print mpole_coeff - # }}} + assert la.norm((potential_dev-potential_dev_direct).get())/res**2 < 1e-3 -- GitLab