Xcoll release 0.5.0
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), anduse_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 aninstallclassmethod 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 fieldslineandnameneed to be set to have access to the twiss. A methodcalibrate_by_emittanceis provided which sets the blow-up such that the beam gets shifted beyond 5 sigma in roughly 1000 turns. Finally, the fieldamplitudeallows to scale this calibration.EmittanceMonitor: a monitor that works on anyContextby accumulating (usingAtomicAdd) the 6D covariances of the physical coordinates. It provides the fieldsgemitt_x,gemitt_y,gemitt_zeta,nemitt_x,nemitt_y,nemitt_zeta,gemitt_I,gemitt_II,gemitt_III,nemitt_I,nemitt_II, andnemitt_III. The class has aninstallclassmethod 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 fieldlineneeds to be set to have access to the reference particle.- Added examples and test for those elements
- Fixed bug by @simoneotelie in #84:
activeinsideEverestBlockwas ignored - Pencil crystal by @chiaramaccani in #87
- Installing collimators by family is now possible.
- Particle fields in
InteractionRecordhave been renamed (x_before,x_after, etc) - Record flags in
InteractionRecordhave been renamed (record_impacts,record_exits,record_scatterings) - Fixed crystal geometry for right-sided crystals
- Added views to
BaseCollimatorto get thesposition of the jaw corners
Develop Updates
- Renamed
collimators_srcfolder aselements_src - Bugfix when setting
gap_R - Several bugfixes in
InteractionRecord, and made things likeio_buffermore 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
Everestwould fail for a material with the_only_mcsflag. This is fixed now, but the logic should be rethought
Full Changelog: v0.4.0...v0.5.0