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 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.