From d2fd65b3ea19cb8f345f4fc17a859f8fbf69642e Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 21 Jun 2021 14:25:51 -0500 Subject: [PATCH 1/3] pass translation_classes_data --- pytential/qbx/__init__.py | 6 +++++- pytential/qbx/fmm.py | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/pytential/qbx/__init__.py b/pytential/qbx/__init__.py index 3e4e1026b..a6261ba59 100644 --- a/pytential/qbx/__init__.py +++ b/pytential/qbx/__init__.py @@ -603,6 +603,9 @@ def exec_compute_potential_insn_fmm(self, actx: PyOpenCLArrayContext, geo_data.tree().user_source_ids, insn.kernel_arguments, evaluate)) + from sumpy.fmm import SumpyTranslationClassesData + translation_classes_data = SumpyTranslationClassesData(actx.queue, + geo_data.traversal()) tree_indep = self._tree_indep_data_for_wrangler( target_kernels=insn.target_kernels, source_kernels=insn.source_kernels) @@ -612,7 +615,8 @@ def exec_compute_potential_insn_fmm(self, actx: PyOpenCLArrayContext, self.qbx_order, self.fmm_level_to_order, source_extra_kwargs=source_extra_kwargs, - kernel_extra_kwargs=kernel_extra_kwargs) + kernel_extra_kwargs=kernel_extra_kwargs, + translation_classes_data=translation_classes_data) from pytential.qbx.geometry import target_state if actx.to_numpy(actx.np.any( diff --git a/pytential/qbx/fmm.py b/pytential/qbx/fmm.py index b81d77e34..cba15cf2b 100644 --- a/pytential/qbx/fmm.py +++ b/pytential/qbx/fmm.py @@ -112,13 +112,14 @@ class QBXExpansionWrangler(SumpyExpansionWrangler): def __init__(self, tree_indep, geo_data, dtype, qbx_order, fmm_level_to_order, source_extra_kwargs, kernel_extra_kwargs, - _use_target_specific_qbx=None): + translation_classes_data=None, *, _use_target_specific_qbx=None): if _use_target_specific_qbx: raise ValueError("TSQBX is not implemented in sumpy") super().__init__( tree_indep, geo_data.traversal(), - dtype, fmm_level_to_order, source_extra_kwargs, kernel_extra_kwargs) + dtype, fmm_level_to_order, source_extra_kwargs, kernel_extra_kwargs, + translation_classes_data=translation_classes_data) self.qbx_order = qbx_order self.geo_data = geo_data From 4a543da9649285c63396056fcbdf17f3c9e27024 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Sun, 4 Jul 2021 19:53:29 -0500 Subject: [PATCH 2/3] Fix pyfmmlib tests --- pytential/qbx/fmmlib.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pytential/qbx/fmmlib.py b/pytential/qbx/fmmlib.py index c2029ad1b..e91a9fe62 100644 --- a/pytential/qbx/fmmlib.py +++ b/pytential/qbx/fmmlib.py @@ -153,7 +153,8 @@ class QBXFMMLibExpansionWrangler(FMMLibExpansionWrangler): def __init__(self, tree_indep, geo_data, dtype, qbx_order, fmm_level_to_order, source_extra_kwargs, - kernel_extra_kwargs, + kernel_extra_kwargs, *, + translation_classes_data=None, _use_target_specific_qbx=None): # FMMLib is CPU-only. This wrapper gets the geometry out of # OpenCL-land. From 2aaf12260900c1fe2383a52e5a81ee20c8a8b654 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Fri, 6 May 2022 01:20:57 -0500 Subject: [PATCH 3/3] pass translation_classes_data in unregularized --- pytential/unregularized.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pytential/unregularized.py b/pytential/unregularized.py index 8502b8a8f..00bba1c7b 100644 --- a/pytential/unregularized.py +++ b/pytential/unregularized.py @@ -256,12 +256,16 @@ def exec_compute_potential_insn_fmm(self, actx: PyOpenCLArrayContext, tree_indep = self._tree_indep_data_for_wrangler( fmm_kernel, target_kernels=insn.target_kernels, source_kernels=insn.source_kernels) + from sumpy.fmm import SumpyTranslationClassesData + translation_classes_data = SumpyTranslationClassesData(actx.queue, + geo_data.traversal()) from sumpy.fmm import SumpyExpansionWrangler wrangler = SumpyExpansionWrangler( tree_indep, geo_data.traversal(), output_and_expansion_dtype, self.fmm_level_to_order, + translation_classes_data=translation_classes_data, source_extra_kwargs=source_extra_kwargs, kernel_extra_kwargs=kernel_extra_kwargs)