BLonD code development meeting

Europe/Zurich
CERN

CERN

Video conferencing only
Zoom Meeting ID
93916228605
Host
Helga Timko
Useful links
Join via phone
Zoom URL

BLonD manuscript

Deadline for last comments and additions: 10th May

Mihaly: CST implementations in Python and C

Chirp transform algorithm as alternative to FFTs with arbitrary start and stop frequencies

  • 2 FFTs and 1 IFFT, but faster than regular FFT
  • spiral in z plane instead of a circle
  • efficient new implementation in 2019 with N log(N) complexity

Python implementations

  • Compiled list in link; SciPy stuck, new IFFT implementation in python only

C/C++ implementations

  • Many acronyms and many "chirps" circulating -> have to look for the right one
  • Code 1: 1960s algo CZTransform in pure C, very old code
  • Code 2: Py/C++ developement pychirpz using number -> only forward algorithm, no backward
    • No pure C++

No new IFFT version, would have to write it

Test done

  • Checking algorithmic speed-up, comparing to numpy.fft and numpy.ifft for CTA
  • Increasing the length of FFTs, to see where CTA becomes more expensive
  • Several repetitions on the same computer
  • Using performance_counter_ns() for timing and varying the size
  • Big spread in FFT runtimes -> due to partitioning
  • After a given size (~2000), CTA is better
  • CTA also has some spread, but higher zooms (frequency resolution) can be more efficient than lower zooms
    • Total FFT size = signal size + zoom size -> has to be a "good" number

Next steps

  • Numba implementation of ICZT
    • Multi-threading out of the box
  • Compare BLonD performance
  • Use next_regular() for future testing
  • Parallelization performance: FFTW performs better in complex than real

Alex: End-to-end simulations in the PS

BCMS cycle: the most complicated in the PS. Previous simulations were done only for a chunk of the cycle, assuming that bunches are matched in the beginning

  • Full PS impedance model: need high- and low-frequency, broad-band and narrow-band components. Tuning of 10 MHz cavities etc
    • OTFB modelled as a transfer function acting on the cavity impedance -> no full model of the OTFB, but some transients can be modelled
    • Need to cover 150 turns of multi-turn wake to cover 75 turns of effective impedance (due to circularity)
    • Impedance model needs updating every now and then -> using gather() and scatter() for different parts of the impedance
    • Space charge in simulation -> oscillations on intermediate plateau due to changes in momentum
  • Global feedback systems (using beam measurements)
    • Phase, radial, and synchro loops with proportional corrections
  • Outline: 2 injections, plateau, BCM, triple splitting, transition xing, ramp, h21, quadruple splitting...

Acquisition as in measurements

  • bunch profile, bunch position, bunch length
    • Extracted bunch length well described: < 4ns
  • controlled emittance blow-up high-frequency RF system
    • Is not reproduced -> needed to increase the voltage of the RF

Feedback loops need improving

  • Simple proportional (DC) model in simulations, while in PS it's AC-coupled
    • Analogue modules, transfer function being measured

Noise on beam profiles

  • Large bunch length change over the cycle -> for 2x smaller bunch, would need 16x more particles 

Runtime

  • 480 M particles, 2.5 days on SLURM with 4 nodes, 20 cores per node
  • ​​​​​​​FFT takes 50 % of the time
  • Could down-scale to lower-frequency impedance
  • To reduce the noise, could still increase the no of macroparticles
  • Thanks to Kostis for BLonD MPI!

​​​​​​​Questions

  • ​​​​​​​Would a regrouping of macro particles be interesting like in PIC codes?
  • Chirp could help if using e.g. 2 frequency ranges low + high
There are minutes attached to this event. Show them.