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