0.8.0
New features
Intrabeam Scattering
- Implementation of IBS effect in mbtrack2, the
IntrabeamScattering
class 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.
Optics
class
Important behavior change in - Default behavior of
Optics
is changed when AT lattice is loaded: now it defaults to optic function to s=0 instead of average ones. - Default behavior of
LongRangeResistiveWall
andImpedanceModel
when an AT lattice is loaded is to normalized byaverage_beta / local_beta
- Adds
Optics.average_beta
attribute
Nonlinear chromaticity
-
Synchrotron.get_chroma
can be used to compute nonlinear chromaticity from pyAT lattice. - Nonlinear chromaticity can be used in
TransverseMap
andTransverseSectorMap
. -
TransverseMap
now inherits fromTransverseSectorMap
.
SynchrotronRadiation
object
- Adds a
SynchrotronRadiation.qexcitation
optional parameter to turn off quantum excitation. - Improved performance.
Other improvements and modifications
- General performance improvements in many classes.
- Update
CircularResistiveWall
class in resistive_wall.py to replace numerical integrations with analytical forms for improved performance. - Use
scipy.integrate.trapezoid
for compatibility with newer version of numpy - Update
BeamIonElement
to work in a more general case. - Update
TransverseSpaceCharge
to work in a more general case. -
ComplexData.name_and_coefficients_table
is now a staticmethod. - Extend
WakeField
to "mixed" componenets (xydip, yxdip, ...). - Small fix/improvements for rf.py (
CavityResonator
for n_bin=1) - Add
Element.track_bunch_if_non_empty
decorator. - Modify
Bunch.binning
to add areturn_full_length
optional parameter. - Modify
Mpi.share_distributions
for n_bin=1. - Modify
WakePotential
for n_bin=1 and usetrack_bunch_if_non_empty
decorator. - Modify
PhysicalModel
to return errors if needed. - Adds
Beam.init_bunch_list_mpi
, a convenience method to initialize a beam using MPI parallelisation with aBunch
per core.
Project management
- Add > 400 tests and organize them in unit-tests and physics-tests.
- Add
assert_attr_changed
test 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
Monitor
sub-classes sometimes getting stuck when flushing data. - Fix
generate_transverse_map_sector
functionality to deduce chromaticity from pyAT lattice.
Authors who took part in this release
Alexis Gamelin, Vadim Gubaidulin, Keon Hee Kim, Watanyu Foosang, Teresia Olsson
Merge request reports
Activity
Hi @gubaidulinvadim, I found that this change also requires importing the sys module when I tried to run it. I had to add 4c54d8ac for it to work. Does it work for you without adding that import?
Hi @TeresiaOlsson, I must admit that I might not have tested this commit yet, as it is still in the develop branch. I haven't recreated a new container for my scripts with this version yet, so adding "sys" import is a good addition!
assigned to @GAMELIN
mentioned in commit 3e2b1d8c
Please register or sign in to reply