Skip to content
Snippets Groups Projects
Select Git revision
  • e2efcc084362fb6110a3d4ac5fc4d44c176910ef
  • develop default protected
  • feature-ibs-suggestions-from-salah
  • syntax-typehints
  • feature-ExponentialDumper-bugfix
  • Resisitve_wall_eff_radius_yokoya
  • feature-feedback-IQ-damper0
  • 18-synchrotron-object-string-representation
  • stable protected
  • feature-particle-in-cell
  • feature-quad_wakes_LongRangeResistiveWall
  • feature-iqdamper0
  • feature-read_wakis
  • use-one-bin
  • RF-FBv0.6
  • RF-FBv0.5
  • faster_pytorch
  • RF-FB
  • util
  • RFBucket
  • Long-range_wakepotential
  • 0.9.0
  • 0.8.0
  • 0.7.0
  • 0.6.0
  • 0.5.0
  • 0.4
  • 0.3
  • 0.2
  • 0.1
30 results

instabilities.py

Blame
  • user avatar
    Gamelin Alexis authored
    c611185b
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    instabilities.py 1.22 KiB
    # -*- coding: utf-8 -*-
    """
    General calculations about instabilities
    
    @author: Alexis Gamelin
    @date: 15/01/2020
    """
    
    from scipy.constants import c, m_e, e, pi, epsilon_0
    
    def MBI_threshold(ring, sigma, R, b):
        """
        Compute the microbunching instability (MBI) threshold for a bunched beam
        considering the steady-state parallel plate model [1][2].
        
        Parameters
        ----------
        ring : Synchrotron object
        sigma : float
            RMS bunch length in [s]
        R : float
            dipole bending radius in [m]
        b : float
            vertical distance between the conducting parallel plates in [m]
            
        Returns
        -------
        I : float
            MBI current threshold
            
        [1] : Y. Cai, "Theory of microwave instability and coherent synchrotron 
        radiation in electron storage rings", SLAC-PUB-14561
        [2] : D. Zhou, "Coherent synchrotron radiation and microwave instability in 
        electron storage rings", PhD thesis, p112
        """
    
        Ia = 4*pi*epsilon_0*m_e*c**3/e # Alfven current
        chi = sigma*(R/b**3)**(1/2) # Shielding paramter
        xi = 0.5 + 0.34*chi
        N = (ring.L0 * Ia * ring.ac * ring.gamma * ring.sigma_delta**2 * xi *
            sigma**(1/3) / ( c * e * R**(1/3) ))
        I = N*e/ring.T0
        
        return I