From f263e26e296dbf52b6675cddf9a614c5f0d3cbb8 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Fri, 24 Jun 2022 19:46:41 -0500 Subject: [PATCH] Make taylor series with FFT the default for Helmholtz and Biharmonic (#120) * Make taylor series the default for Helmholtz * Try 4r for Helmholtz * Update fmm.py * Use 4r/order for biharmonic too * Add missing import * Update pytential commit * Revert "Update pytential commit" This reverts commit 9f3b25de4d031d187da8e3ddaaaad79a6c730a61. Co-authored-by: Andreas Kloeckner --- sumpy/expansion/__init__.py | 23 ++--------------------- sumpy/expansion/m2l.py | 6 +----- 2 files changed, 3 insertions(+), 26 deletions(-) diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index 26c0d00a..99ed13b3 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -779,18 +779,9 @@ class DefaultExpansionFactory(ExpansionFactoryBase): def get_local_expansion_class(self, base_kernel): """Returns a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ - from sumpy.kernel import (HelmholtzKernel, YukawaKernel) - - from sumpy.expansion.local import (H2DLocalExpansion, Y2DLocalExpansion, + from sumpy.expansion.local import ( LinearPDEConformingVolumeTaylorLocalExpansion, VolumeTaylorLocalExpansion) - - if (isinstance(base_kernel.get_base_kernel(), HelmholtzKernel) - and base_kernel.dim == 2): - return H2DLocalExpansion - elif (isinstance(base_kernel.get_base_kernel(), YukawaKernel) - and base_kernel.dim == 2): - return Y2DLocalExpansion try: base_kernel.get_base_kernel().get_pde_as_diff_op() return LinearPDEConformingVolumeTaylorLocalExpansion @@ -800,19 +791,9 @@ class DefaultExpansionFactory(ExpansionFactoryBase): def get_multipole_expansion_class(self, base_kernel): """Returns a subclass of :class:`ExpansionBase` suitable for *base_kernel*. """ - from sumpy.kernel import (HelmholtzKernel, YukawaKernel) - - from sumpy.expansion.multipole import (H2DMultipoleExpansion, - Y2DMultipoleExpansion, + from sumpy.expansion.multipole import ( LinearPDEConformingVolumeTaylorMultipoleExpansion, VolumeTaylorMultipoleExpansion) - - if (isinstance(base_kernel.get_base_kernel(), HelmholtzKernel) - and base_kernel.dim == 2): - return H2DMultipoleExpansion - elif (isinstance(base_kernel.get_base_kernel(), YukawaKernel) - and base_kernel.dim == 2): - return Y2DMultipoleExpansion try: base_kernel.get_base_kernel().get_pde_as_diff_op() return LinearPDEConformingVolumeTaylorMultipoleExpansion diff --git a/sumpy/expansion/m2l.py b/sumpy/expansion/m2l.py index 16ab7c70..3120595e 100644 --- a/sumpy/expansion/m2l.py +++ b/sumpy/expansion/m2l.py @@ -105,12 +105,8 @@ class DefaultM2LTranslationClassFactory(M2LTranslationClassFactoryBase): def get_m2l_translation_class(self, base_kernel, local_expansion_class): from sumpy.expansion.local import (VolumeTaylorLocalExpansionBase, _FourierBesselLocalExpansion) - from sumpy.kernel import LaplaceKernel if issubclass(local_expansion_class, VolumeTaylorLocalExpansionBase): - if isinstance(base_kernel, LaplaceKernel): - return VolumeTaylorM2LWithFFT - else: - return VolumeTaylorM2LTranslation + return VolumeTaylorM2LWithFFT elif issubclass(local_expansion_class, _FourierBesselLocalExpansion): return FourierBesselM2LTranslation else: -- GitLab