diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index e116d828bc42208349bca789c0b1203c6d44ea65..8eb1643462c3a58e868b18b8f3a2dadd58edc805 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -611,7 +611,9 @@ def process_pde(pde): new_eq[k] = v * multiplier**sum(k.mi) if i == 0: val = new_eq[k] - new_eq[k] /= val + new_eq[k] /= sym.sympify(val) + if isinstance(new_eq[k], sym.Integer): + new_eq[k] = int(new_eq[k]) eqs.append(new_eq) return PDE(pde.dim, eqs=eqs), multiplier @@ -663,7 +665,8 @@ class HelmholtzExpansionTermsWrangler(LinearRecurrenceBasedExpansionTermsWrangle def get_pdes(self, **kwargs): w = make_pde_syms(self.dim, 1) - return (w.laplacian() + w), 0, 1 + k = sym.Symbol(self.helmholtz_k_name) + return (w.laplacian() + k**2 * w), 0, 1 def _get_reduced_coeffs(self, nullspace): idx = [] diff --git a/sumpy/tools.py b/sumpy/tools.py index c5103c34042b8bf4a9b91ac41cae0c0be276656c..e734d7dcd33fc0181a82ab21d554b1ba335de58d 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -746,7 +746,7 @@ def nth_root_assume_positive(expr, n): """ expr = sym.sympify(expr) if expr.is_Pow: - return expr.base ** (expr.exp / n) + return expr.base ** (expr.exp / sym.Integer(n)) else: return expr ** (sym.Integer(1)/n)