# 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