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