Skip to content

Finalize integration of noise sensitivity (eta) computation into DELPHI

Nicolas Mounet requested to merge eta_computation_within_DELPHI into master
  • Major simplification of DELPHI functions with scan: returning now a dictionary with various results, depending on input flags
  • Introducing eta_dipole and eta_crab in the output dictionary (with new flags to trigger their computation) to get the sensitivity to noise. eta_dipole contains the dipole sensitivities for all coupled-bunch modes computed nx and the kmaxplot most unstable modes for each nx (same for eta_crab, with the sensitivity to crab noise).
  • Test introduced to make sure the computation of eta (dipole noise) matches the BTF theory without wake-fields, in the case when the impedance is very small (see ref. below, eq. 22).
  • A few old bugs found and corrected in DELPHI_wrapper, especially with eigenvectors.
  • A new output, nx_most, has been added to the returned dictionary, containing tuples of the form (inx,nx) with the index inx of the most unstable coupled-bunch mode in nxscan, and nx=nxscan[inx].
  • For examples of usage, check out DELPHI/Tests/run_and_check_DELPHI.py, and DELPHI/Examples/example_LHC_Ft_2017.py (the former can be run without any additional requirements, but the latter needs additional impedance files and the IW2D repository).

The computation of eta and its testing, was made possible by X. Buffat and S. Furuseth. For more explanations, the user is referred to

"Vlasov description of the beam response to noise in the presence of wakefields in high-energy synchrotrons: beam transfer function, diffusion, and loss of Landau damping", Sondre Vik Furuseth & Xavier Buffat, The European Physical Journal Plus volume 137, Article number: 506 (2022)

The modifications of this MR change the output of the functions eigenmodesDELPHI_converged_scan, eigenmodesDELPHI_converged_scan_lxplus and DELPHI_wrapper, in a non back-compatible way. This means that, typically, one has to change lines like

(tuneshiftQp[:,:,:,:,:,:,:,:],tuneshiftm0Qp[:,:,:,:,:,:,:]) = DELPHI_wrapper(...)

into

result_dict = DELPHI_wrapper(...)
tuneshiftQp = result_dict['tuneshiftQp']
tuneshiftm0Qp = result_dict['tuneshiftm0Qp']

(here for DELPHI_wrapper, in the case with flagm0 set to True).

Edited by Nicolas Mounet

Merge request reports