Skip to content
Projects

tree_d_3d.kernels.evaluate_log_quadtree.evaluate_log_quadtree_metal

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

evaluate_log_quadtree_pyccel.py next to this file is the CPU version with the same arguments. One thread per target, each walking the tree with a stack in thread memory (the stack argument is the CPU’s scratch and unused here); a tree too deep for it reports status -1. See :mod:tree_d_3d.kernels._metal.

Functions

NameDescription
evaluate_log_quadtreeBarnes-Hut line-charge potential and field with multipole cells on the GPU.

evaluate_log_quadtreefunction#

def evaluate_log_quadtree(targets: Array, exclude: Array, pos: Array, charge: Array, perm: Array, node_center: Array, node_half: Array, node_start: Array, node_end: Array, node_child: Array, node_qabs: Array, moment_re: Array, moment_im: Array, theta: float, softening: float, stack: Array, phi: Array, field: Array, status: Array) -> None

Barnes-Hut line-charge potential and field with multipole cells on the GPU.