Skip to content
# New features

## Space Charge

* Adds transverse space-charge module, implemented in TransverseSpaceCharge class.
* Space-charge is implemented as a slice-by-slice kick utilising the Bassetti-Erskine formula.
* Adds electromagnetic fields module. Handles Faddeeva function and electromagnetic fields for space-charge and beam-ion interactions.

## Ions

* Adds a beam_ion_effects module. It handles the generation of ions from a given residual gas pressure and the interaction between ions and the stored beam.
* Beam-ion interaction is implemented with weak-strong, strong-strong and Particle-In-Cell models.
* New classes: BeamIonElement, IonParticles, IonAperture, IonMonitor

## Add a Sweep element

* The new Sweep element can excite the beam between two frequencies, i.e., apply frequency sweep (chirp) to all or a given bunch in the chosen plane.
* Add option to save higher order spectrums in BunchSpectrumMonitor.
* Modify plot_bunchspectrum and streak_bunchspectrum to plot higher order spectrums.

## Other improvements and modifications

* Updated yokoya_elliptic with an analytical implementation.
* BeamLoadingEquilibrium is now computed on a grid and much faster.
* Add bunch_spectrum and plot_bunch_spectrum to BeamLoadingEquilibrium.
* Add R_factor calculation (Touschek lifetime ratio) to BeamLoadingEquilibrium.
* Add form factor contribution to lcbi_growth_rate_mode and lcbi_growth_rate.
* The energy_loss and power_loss_spectrum methods for ImpedanceModel can now take any bunch spectrum in an optional argument.

## Project management

* Added sphinx/readthedocs documentation
* Update README.md
* Added dynamic versioning and version print on import
* Added "please cite the following papers" on import
* Add Dockerfile based on gitlab-registry.synchrotron-soleil.fr/pa/collective-effects/python_mpi
* Add gitlab CI/CD .gitlab-ci.yml file
  * Add run test suite and formatters when there is a merge request or commit on "stable" or "develop" branch.
  * Build docker image and pip package when a tag is pushed and committed on "develop".

# Bugfix

* Fix resonator longitudinal wake function
* Fix an issue with random sampling in PhaseSpaceMonitor
* Fix plotting in plot_phasespacedata
* Fix some docstrings
* Fix emittance and CS invariant calculation when dispersion is included.

# Authors who took part in this release

Vadim Gubaidulin, Alexis Gamelin, Keon Hee Kim, Watanyu Foosang