diff --git a/.test-conda-env-py3-requirements.txt b/.test-conda-env-py3-requirements.txt index 01f08662149acd51177b1f4c3a96d873555a5a9e..45c20c1f8b09a6a20cc232eb0e1ce05eb69aa403 100644 --- a/.test-conda-env-py3-requirements.txt +++ b/.test-conda-env-py3-requirements.txt @@ -1,3 +1,3 @@ -git+https://github.com/inducer/boxtree +git+https://gitlab.tiker.net/inducer/boxtree git+https://github.com/inducer/pymbolic git+https://github.com/inducer/loopy diff --git a/requirements.txt b/requirements.txt index 6690e3d9651bad06a8fd28e444167fe03bbb119f..1e86e61017a9f70631b25ba46ad808e16f0b715e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,6 +3,6 @@ sympy==1.0 git+https://github.com/inducer/pymbolic git+https://github.com/inducer/islpy git+https://github.com/inducer/pyopencl -git+https://github.com/inducer/boxtree +git+https://gitlab.tiker.net/inducer/boxtree git+https://github.com/inducer/loopy git+https://github.com/inducer/pyfmmlib diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 36b073779498a5768e72ebc4e85a66b4b061e9b4..ed2a1e4bd35b07c4bb1f601c6b850044fdf5539a 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -449,8 +449,7 @@ class SumpyExpansionWrangler(object): return local_exps def eval_multipoles(self, - level_start_target_box_nrs, - target_boxes, source_boxes_by_level, mpole_exps): + target_boxes_by_source_level, source_boxes_by_level, mpole_exps): pot = self.output_zeros() kwargs = self.kernel_extra_kwargs.copy() @@ -458,8 +457,9 @@ class SumpyExpansionWrangler(object): wait_for = mpole_exps.events + has_evt = False for isrc_level, ssn in enumerate(source_boxes_by_level): - if len(target_boxes) == 0: + if len(target_boxes_by_source_level[isrc_level]) == 0: continue m2p = self.code.m2p(self.level_orders[isrc_level]) @@ -473,7 +473,7 @@ class SumpyExpansionWrangler(object): src_expansions=source_mpoles_view, src_base_ibox=source_level_start_ibox, - target_boxes=target_boxes, + target_boxes=target_boxes_by_source_level[isrc_level], source_box_starts=ssn.starts, source_box_lists=ssn.lists, centers=self.tree.box_centers, @@ -485,14 +485,16 @@ class SumpyExpansionWrangler(object): **kwargs) + has_evt = True wait_for = [evt] for pot_i, pot_res_i in zip(pot, pot_res): assert pot_i is pot_res_i - for pot_i in pot: - # Intentionally only adding the last event. - pot_i.add_event(evt) + if has_evt: + for pot_i in pot: + # Intentionally only adding the last event. + pot_i.add_event(evt) return pot