From bf4cb2deeee82f477f83ddfe72d25f8b57a6a38e Mon Sep 17 00:00:00 2001
From: Isuru Fernando <isuruf@gmail.com>
Date: Tue, 21 May 2019 19:08:26 -0500
Subject: [PATCH] Don't modify PDE objects

---
 sumpy/expansion/__init__.py  | 3 +--
 sumpy/expansion/pde_utils.py | 8 ++++----
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py
index 888ba26d..a2d5c6f2 100644
--- a/sumpy/expansion/__init__.py
+++ b/sumpy/expansion/__init__.py
@@ -30,7 +30,7 @@ from pytools import memoize_method
 import sumpy.symbolic as sym
 from collections import defaultdict
 from sumpy.tools import add_mi
-from .pde_utils import (make_pde_syms, process_pde, laplacian, div, curl, grad,
+from .pde_utils import (make_pde_syms, process_pde, laplacian, div, grad,
     PDE)
 
 __doc__ = """
@@ -580,7 +580,6 @@ class LinearPDEBasedExpansionTermsWrangler(ExpansionTermsWrangler):
         return rows
 
 
-
 class LaplaceExpansionTermsWrangler(LinearPDEBasedExpansionTermsWrangler):
 
     init_arg_names = ("order", "dim", "max_mi")
diff --git a/sumpy/expansion/pde_utils.py b/sumpy/expansion/pde_utils.py
index 1b26e038..bd856a62 100644
--- a/sumpy/expansion/pde_utils.py
+++ b/sumpy/expansion/pde_utils.py
@@ -26,6 +26,7 @@ from collections import defaultdict
 from sumpy.tools import CoeffIdentifier, add_mi, nth_root_assume_positive
 import sumpy.symbolic as sym
 
+
 class PDE(object):
     r"""
     Represents a system of PDEs of dimension `dim`. It is represented by a
@@ -93,10 +94,10 @@ class PDE(object):
 
 
 def laplacian(pde):
-    p = PDE(pde.dim)
+    eqs = []
     for j in range(len(pde.eqs)):
-        p.eqs.append(div(grad(pde[j])).eqs[0])
-    return p
+        eqs.append(div(grad(pde[j])).eqs[0])
+    return PDE(pde.dim, *eqs)
 
 
 def diff(pde, mi):
@@ -197,4 +198,3 @@ def make_pde_syms(dim, nexprs):
         eq[CoeffIdentifier(tuple(mi), iexpr)] = 1
         eqs.append(eq)
     return PDE(dim, *eqs)
-
-- 
GitLab