From d33dfc5fce009bead389a0b21a3d17be00134315 Mon Sep 17 00:00:00 2001 From: Natalie Beams Date: Mon, 25 Apr 2016 14:41:46 -0500 Subject: [PATCH 1/2] Fix Stokeslet mapping --- sumpy/kernel.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index e7f88aee..5070c4b1 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -533,7 +533,7 @@ class StressletKernel(ExpressionKernel): loopy_arg=lp.ValueArg(self.viscosity_mu_name, np.float64), ), KernelArgument( - lp.GlobalArg(self.stresslet_vector_name, + loopy_arg=lp.GlobalArg(self.stresslet_vector_name, None, shape=(self.dim, "nsources"), dim_tags="sep,C"), @@ -839,7 +839,7 @@ class KernelDimensionSetter(KernelIdentityMapper): "different from existing one (%d)" % (self.dim, kernel.dim)) - return StressletKernel(self.dim, + return StokesletKernel(self.dim, kernel.icomp, kernel.jcomp, viscosity_mu_name=kernel.viscosity_mu_name) -- GitLab From 61b3fc62aa2bbcb9b7fde9a8689662505d8381a2 Mon Sep 17 00:00:00 2001 From: Natalie Beams Date: Thu, 12 May 2016 13:53:59 -0500 Subject: [PATCH 2/2] add 3D Stokeslet/Stresslet --- sumpy/kernel.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/sumpy/kernel.py b/sumpy/kernel.py index e4353484..ce9eb990 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -435,6 +435,16 @@ class StokesletKernel(ExpressionKernel): ) scaling = 1/(4*var("pi")*mu) + elif dim == 3: + d = make_sym_vector("d", dim) + r = pymbolic_real_norm_2(d) + expr = ( + (1/r)*(1 if icomp == jcomp else 0) + + + d[icomp]*d[jcomp]/r**3 + ) + scaling = -1/(8*var("pi")*mu) + elif dim is None: expr = None scaling = None @@ -496,6 +506,17 @@ class StressletKernel(ExpressionKernel): ) scaling = 1/(var("pi")) + elif dim == 3: + d = make_sym_vector("d", dim) + n = make_sym_vector(stresslet_vector_name, dim) + r = pymbolic_real_norm_2(d) + expr = ( + sum(n[axis]*d[axis] for axis in range(dim)) + * + d[icomp]*d[jcomp]/r**5 + ) + scaling = -3/(4*var("pi")) + elif dim is None: expr = None scaling = None -- GitLab