From 0045290b71a18d56b0b4c84463659fe6529b5539 Mon Sep 17 00:00:00 2001 From: Erik Faulhaber <44124897+efaulhaber@users.noreply.github.com> Date: Thu, 6 Jun 2024 20:10:55 +0200 Subject: [PATCH] Rename inner function to `foreach_neighbor` (#24) --- src/PointNeighbors.jl | 2 +- src/neighborhood_search.jl | 17 ++++++----------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/PointNeighbors.jl b/src/PointNeighbors.jl index 2c53aef..3db27cf 100644 --- a/src/PointNeighbors.jl +++ b/src/PointNeighbors.jl @@ -11,7 +11,7 @@ include("neighborhood_search.jl") include("nhs_trivial.jl") include("nhs_grid.jl") -export for_particle_neighbor +export for_particle_neighbor, foreach_neighbor export TrivialNeighborhoodSearch, GridNeighborhoodSearch export initialize!, update!, initialize_grid!, update_grid! diff --git a/src/neighborhood_search.jl b/src/neighborhood_search.jl index 6f3ebda..02ccc53 100644 --- a/src/neighborhood_search.jl +++ b/src/neighborhood_search.jl @@ -66,8 +66,7 @@ end @inline function for_particle_neighbor(f, system_coords, neighbor_coords, neighborhood_search, particles, parallel::Val{true}) @threaded for particle in particles - for_particle_neighbor_inner(f, system_coords, neighbor_coords, neighborhood_search, - particle) + foreach_neighbor(f, system_coords, neighbor_coords, neighborhood_search, particle) end return nothing @@ -76,20 +75,16 @@ end @inline function for_particle_neighbor(f, system_coords, neighbor_coords, neighborhood_search, particles, parallel::Val{false}) for particle in particles - for_particle_neighbor_inner(f, system_coords, neighbor_coords, neighborhood_search, - particle) + foreach_neighbor(f, system_coords, neighbor_coords, neighborhood_search, particle) end return nothing end -# Use this function barrier and unpack inside to avoid passing closures to Polyester.jl -# with `@batch` (`@threaded`). -# Otherwise, `@threaded` does not work here with Julia ARM on macOS. -# See https://github.com/JuliaSIMD/Polyester.jl/issues/88. -@inline function for_particle_neighbor_inner(f, system_coords, neighbor_system_coords, - neighborhood_search, particle) - (; search_radius, periodic_box) = neighborhood_search +@inline function foreach_neighbor(f, system_coords, neighbor_system_coords, + neighborhood_search, particle; + search_radius = neighborhood_search.search_radius) + (; periodic_box) = neighborhood_search particle_coords = extract_svector(system_coords, Val(ndims(neighborhood_search)), particle)