Releases: xsuite/xcoll
Releases · xsuite/xcoll
Xcoll release 0.5.9
Develop Updates
- Moved release API to
xaux
(code centralisation) to ensure version pinning
Full Changelog: v0.5.8...v0.5.9
Xcoll release 0.5.8
Develop Updates
- Bugfix in crystals: the
only_mcs
flag was not set for crystals. Hence, when it was being queried it often wrongly evaluated toTrue
, skipping the the code that follows where the other material-dependent parameters were defined. The rest of material-dependent parameters hence became garbage, leading to wrong results. This bugfix has been spotted by @chiaramaccani and accidentally fixed by @[email protected] - Adapted
df.groupby
ininteraction_record
to be future-proof with pandas
Full Changelog: v0.5.7...v0.5.8
Xcoll release 0.5.7
Xcoll release 0.5.6
What's Changed
- Added
generate_pencil()
andgenerate_delta()
to collimator elements (and deprecatedxcoll.generate_pencil_on_collimator()
andxcoll. generate_delta_from_dispersion()
)
Develop Updates
- Bugfix in
gh.py
- Test reorganisation (to deal with issues with Xsuite automatic testing)
- Bugfix in collimator installation (gave issues with K2)
Full Changelog: v0.5.5...v0.5.6
Xcoll release 0.5.5
What's Changed
- Implemented new API on the line, providing (for now) the following functions:
line.collimators.assign_optics()
line.collimators.open()
line.collimators.to_parking()
line.scattering.enable()
line.scattering.enable()
Develop Updates
- Updated tests and examples for new API
- Fixed
test__list_tests
by giving it a recognisable path
Full Changelog: v0.5.4...v0.5.5
Xcoll release v0.5.4
What's Changed
- Faster initial conditions generation (Twiss by @simoneotelie in #103)
Develop Updates
- Tests and examples for the impact table
- Edge effects in MCS align to edge (for correct exit locations)
- Bugfix in
EverestCrystal
which would make particle get stuck in an (almost) infinite amount of transition or VR effects - Bugfix in
EverestCrystal
that would make some jobs fail channeling (Fixed part0 bug by @chiaramaccani in #106) - Bugfix in ionisation loss which was calculated at the wrong location (Ionization loss and critical angle by @simoneotelie in #94)
- Amorphous and mcs by @simoneotelie in #95
CollimatorManager
deprecated (raises error)- New release script, fully in Python (with built-in API to git, github, and poetry)
- Added boilerplate XcollLineAPI, to allow Xcoll methods on the line (need PR xsuite/xtrack#536 first)
Full Changelog: v0.5.3...v0.5.4
Xcoll release 0.5.3
Develop Updates
- Bugfix in
BlowUp
andEmittanceMonitor
(previous version did double install if name of element already present in line), and adapted tests accordingly - Small change in
BlackCrystal
test to catch an edge case that was wrong
Full Changelog: v0.5.2...v0.5.3
Xcoll release 0.5.2
Develop Updates
Full Changelog: v0.5.1...v0.5.2
Xcoll release 0.5.1
Develop Updates
- Small fix in
InteractionRecord
:BlowUp
andEmittanceMonitor
are no scatter elements, so these should not be logged in the table.
Full Changelog: v0.5.0...v0.5.1
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 aninstall
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 fieldsline
andname
need to be set to have access to the twiss. A methodcalibrate_by_emittance
is provided which sets the blow-up such that the beam gets shifted beyond 5 sigma in roughly 1000 turns. Finally, the fieldamplitude
allows to scale this calibration.EmittanceMonitor
: a monitor that works on anyContext
by 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 aninstall
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 fieldline
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
insideEverestBlock
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 thes
position of the jaw corners
Develop Updates
- Renamed
collimators_src
folder aselements_src
- Bugfix when setting
gap_R
- Several bugfixes in
InteractionRecord
, and made things likeio_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