BLonD code development meeting

→ Europe/Zurich
864/1-B04 (CERN)

864/1-B04

CERN

22
Show room on map

News

HPC workshop on 25th March 2020. Gather user experience from RF group: feedback to Christine/Giovanni.

  • Markus: with MPI, simulation now takes only 3 h, but waiting time is 24 h -> HTCondor better option at the moment
  • Need more MPI resources
  • To be exploited: HTCondor GPU resources

Generating distributions (Alex)

Clean-up was not yet done. Ideas presented today

  1. Single bunch, no matching: add more functions, such as elliptic
  2. Single bunch, with matching: lots of options, some redundant
    • Use objects or dictionaries (kwargs) for options
    • For emittance and bunch length definition: use Markus' work
    • With intensity effects: fixed number of iterations so far; no convergence criterion used (on n_slices)
  3. Multi-bunch, with matching: like single bunch, keeping the wake function in memory. Drawbacks:
    • For a fixed bunch spacing
    • Not adapted for multi-turn wake
    • Slow algorithm

Joël's implementation: match_beam_from_distribution, match_beam_from_distribution_multibunch. Generates the full beam at the same time. Advantages:

  • Can cope with multi-turn wake
  • Higher resultion in induced voltage and faster algorithm
  • Disadvantage: memory consumption high for this algorithm

Markus: SPS has a lot of different impedance sources -> calculation on fine grid expensive, and deepcopy causes memory usage to increase at each iteration. His version for multi-bunch generation:

  1. Use a single table for the total Z model
  2. Store or copy option in objects (see Markus' fork)
  3. Bunch spacing -> buckets filled (see Markus' fork)
    • Defining bucket centers required different options for different machines

Alex: required for all distributions:

  • Clean up input
  • Review algorithms
  • Add unittests
  • Add standard plots for users,  consistent for all different algorithms

Ivan/Alex: electron bunches w/ SR: very short, require zoom on grid

Alex: new features planned:

  • Zoom in on grid/bucket
  • Match with SR
  • Match (pretrack) with LLRF
  • Tilted bunches
  • Issues with deepcopy -> usage of deepcopy to be avoided

Helga: TOP PRIORITY is:

  • Unittests -- START WITH THIS before doing modifications
  • Handover from Markus' developments

Alex: two functions planned

  1. generate_beam
  2. generate_beam_matched
  • include analytic package of Markus
  • more extensive use of blond_common

How to reference blond_common -- as a submodule or as a stand-alone package -> T.B.D. next meeting

BLonD-MPI merge (Kostis)

Pull request done. See README ofr MPI usage and installation. Changes are:

  • blondmath interface change
  • race condition in drift fixed
  • travis and appveyor fixed
  • travis: FFT testing added
  • improved README
  • logging removed from tracker, as not compatible with deepcopy for MPI
  • beam spectrum performance improvement: only calculate once per turn, even if multiple Vind objects
  • remove parametrized module (extra dependency)
  • requirements.txt to see dependencies
  • CI for MPI test files
  • 11 MPI main files (that use tracking)
  • beam_phase() in bm
  • bm header

Team: pull request can be merged

Kostis: runtime of new drift implementation cont'd

  • only a minor variation with alpha=0,1,2 order

Pull request by Markus

  • fixes inconsistent frequency resolution in InducedVoltageTime and InducedVoltageFreq
  • now usees n_FFT points also in process()
  • not propagated to wake length (but that was debugged by Juan)

Team: OK to merge, but check CI before merge!

Next time: clean up pending issues and pull requests

There are minutes attached to this event. Show them.
    • 10:30 → 10:40
      News 10m
      Speakers: Aaron Farricker (CERN), Alexandre Lasheen (CERN), Christoffer Hjerto Grindheim (Western Norway University of Applied Sciences (NO)), Giulia Papotti (CERN), Ivan Karpov (CERN), Konstantinos Iliakis (CERN), Luis Eduardo Medina Medrano (CERN), Markus Schwarz (CERN), Simon Albright (CERN), Theodoros Argyropoulos (CERN)
    • 10:40 → 11:00
      Distribution generation clean-up 20m
      Speaker: Alexandre Lasheen (CERN)
    • 11:00 → 11:20
      Merging BLonD and BLonD-mpi 20m
      Speaker: Konstantinos Iliakis (CERN)