# tree_d_3d.kernels.fmm_traverse.fmm_traverse_numpy

*module*

The NumPy version of the ``fmm_traverse`` kernel, for machines without Pyccel.

Vectorized over the frontier; the same arguments and results (in the same order) as
``fmm_traverse_pyccel.py``.

[View source](https://github.com/max-models/tree-d-3d/blob/devel/src/tree_d_3d/kernels/fmm_traverse/fmm_traverse_numpy.py#L1-L1)

## tree_d_3d.kernels.fmm_traverse.fmm_traverse_numpy.fmm_traverse

*function*

```python
def fmm_traverse(node_center: np.ndarray, node_half: np.ndarray, node_start: np.ndarray, node_end: np.ndarray, node_child: np.ndarray, theta: float, frontier: np.ndarray, n_frontier: int, next_frontier: np.ndarray, m2l: np.ndarray, p2p: np.ndarray, counts: np.ndarray) -> None
```

One generation of the dual-tree traversal, which fills mutual M2L and P2P lists.

[View source](https://github.com/max-models/tree-d-3d/blob/devel/src/tree_d_3d/kernels/fmm_traverse/fmm_traverse_numpy.py#L26-L79)
