# tree_d_3d.kernels.pair_energy.pair_energy_numpy

*module*

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

Vectorized over blocks of particles against the later ones; the same arguments and results as ``pair_energy_pyccel.py``.

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

## tree_d_3d.kernels.pair_energy.pair_energy_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/pair_energy/pair_energy_numpy.py#L11-L11)

## tree_d_3d.kernels.pair_energy.pair_energy_numpy.pair_energy

*function*

```python
def pair_energy(pos: np.ndarray, charge: np.ndarray, softening: float, status: np.ndarray, energy: np.ndarray) -> None
```

Add the exact sum of q_i q_j / sqrt(r**2 + eps**2) over pairs, without
``k_e``, to ``energy[0]``; ``status[0]`` is 1 for coincident unsoftened charges.

[View source](https://github.com/max-models/tree-d-3d/blob/devel/src/tree_d_3d/kernels/pair_energy/pair_energy_numpy.py#L14-L38)
