Skip to content

Xcoll release 0.5.0

Choose a tag to compare

@freddieknets freddieknets released this 29 Jul 20:52
· 531 commits to main since this release
700204d

What's Changed

  • Two new elements:
    • BlowUp: to add random kicks to a beam. Two modes of operation are possible; use_individual_kicks=False (default), where each particle gets the same kick (though different turn-by-turn), and use_individual_kicks=True, where each particle gets a different kick. The latter option is not realistic but provides a smoother blow-up (which is sometimes easier to work with in simulation). The class has an install classmethod to instantiate the element and install it in a line in one go (returning the instance). If the element is instantiated and installed manually, the fields line and name need to be set to have access to the twiss. A method calibrate_by_emittance is provided which sets the blow-up such that the beam gets shifted beyond 5 sigma in roughly 1000 turns. Finally, the field amplitude allows to scale this calibration.
    • EmittanceMonitor: a monitor that works on any Context by accumulating (using AtomicAdd) the 6D covariances of the physical coordinates. It provides the fields gemitt_x, gemitt_y, gemitt_zeta, nemitt_x, nemitt_y, nemitt_zeta, gemitt_I, gemitt_II, gemitt_III, nemitt_I, nemitt_II, and nemitt_III. The class has an install classmethod to instantiate the element and install it in a line in one go (returning the instance). If the element is instantiated and installed manually, the field line needs to be set to have access to the reference particle.
    • Added examples and test for those elements
  • Fixed bug by @simoneotelie in #84: active inside EverestBlock was ignored
  • Pencil crystal by @chiaramaccani in #87
  • Installing collimators by family is now possible.
  • Particle fields in InteractionRecord have been renamed (x_before, x_after, etc)
  • Record flags in InteractionRecord have been renamed (record_impacts, record_exits, record_scatterings)
  • Fixed crystal geometry for right-sided crystals
  • Added views to BaseCollimator to get the s position of the jaw corners

Develop Updates

  • Renamed collimators_src folder as elements_src
  • Bugfix when setting gap_R
  • Several bugfixes in InteractionRecord, and made things like io_buffer more robust
  • Two bugfixes in lossmap:
    • particles lost in an aperture directly after a crystal should stay in that aperture (as the crystal is too small to follow the same logic as the regular collimators in this situation)
    • Typo in line_is_reversed
  • Better tests for BlackAbsorber
  • Adapted impacts tests, however, exit tests fail (need to investigate)
  • Materials database in Everest slightly adapted to be more flexible (SixTrack <-> Xcoll)
  • Tracking Everest would fail for a material with the _only_mcs flag. This is fixed now, but the logic should be rethought

Full Changelog: v0.4.0...v0.5.0