Skip to content
Snippets Groups Projects
Commit e5a746f5 authored by Keon Hee KIM's avatar Keon Hee KIM
Browse files

Add spacing to improve readability

parent ed09e1a1
Branches
Tags
1 merge request!14Faster CircularResistiveWall
...@@ -79,7 +79,6 @@ class CircularResistiveWall(WakeField): ...@@ -79,7 +79,6 @@ class CircularResistiveWall(WakeField):
[4] : Zotter, Bruno W., and Semyon A. Kheifets (1998). Impedances and wakes [4] : Zotter, Bruno W., and Semyon A. Kheifets (1998). Impedances and wakes
in high-energy particle accelerators. World Scientific. in high-energy particle accelerators. World Scientific.
""" """
def __init__(self, def __init__(self,
...@@ -168,7 +167,8 @@ class CircularResistiveWall(WakeField): ...@@ -168,7 +167,8 @@ class CircularResistiveWall(WakeField):
if exact == True: if exact == True:
idx2 = time == 0 idx2 = time == 0
idx3 = np.logical_not(np.logical_or(idx1, idx2)) idx3 = np.logical_not(np.logical_or(idx1, idx2))
factor = self.Z0 * c / (3 * np.pi * self.radius**2) * self.length factor = ( self.Z0 * c / (3 * np.pi * self.radius**2) *
self.length )
if np.any(idx2): if np.any(idx2):
# fundamental theorem of beam loading # fundamental theorem of beam loading
wl[idx2] = 3 * factor / 2 wl[idx2] = 3 * factor / 2
...@@ -217,7 +217,8 @@ class CircularResistiveWall(WakeField): ...@@ -217,7 +217,8 @@ class CircularResistiveWall(WakeField):
if exact == True: if exact == True:
idx2 = time == 0 idx2 = time == 0
idx3 = np.logical_not(np.logical_or(idx1, idx2)) idx3 = np.logical_not(np.logical_or(idx1, idx2))
factor = ( (self.Z0 * c**2 * self.t0) / (3 * np.pi * self.radius**4) * factor = ( (self.Z0 * c**2 * self.t0) /
(3 * np.pi * self.radius**4) *
self.length ) self.length )
wt[idx3] = self.__TransWakeExact(time[idx3], factor) wt[idx3] = self.__TransWakeExact(time[idx3], factor)
else: else:
...@@ -226,22 +227,31 @@ class CircularResistiveWall(WakeField): ...@@ -226,22 +227,31 @@ class CircularResistiveWall(WakeField):
return wt return wt
def __LongWakeExact(self, t, factor): def __LongWakeExact(self, t, factor):
wl = np.real( factor * ( 4 * np.exp(-1 * t / self.t0) wl = np.real( factor *
* np.cos(np.sqrt(3) * t / self.t0) ( 4 * np.exp(-1 * t / self.t0) *
+ wofz(1j * np.sqrt(2 * t / self.t0)) np.cos(np.sqrt(3) * t / self.t0)
- wofz(np.exp(1j * np.pi / 6) * np.sqrt(2 * t / self.t0)) + wofz( 1j *
- wofz(-1 * np.exp(-1j * np.pi / 6) * np.sqrt(2 * t / self.t0)) ) ) np.sqrt(2 * t / self.t0) )
- wofz( np.exp(1j * np.pi / 6) *
np.sqrt(2 * t / self.t0) )
- wofz( -1 * np.exp(-1j * np.pi / 6) *
np.sqrt(2 * t / self.t0)) ) )
return wl return wl
def __TransWakeExact(self, t, factor): def __TransWakeExact(self, t, factor):
wt = np.real( factor * ( 2 * np.exp(-1 * t / self.t0) wt = np.real( factor *
* ( np.sqrt(3) * np.sin(np.sqrt(3) * t / self.t0) ( 2 * np.exp(-1 * t / self.t0) *
- np.cos(np.sqrt(3) * t / self.t0) ) ( np.sqrt(3) *
+ wofz(1j * np.sqrt(2 * t / self.t0)) np.sin(np.sqrt(3) * t / self.t0) -
+ np.exp(-1j * np.pi / 3) * wofz( np.exp(1j * np.pi / 6) np.cos(np.sqrt(3) * t / self.t0) )
* np.sqrt(2 * t / self.t0) ) + wofz( 1j *
+ np.exp(1j * np.pi / 3) * wofz( -1 * np.exp(-1j * np.pi / 6) np.sqrt(2 * t / self.t0) )
* np.sqrt(2 * t / self.t0) ) ) ) + np.exp(-1j * np.pi / 3) *
wofz( np.exp(1j * np.pi / 6) *
np.sqrt(2 * t / self.t0) )
+ np.exp(1j * np.pi / 3) *
wofz( -1 * np.exp(-1j * np.pi / 6) *
np.sqrt(2 * t / self.t0) ) ) )
return wt return wt
def __LongWakeApprox(self, t): def __LongWakeApprox(self, t):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment