BLonD code development meeting

Europe/Zurich
CERN

CERN

Video conferencing only
Videoconference
BLonD code development meeting
Zoom Meeting ID
93916228605
Host
Helga Timko
Useful links
Join via phone
Zoom URL
    • 10:30 AM 10:40 AM
      News 10m
      • Manuscript status
      • Pull requests
      Speakers: Alexandre Lasheen (CERN) , Giulia Papotti (CERN) , Heiko Damerau (CERN) , Ivan Karpov (CERN) , Konstantinos Iliakis (CERN) , Luis Eduardo Medina Medrano (CERN) , Markus Schwarz (KIT, Germany) , Panagiotis Tsapatsaris (NTUA) , Simon Albright (CERN) , Theodoros Argyropoulos (CERN)

      News

      • Last edits for BLonD publication 
      • Luis: OTFB pull request to come
      • Ivan: pull request for compressed contribution
        • time vs freq domain calculation is not equivalent -> in time domain, phase shift due to impedance is not constant
        • few slides next time?
      • Mihaly comparison of functions for chirp
        • next time few slides
      • Anton: pull request to include h5py in setup
    • 10:40 AM 11:00 AM
      Numerical noise of beam profiles 20m

      Noise estimates w.r.t. bunch length and number of macroparticles

      Speaker: Alexandre Lasheen (CERN)

      Smooth profile vs binned numerical profile -> numerical noise added

      For impedance calculation, this noise is injected into the model

      • At what frequencies this noise becomes important? Can lead to
        • Extra blow-up for microwave instabilities
        • Earlier onset of instabilities
      • What is the Signal To Noise (STN) ratio for a stationary distribution?
        • Start from binomial profile
        • Spectrum follows Bessel functions -> make an asymptotic approximation (maximum frequency, without dips)
      • Adding artificially white weighted noise
        • Make a histogram of the noise amplitude spectrum
        • Figure-of-merit: mean of the noise amplitude (if we want a single number)
        • Compare smooth spectrum with noisy spectrum -> get SNR ~ sqrt(Np)/bunch_length^(mu' + 1)
      • SNR interpretation
        • Doesn't depend on bin size -> for a single impedance at a given frequency, noise is not increased or decreased
          • For high-frequency impedance, need to increase the bin size!
          • Space charge or diverging impedance sources: too small binning adds large noise!
        • For a parabolic bunch profile, doubling the bunch length requires x16 more macro-particles!
          • How can we model the tails better?
          • Core + tail distributions? 
          • Constant bin density like in pyheadtail?
        • Criterion for Np using SNR > 1
          • SPS injection (Run II): min. 1 M/bunch
          • SPS extraction (Run II): min 250 k/bunch
          • SPS long bunches: min 39 B/bunch
          • PS transition crossing, Gaussian: tails in measurement not real -> replace with Gaussian
          • PS cycle: 126 k/bunch -> 420 M/bunch spanned
    • 11:00 AM 11:20 AM
      SPS beam-based feedbacks 20m

      Computational aspects of the new implementations of SPS beam phase loop and synchro loop

      Speaker: Danilo Quartullo (CERN)

      Post LS2 implementations of the beam phase, frequency and synchro loops

      • Total applied frequency correction based on the sum of the three
      • Discrete equations of the closed-loop system
        • Integral equations for the SL
        • 2 equations for each loop -> matrix equation of 6 variables
          • Want to feedback only on frequency and have phase correction = 0
          • Linear response of 3 loops
          • Can find a suitable matrix with the Linear Quadratic Regulator (LQR) and solve numerically
          • Feedback design: find best regulator and state-cost matrices
        • Want to check closed-loop system with external perturbation and verify loop stability
        • Obtaining the transfer function for the 3 loops

      Implementation in BLonD

      • Calculate the LQR gains e.g. every 5000 turns, then interpolate to turn-by-turn values for tracking 
        • Some entries are defined dynamically
        • The K matrix stores the 6 gains along the cycle
      • Dependencies: python control library
      • Option for Bode plot plotting of transfer functions
      • Optional: tracking of gain solutions and some observables that can be compared with BLonD tracking results
      • Loops ON
        • Can import Q11 also from measurements
        • Delay turns: when the feedback will act: after 3 turns, for instance
        • Initialize BeamFeedback and pass to tracker
      • BeamFeedback SPS entry
        • Total frequency correction from PL + FL + SL
      • Modifications to previous methods listed
      • Correction of phase set point for collective effects
      • Benchmarks
        • Good agreement btw python and Mathematica for time-evolution of matrices
        • Good agreement with impulse responses as calculated by Philippe
        • Matrix tracking vs BLonD tracking 
          • Impulse response not exactly equivalent, as the frequency correction is an output for BLonD and input for the matrix tracking, but good enough agreement
      • Performance
        • 450000 turns tracking, precalculation of gains every 5000 turns before the simulation (8 s total)
        • BeamFeedback 1.4 s/turn, called every turn vs kick+drift ~60 s/turn
        • NO performance bottleneck