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

AOB

  • Juan will rework the Induced voltage section of the paper
  • Postponing the submission by 3-4 weeks
  • We'll get back to it in our next meeting

Markus: Induced voltage with uneven sampling

  • Motivation: bunch-to-bunch distance >> bunch length, @ KARA (e-ring): 2 ps bunches, 2 ns bunch spacing
    • Uniform binning becomes challenging
  • BLonD non-uniform sampling:
    • InducedVoltageResonator - only resonators
    • InducedVoltageSparse - based on sparse profile object
  • Sparse induced voltage - can take as input non-uniformly sampled data points; scales as N^2 (not N log(N))
    • Algorithm: calculate Fourier transform of bunch profile from linear interpolation
    • Evaluate integrand of impedance x F(bunch profile)
    • Induced voltage: wake matrix x (difference in bunch profile from one cell to another)
    • Using a uniform binning, is equivalent to the usual time-domain method
  • ​​​​Testing for SPS LHC-like beams
    • Bug in c++ implementation of sparse profile -> pull request
    • Comparing analytic - uniform - sparse: all agree
    • For one turn, similar runtime results for SPS, for 2 bunches (but spectral calculation is expensive, also some zero padding)
      • To be evaluated with more bunches...
    • Still some bug fixing on-going
  • If good other alternatives (Mihaly, Ivan), will maybe not work on it too much
    • Bug fix to be done
  • From non-uniform frequencies -> linear interpolation to find right frequency
    • Could use spline, but not always the best for oscillating cases
    • Ivan: N. Mounet mentions that one can use log-scale for frequency sampling
    • Adaptive sampling would be very useful for Ivan -> should be made robust

Mihaly: Fast Fourier and Z-transforms with (almost) arbitrary sampling

  • Non-uniform DFT
    • DFT on non-uniform data (type 1)
    • DFT w/ non-uniform freq spacing (type 2)
    • Both (type 3)
  • NUDFTs can be expressed as z-transforms (n log(n))
    • Linear z-transform - > LTI-systems etc
    • Circular -> Fourier transform
    • Padding to proper length, algorithms are equivalent
  • Chirp transform algorithm (CTA)
    • uniform frequency spacing on unit circle in polar space
    • Shift input data with a given frequency and multiply by a chirp modulation
    • Apply a circular convolution and a chirp demodulation 
    • Example with windowed signal: DFT only gives one frequency, but chirp transform reflects also the window
    • Usage: shorten input, zoom in on a given spectrum, fixed impulse response (CCD sensors)
    • Computed usually with fast convolution
  • Chirp z-transform (CZT)
    • Going off the unit circle with a spiral (systems with poles)
    • "Radial gain" with "tangential binning"
    • Fast inverse transform has been developed
  • Python implementations have their problems
    • Some script implementations but they are buggy
  • Could potentially gain with these types of algorithms
    • Can add flexibility to the DFT with CTA and CZT
  • Potential applications:
    • Spectral/mode analysis
    • Potential gain for the induced voltage calculation
    • Next step: check Markus' example in terms of performance
    • Helga: check also whether C++ implementations are available

Ivan: Follow-up on compressed convolution

  • Motivation: speed up simulations with large bunch-by-bunch gaps
  • Compressed wake calculation in PyHEADTAIL
    • Slice only profile on the window that is interesting
    • We get correct results in the region where the bunches sit (not in the gaps)
  • Extension of InducedVoltageTime -> with dictionary (replace with object)
  • Example: compressed wake, SPS flat bottom, 200b, 100 ns spacing (ions)
    • Full convolution and compressed convolution give the same result
    • Circular convolution gives artefacts for the first bunches, but ok for later bunches
  • Performance test with 50 turns
    • x6 speed-up w.r.t. full convolution
    • x3 speed-up w.r.t. frequency domain
    • reducing the window further, can easily gain another factor 2 
    • masks the profile for now (full profile used!), but could try with sparse profile
  • Windowing flexible
  • Relative error very small, Simon: in dynamic case, could cause problems
  • Also slip stacking should work
    • Theo: how quickly would you have to adapt the windows? losing some speed-up, but x5 instead of x6
  • PS application (Alex)
    • combine with multi-turn wake for half-full ring (skip half a ring) -> paralleled even in 
    • how do we make sure different implementations are ok on code design level
    • PS end-to-end simulations to be presented
  • Danilo: does it work the same for all types of impedances? 
    • ​​​​​​​in principle, for resonant and impedance table, yes
    • ​​​​​​​doesn't have to be integer no 
  • First version, to be merged
    • Small unittest to be added

​​​​​​​Globally, need to review code design for different methods

There are minutes attached to this event. Show them.
    • 10:30 10:40
      News 10m
      Speakers: Alexandre Lasheen (CERN), Giulia Papotti (CERN), Heiko Damerau (CERN), Ivan Karpov (CERN), Konstantinos Iliakis (CERN), Luis Eduardo Medina Medrano (CERN), Markus Schwarz (KIT), Panagiotis Tsapatsaris (NTUA), Simon Albright (CERN), Theodoros Argyropoulos (CERN)
    • 10:40 10:55
      Non-homogeneously sampled bunch profile 15m
      Speakers: Markus Schwarz (KIT), Dr Markus Schwarz (Karlsruhe Institute of Technology (Karlsruhe, Germany))
    • 10:55 11:10
      Non-uniform FFT 15m
      Speaker: Mihaly Vadai (CERN)

      Use the .odp to better follow the logic, the .pdf version is approximate.

    • 11:10 11:25
      Follow-up on compressed convolution 15m
      Speaker: Ivan Karpov (CERN)