# tree_d_3d.kernels.direct_log_sum.direct_log_sum_numpy

*module*

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

Vectorized over blocks of targets and all sources; the same arguments and results as ``direct_log_sum_pyccel.py``.

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

## tree_d_3d.kernels.direct_log_sum.direct_log_sum_numpy.CHUNK

*attribute* · *module attribute*

```python
CHUNK = 256
```

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

## tree_d_3d.kernels.direct_log_sum.direct_log_sum_numpy.direct_log_sum

*function*

```python
def direct_log_sum(targets: np.ndarray, exclude: np.ndarray, pos: np.ndarray, charge: np.ndarray, softening: float, phi: np.ndarray, field: np.ndarray, status: np.ndarray) -> None
```

All-pairs line-charge potential and field; same conventions.

``status[0]`` becomes 1 + a target that met an unsoftened coincident charge.

[View source](https://github.com/max-models/tree-d-3d/blob/devel/src/tree_d_3d/kernels/direct_log_sum/direct_log_sum_numpy.py#L32-L53)
