You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When inserting/deleting a particle in the reaction methods, instead of calculating its distance to all particles the cell system should be used to find the neighboring particles and calculate the distance only to those to check for the exclusion radius.
The text was updated successfully, but these errors were encountered:
Fixes#4399, fixes#4438
Description of changes:
- `CellStructure.cpp`: Added the `CellStructure::run_on_particle_short_range_neighbors()` method which runs a kernel function over all particles inside the cell and its neighbors of a given particle
- `cells.hpp`: Added the `mpi_get_short_range_neighbors()` function to execute a parallel search
- can be called from the Python interface via `system.cell_system.get_neighbors.get_neighbors(p, distance)`
- `energy.hpp`: Added the `compute_non_bonded_pair_energy()` function which returns both the short-range Coulomb interactions plus the non-bonded energy contributions of two particles
- can be called from the Python interface via `system.analysis.particle_energy(p)`
- Reaction methods can use the new neighbor search algorithm with constructor argument `search_algorithm="parallel"` (default is `search_algorithm="order_n"`); on 1 MPI rank the original order N algorithm is faster since the parallel algorithm introduces some overhead due to the ghost update (this overhead is negligible with 2 or more MPI ranks)
When inserting/deleting a particle in the reaction methods, instead of calculating its distance to all particles the cell system should be used to find the neighboring particles and calculate the distance only to those to check for the exclusion radius.
The text was updated successfully, but these errors were encountered: