Skip to content
Projects

tree_d_3d.kernels.fmm_downward.fmm_downward_metal

The Metal version (Apple-silicon GPU, float32) of the fmm_downward kernel.

fmm_downward_pyccel.py next to this file is the CPU version with the same arguments. One thread per node of first_node:last_node; a child has one parent, so each thread writes its own children’s rows of a zeroed delta (no atomics), which the host adds to the local expansions in float64. The power_re and power_im scratch arguments of the CPU version are unused. See :mod:tree_d_3d.kernels._metal.

Functions

NameDescription
fmm_downwardShift the local expansions of nodes first_node:last_node into their children.

fmm_downwardfunction#

def fmm_downward(first_node: int, last_node: int, node_center: Array, node_child: Array, binomial: Array, power_re: Array, power_im: Array, local_re: Array, local_im: Array) -> None

Shift the local expansions of nodes first_node:last_node into their children.