diff --git a/bfps/cpp/particles/particles_field_computer.hpp b/bfps/cpp/particles/particles_field_computer.hpp index 96d58a26849d31203b2e4c1a4ea8722327c3c0cb..8d91ac820ba83a5e76877848621f036712a9cc56 100644 --- a/bfps/cpp/particles/particles_field_computer.hpp +++ b/bfps/cpp/particles/particles_field_computer.hpp @@ -192,7 +192,7 @@ public: virtual int pbc_field_layer(const real_number& a_z_pos, const int idx_dim) const final { const real_number shifted_pos = a_z_pos - spatial_box_offset[idx_dim]; - const int nb_level_to_pos = int(shifted_pos/box_step_width[idx_dim]); + const int nb_level_to_pos = int(floor(shifted_pos/box_step_width[idx_dim])); const int int_field_grid_dim = int(field_grid_dim[idx_dim]); const int pbc_level = ((nb_level_to_pos%int_field_grid_dim)+int_field_grid_dim)%int_field_grid_dim; assert(0 <= pbc_level && pbc_level < int(field_grid_dim[idx_dim]));