# tree_d_3d.kernels.tests.test_kernels_emulated

*module*

The CUDA versions of the Barnes-Hut and FMM kernels against their Python versions.

Each CUDA kernel is compiled as C++ with the emulation stubs of
``test_cuda_kernels_emulated`` and run thread by thread, so the kernels are checked on
machines without a GPU (the threads run one after another: atomic adds are exact sums,
in another order than on the CPU).

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

## tree_d_3d.kernels.tests.test_kernels_emulated.ORDER

*attribute* · *module attribute*

```python
ORDER = 6
```

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

## tree_d_3d.kernels.tests.test_kernels_emulated.ROOT

*attribute* · *module attribute*

```python
ROOT = Quad(0.0, 0.0, 1.0 + 1e-09)
```

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

## tree_d_3d.kernels.tests.test_kernels_emulated.SOFTENING

*attribute* · *module attribute*

```python
SOFTENING = 0.01
```

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

## tree_d_3d.kernels.tests.test_kernels_emulated.THETA

*attribute* · *module attribute*

```python
THETA = 0.6
```

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

## tree_d_3d.kernels.tests.test_kernels_emulated.TREE

*attribute* · *module attribute*

```python
TREE = {'leaf_capacity': 4, 'max_depth': 20}
```

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

## tree_d_3d.kernels.tests.test_kernels_emulated.pytestmark

*attribute* · *module attribute*

```python
pytestmark = pytest.mark.skipif(COMPILER is None, reason='no C++ compiler')
```

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

## tree_d_3d.kernels.tests.test_kernels_emulated.log_tree

*function*

```python
def log_tree(system)
```

[View source](https://github.com/max-models/tree-d-3d/blob/devel/src/tree_d_3d/kernels/tests/test_kernels_emulated.py#L266-L285)

## tree_d_3d.kernels.tests.test_kernels_emulated.system

*function*

```python
def system()
```

[View source](https://github.com/max-models/tree-d-3d/blob/devel/src/tree_d_3d/kernels/tests/test_kernels_emulated.py#L69-L88)

## tree_d_3d.kernels.tests.test_kernels_emulated.test_coincident_charges_are_reported

*function*

```python
def test_coincident_charges_are_reported(tmp_path, system)
```

[View source](https://github.com/max-models/tree-d-3d/blob/devel/src/tree_d_3d/kernels/tests/test_kernels_emulated.py#L221-L236)

## tree_d_3d.kernels.tests.test_kernels_emulated.test_direct_sums

*function*

```python
def test_direct_sums(tmp_path, system, name)
```

[View source](https://github.com/max-models/tree-d-3d/blob/devel/src/tree_d_3d/kernels/tests/test_kernels_emulated.py#L193-L218)

## tree_d_3d.kernels.tests.test_kernels_emulated.test_fmm_pipeline

*function*

```python
def test_fmm_pipeline(tmp_path, system, log_tree)
```

Traversal, M2L, downward pass and evaluation, each against its Python version.

[View source](https://github.com/max-models/tree-d-3d/blob/devel/src/tree_d_3d/kernels/tests/test_kernels_emulated.py#L348-L477)

## tree_d_3d.kernels.tests.test_kernels_emulated.test_log_moments_and_evaluation

*function*

```python
def test_log_moments_and_evaluation(tmp_path, system, log_tree)
```

[View source](https://github.com/max-models/tree-d-3d/blob/devel/src/tree_d_3d/kernels/tests/test_kernels_emulated.py#L288-L345)

## tree_d_3d.kernels.tests.test_kernels_emulated.test_pair_energy

*function*

```python
def test_pair_energy(tmp_path, system)
```

[View source](https://github.com/max-models/tree-d-3d/blob/devel/src/tree_d_3d/kernels/tests/test_kernels_emulated.py#L239-L263)

## tree_d_3d.kernels.tests.test_kernels_emulated.test_quadtree_build

*function*

```python
def test_quadtree_build(monkeypatch, system)
```

The level-by-level build with the CUDA quadrant and scatter kernels.

[View source](https://github.com/max-models/tree-d-3d/blob/devel/src/tree_d_3d/kernels/tests/test_kernels_emulated.py#L91-L106)

## tree_d_3d.kernels.tests.test_kernels_emulated.test_quadtree_moments_and_evaluation

*function*

```python
def test_quadtree_moments_and_evaluation(tmp_path, system)
```

[View source](https://github.com/max-models/tree-d-3d/blob/devel/src/tree_d_3d/kernels/tests/test_kernels_emulated.py#L117-L190)

## tree_d_3d.kernels.tests.test_kernels_emulated.test_soften_pairs

*function*

```python
def test_soften_pairs(tmp_path, system)
```

[View source](https://github.com/max-models/tree-d-3d/blob/devel/src/tree_d_3d/kernels/tests/test_kernels_emulated.py#L480-L514)
