BLonD code development meeting
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
- Single bunch, no matching: add more functions, such as elliptic
- 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)
- 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:
- Use a single table for the total Z model
- Store or copy option in objects (see Markus' fork)
- 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
- generate_beam
- 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