diff --git a/mbtrack2/impedance/resistive_wall.py b/mbtrack2/impedance/resistive_wall.py index 8434db622f31918eb70cd4f217a11408aaddd375..13a736b499fbd94e967bbfce75584b6001d1d8c9 100644 --- a/mbtrack2/impedance/resistive_wall.py +++ b/mbtrack2/impedance/resistive_wall.py @@ -322,14 +322,14 @@ class Coating(WakeField): if approx == False: alpha = skin1/skin2 - tanh = np.tanh( (1 - 1j*np.sign(f)) * self.thickness / skin1 ) - bracket = ( (np.sign(f) - 1j) * skin1 * + tanh = np.tanh( (1 + 1j*np.sign(f)) * self.thickness / skin1 ) + bracket = ( (np.sign(f) + 1j) * skin1 * (alpha * tanh + 1) / (alpha + tanh) ) else: valid_approx = self.thickness / np.min(skin1) if valid_approx < 0.01: print("Approximation is not valid. Returning impedance anyway.") - bracket = ( (np.sign(f) - 1j) * skin2 - 2 * 1j * self.thickness * + bracket = ( (np.sign(f) + 1j) * skin2 + 2 * 1j * self.thickness * (1 - self.rho2/self.rho1) ) Zl = factor * bracket @@ -370,14 +370,14 @@ class Coating(WakeField): if approx == False: alpha = skin1/skin2 - tanh = np.tanh( (1 - 1j*np.sign(f)) * self.thickness / skin1 ) - bracket = ( (1 - 1j*np.sign(f)) * skin1 * + tanh = np.tanh( (1 + 1j*np.sign(f)) * self.thickness / skin1 ) + bracket = ( (1 + 1j*np.sign(f)) * skin1 * (alpha * tanh + 1) / (alpha + tanh) ) else: valid_approx = self.thickness / np.min(skin1) if valid_approx < 0.01: print("Approximation is not valid. Returning impedance anyway.") - bracket = ( (1 - 1j*np.sign(f)) * skin2 - 2 * 1j * self.thickness + bracket = ( (1 + 1j*np.sign(f)) * skin2 + 2 * 1j * self.thickness * np.sign(f) * (1 - self.rho2/self.rho1) ) Zt = factor * bracket