v0.7.0
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