From 5e588ea914ef99641cba5c8879210328f140033a Mon Sep 17 00:00:00 2001 From: Gamelin Alexis <alexis.gamelin@synchrotron-soleil.fr> Date: Wed, 2 Mar 2022 16:56:47 +0100 Subject: [PATCH] Add a center_of_mass method for the BeamLoadingVlasov class --- vlasov/beamloading.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/vlasov/beamloading.py b/vlasov/beamloading.py index 07688a1..a91b5b2 100644 --- a/vlasov/beamloading.py +++ b/vlasov/beamloading.py @@ -88,6 +88,13 @@ class BeamLoadingVlasov(): delta += cavity.Vb(self.I0) * self.F[i] * np.cos(cavity.psi - self.PHI[i]) delta -= cavity.Vg * np.cos(cavity.theta_g) return delta + + def center_of_mass(self): + """Return center of mass position in [s]""" + z0 = np.linspace(self.B1, self.B2, 1000) + rho = self.rho(z0) + CM = np.average(z0, weights=rho) + return CM/c def u(self, z): """Scaled potential u(z)""" -- GitLab