mbtrack2.impedance.resistive_wall module¶
Define resistive wall elements based on the WakeField class.
- skin_depth(frequency, rho: float, mu_r: int = 1, epsilon_r: int = 1) float[source]¶
General formula for the skin depth.
Parameters¶
- frequencyarray of float
Frequency points in [Hz].
- rhofloat
Resistivity in [ohm.m].
- mu_rfloat, optional
Relative magnetic permeability.
- epsilon_rfloat, optional
Relative electric permittivity.
Returns¶
- deltaarray of float
Skin depth in [m].
- class CircularResistiveWall(time: ndarray[tuple[int, ...], dtype[_ScalarType_co]], frequency: ndarray[tuple[int, ...], dtype[_ScalarType_co]], length: float, rho: float, radius: float, exact: bool = True)[source]¶
Bases:
WakeFieldResistive wall WakeField element for a circular beam pipe.
Impedance from approximated formulas from Eq. (2.77) of Chao book [1]. Wake function formulas from [2, 3] and the fundamental theorem of beam loading from [4].
Parameters¶
- timearray of float
Time points where the wake function will be evaluated in [s].
- frequencyarray of float
Frequency points where the impedance will be evaluated in [Hz].
- lengthfloat
Beam pipe length in [m].
- rhofloat
Resistivity in [ohm.m].
- radiusfloat
Beam pipe radius in [m].
- exactbool, optional
If False, approxmiated formulas are used for the wake function computations. The default is True.
References¶
[1] : Chao, A. W. (1993). Physics of collective beam instabilities in high energy accelerators. Wiley. [2] : Ivanyan, Mikayel I., and Vasili M. Tsakanov. “Analytical treatment of resistive wake potentials in round pipes.” Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment 522, no. 3 (2004): 223-229. [3] : Skripka, Galina, et al. “Simultaneous computation of intrabunch and interbunch collective beam motions in storage rings.” Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment 806 (2016): 221-230. [4] : Zotter, Bruno W., and Semyon A. Kheifets (1998). Impedances and wakes in high-energy particle accelerators. World Scientific.
- __init__(time: ndarray[tuple[int, ...], dtype[_ScalarType_co]], frequency: ndarray[tuple[int, ...], dtype[_ScalarType_co]], length: float, rho: float, radius: float, exact: bool = True)[source]¶
- LongitudinalWakeFunction(time: ndarray[tuple[int, ...], dtype[_ScalarType_co]], exact: bool = True) ndarray[tuple[int, ...], dtype[_ScalarType_co]][source]¶
Compute the longitudinal wake function of a circular resistive wall using Eq. (11), of [1], or approxmiated expression Eq. (24), of [2]. The approxmiated expression is valid if the time is large compared to the characteristic time t0.
Eq. (11) in [1] is completely identical to Eq. (22) in [2].
The real parts of the last two terms of Eq. (11) in [1] are the same, and the imaginary parts have the same magnitude but opposite signs. Therefore, the former term was doubled, the latter term was eliminated, and only the real part was taken to speed up the calculation.
The fundamental theorem of beam loading [3] is applied for the exact expression of the longitudinal wake function: Wl(0) = Wl(0+)/2.
Parameters¶
- timearray of float
Time points where the wake function is evaluated in [s].
- exactbool, optional
If True, the exact expression is used. The default is True.
Returns¶
- wlarray of float
Longitudinal wake function in [V/C].
References¶
[1] : Ivanyan, Mikayel I., and Vasili M. Tsakanov. “Analytical treatment of resistive wake potentials in round pipes.” Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment 522, no. 3 (2004): 223-229. [2] : Skripka, Galina, et al. “Simultaneous computation of intrabunch and interbunch collective beam motions in storage rings.” Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment 806 (2016): 221-230. [3] : Zotter, Bruno W., and Semyon A. Kheifets (1998). Impedances and wakes in high-energy particle accelerators. World Scientific.
- TransverseWakeFunction(time: ndarray[tuple[int, ...], dtype[_ScalarType_co]], exact: bool = True) ndarray[tuple[int, ...], dtype[_ScalarType_co]][source]¶
Compute the transverse wake function of a circular resistive wall using Eq. (11), of [1], or approxmiated expression Eq. (26), of [2]. The approxmiated expression is valid if the time is large compared to the characteristic time t0.
Eq. (11) in [1] is completely identical to Eq. (25) in [2].
There are typos in both Eq. (11) in [1] and Eq. (25) in [2]. Corrected the typos in the last two terms of exact expression for transverse wake function in Eq. (11), of [1]. It is necessary to multiply Eq. (25) in [2] by c*t0.
The real parts of the last two terms of Eq. (11) in [1] are the same, and the imaginary parts have the same magnitude but opposite signs. Therefore, the former term was doubled, the latter term was eliminated, and only the real part was taken to speed up the calculation.
Parameters¶
- timearray of float
Time points where the wake function is evaluated in [s].
- exactbool, optional
If True, the exact expression is used. The default is True.
Returns¶
- wtarray of float
Transverse wake function in [V/C/m].
References¶
[1] : Ivanyan, Mikayel I., and Vasili M. Tsakanov. “Analytical treatment of resistive wake potentials in round pipes.” Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment 522, no. 3 (2004): 223-229. [2] : Skripka, Galina, et al. “Simultaneous computation of intrabunch and interbunch collective beam motions in storage rings.” Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment 806 (2016): 221-230.
- __LongWakeExact(t: ndarray[tuple[int, ...], dtype[_ScalarType_co]], factor: float) ndarray[tuple[int, ...], dtype[_ScalarType_co]]¶
- __TransWakeExact(t: ndarray[tuple[int, ...], dtype[_ScalarType_co]], factor: float) ndarray[tuple[int, ...], dtype[_ScalarType_co]]¶
- __LongWakeApprox(t: ndarray[tuple[int, ...], dtype[_ScalarType_co]]) ndarray[tuple[int, ...], dtype[_ScalarType_co]]¶
- __TransWakeApprox(t: ndarray[tuple[int, ...], dtype[_ScalarType_co]]) ndarray[tuple[int, ...], dtype[_ScalarType_co]]¶
- class Coating(frequency: ndarray[tuple[int, ...], dtype[_ScalarType_co]], length: float, rho1: float, rho2: float, radius: float, thickness: float, approx: bool = False)[source]¶
Bases:
WakeFieldWakeField element for a coated circular beam pipe.
The longitudinal and tranverse impedances are computed using formulas from [1].
Parameters¶
- farray of float
Frequency points where the impedance is evaluated in [Hz].
- lengthfloat
Length of the beam pipe to consider in [m].
- rho1float
Resistivity of the coating in [ohm.m].
- rho2float
Resistivity of the bulk material in [ohm.m].
- radiusfloat
Radius of the beam pipe to consier in [m].
- thicknessfloat
Thickness of the coating in [m].
- approxbool, optional
If True, used approxmiated formula. The default is False.
References¶
[1] : Migliorati, M., E. Belli, and M. Zobov. “Impact of the resistive wall impedance on beam dynamics in the Future Circular e+ e− Collider.” Physical Review Accelerators and Beams 21.4 (2018): 041001.
- __init__(frequency: ndarray[tuple[int, ...], dtype[_ScalarType_co]], length: float, rho1: float, rho2: float, radius: float, thickness: float, approx: bool = False)[source]¶
- LongitudinalImpedance(f: ndarray[tuple[int, ...], dtype[_ScalarType_co]] | float, approx: bool) ndarray[tuple[int, ...], dtype[_ScalarType_co]][source]¶
Compute the longitudinal impedance of a coating using Eq. (5), or approxmiated expression Eq. (8), of [1]. The approxmiated expression is valid if the skin depth of the coating is large compared to the coating thickness.
Parameters¶
- farray of float
Frequency points where the impedance is evaluated in [Hz].
- approxbool
If True, used approxmiated formula.
Returns¶
- Zlarray
Longitudinal impedance values in [ohm].
References¶
[1] : Migliorati, M., E. Belli, and M. Zobov. “Impact of the resistive wall impedance on beam dynamics in the Future Circular e+ e− Collider.” Physical Review Accelerators and Beams 21.4 (2018): 041001.
- TransverseImpedance(f: ndarray[tuple[int, ...], dtype[_ScalarType_co]] | float, approx: bool) ndarray[tuple[int, ...], dtype[_ScalarType_co]][source]¶
Compute the transverse impedance of a coating using Eq. (6), or approxmiated expression Eq. (9), of [1]. The approxmiated expression is valid if the skin depth of the coating is large compared to the coating thickness.
Parameters¶
- farray of float
Frequency points where the impedance is evaluated in [Hz].
- approxbool
If True, used approxmiated formula.
Returns¶
- Ztarray
Transverse impedance values in [ohm].
References¶
[1] : Migliorati, M., E. Belli, and M. Zobov. “Impact of the resistive wall impedance on beam dynamics in the Future Circular e+ e− Collider.” Physical Review Accelerators and Beams 21.4 (2018): 041001.