From 33b912a2b860c8c76398c0e17496fcc52133f8d5 Mon Sep 17 00:00:00 2001 From: gubaidulinvadim <gubaidulinvadim@gmail.com> Date: Mon, 12 Aug 2024 14:26:09 +0200 Subject: [PATCH] -added a check on number of particles in a slice to prevent mean of empty slice warnings --- mbtrack2/tracking/spacecharge.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/mbtrack2/tracking/spacecharge.py b/mbtrack2/tracking/spacecharge.py index 7eb70f6..3ecb779 100644 --- a/mbtrack2/tracking/spacecharge.py +++ b/mbtrack2/tracking/spacecharge.py @@ -86,15 +86,16 @@ class TransverseSpaceCharge(Element): x = bunch['x'][particle_ids] y = bunch['y'][particle_ids] - mean_x, std_x = x.mean(), x.std() - mean_y, std_y = y.mean(), y.std() - - en_x, en_y = get_displaced_efield(self.efieldn, - bunch['x'][particle_ids], - bunch['y'][particle_ids], std_x, - std_y, mean_x, mean_y) - - kicks_x = prefactor * en_x * charge_density[bin_index] - kicks_y = prefactor * en_y * charge_density[bin_index] - bunch['xp'][particle_ids] += kicks_x - bunch['yp'][particle_ids] += kicks_y + if len(x) != 0 and len(y) != 0: + mean_x, std_x = x.mean(), x.std() + mean_y, std_y = y.mean(), y.std() + + en_x, en_y = get_displaced_efield(self.efieldn, + bunch['x'][particle_ids], + bunch['y'][particle_ids], + std_x, std_y, mean_x, mean_y) + + kicks_x = prefactor * en_x * charge_density[bin_index] + kicks_y = prefactor * en_y * charge_density[bin_index] + bunch['xp'][particle_ids] += kicks_x + bunch['yp'][particle_ids] += kicks_y -- GitLab