0.8.0
New features
Intrabeam Scattering
- Implementation of IBS effect in mbtrack2, the
IntrabeamScatteringclass was added in mbtrack2.tracking.ibs. - It implements an approximate IBS kick based on an analytical model.
- Four analytical models are available: Piwinski Standard, Piwinski Modified, Completely Integrated Piwinski model, and Bane high-energy approximation. It is recommended to use Completely Integrated Piwinski model (CIMP) for fast simulations.
Important behavior change in Optics class
- Default behavior of
Opticsis changed when AT lattice is loaded: now it defaults to optic function to s=0 instead of average ones. - Default behavior of
LongRangeResistiveWallandImpedanceModelwhen an AT lattice is loaded is to normalized byaverage_beta / local_beta - Adds
Optics.average_betaattribute
Nonlinear chromaticity
-
Synchrotron.get_chromacan be used to compute nonlinear chromaticity from pyAT lattice. - Nonlinear chromaticity can be used in
TransverseMapandTransverseSectorMap. -
TransverseMapnow inherits fromTransverseSectorMap.
SynchrotronRadiation object
- Adds a
SynchrotronRadiation.qexcitationoptional parameter to turn off quantum excitation. - Improved performance.
Other improvements and modifications
- General performance improvements in many classes.
- Update
CircularResistiveWallclass in resistive_wall.py to replace numerical integrations with analytical forms for improved performance. - Use
scipy.integrate.trapezoidfor compatibility with newer version of numpy - Update
BeamIonElementto work in a more general case. - Update
TransverseSpaceChargeto work in a more general case. -
ComplexData.name_and_coefficients_tableis now a staticmethod. - Extend
WakeFieldto "mixed" componenets (xydip, yxdip, ...). - Small fix/improvements for rf.py (
CavityResonatorfor n_bin=1) - Add
Element.track_bunch_if_non_emptydecorator. - Modify
Bunch.binningto add areturn_full_lengthoptional parameter. - Modify
Mpi.share_distributionsfor n_bin=1. - Modify
WakePotentialfor n_bin=1 and usetrack_bunch_if_non_emptydecorator. - Modify
PhysicalModelto return errors if needed. - Adds
Beam.init_bunch_list_mpi, a convenience method to initialize a beam using MPI parallelisation with aBunchper core.
Project management
- Add > 400 tests and organize them in unit-tests and physics-tests.
- Add
assert_attr_changedtest function. - renamed particles_electromagnetic_fields.py into emfields.py and changed all the imports
- added CODEOWNERS file for automatic review assignment for merge requests
- Update pyproject.toml and poetry.lock with pytest-mock
Bugfix
- Fix
CavityResonator.is_CBI_stable - Fix quadrupolar wake potential sign
- Bugfixes with beam_ion_elements.py
- Fix adts in
TransverseMapSector - Fix
WakePotential.check_sampling - Fix
Sweep.plot - Fix
Monitorsub-classes sometimes getting stuck when flushing data. - Fix
generate_transverse_map_sectorfunctionality to deduce chromaticity from pyAT lattice.
Authors who took part in this release
Alexis Gamelin, Vadim Gubaidulin, Keon Hee Kim, Watanyu Foosang, Teresia Olsson