diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 99222f684340fe1f36d888355a24cbffe29573c0..aebaa9fe76da1088f33dc38b3b950591732d3287 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -431,13 +431,14 @@ class BiharmonicKernel(ExpressionKernel): init_arg_names = ("dim",) def __init__(self, dim=None): + # See https://arxiv.org/abs/1202.1811 r = pymbolic_real_norm_2(make_sym_vector("d", dim)) if dim == 2: - expr = r**2 * var("log")(r) - scaling = 1/(8*var("pi")) + expr = r**2 * (var("log")(r) - 1) + scaling = -1/(8*var("pi")) elif dim == 3: expr = r - scaling = 1 # FIXME: Unknown + scaling = 1/(8*var("pi")) else: raise RuntimeError("unsupported dimensionality")