Skip to content
Tags give the ability to mark specific points in history as being important
  • 0.6.0 Release: 0.6.0
    # New features
    Add storage ring data export to pyAT, Synchrotron.to_pyat retrun a pyAT simple_ring element.
    Add an IIR filter in the ProportionalIntegralLoop class.
    Add a current generator (Ig) modulation in the ProportionalIntegralLoop class.
    # Other improvements and modifications
    ## Performance
    Change the way Bunch particles coordinates are stored and accessed.
    Speed-up TransverseMap.
    Refactor WakePotential and add interp_on_postion option to allow for faster tracking, if False, the wake potential is interpolated on the bin center and each particle of the bin get the same value.
    ## Others
    CavityMonitor now also records DFB_ig_phasor.
    Add form factor option to CavityResonator.set_optimal_detune.
    Update lcbi_growth_rate_mode, lcbi_growth_rate and lcbi_stability_diagram to optionally take  synchrotron_tune as input.
    Add a CavityResonator.is_CBI_stable wrapper over lcbi_growth_rate.
    ## Project management
    Add, update and YML dependency file.
    Add first unit tests for Synchrotron, Optics and Bunch class.
    Update .gitignore.
    # Bugfix
    Fix resonator wake function for negative time and update docstrings.
    Fix printing in BeamLoadingEquilibrium.
    Fix double_sided_impedance for pandas>=2.X.X
    # Authors who took part in this commit
    Alexis Gamelin, Naoto Yamamoto, Vadim Gubaidulim
  • 0.5.0
    71de9837 · Update ·
    Release: 0.5.0
    # New features
    ## Add various kind of loops and feedback for CavityResonator class
    Add an interface in CavityResonator to allow for external FB and loops.
    Add generator_phasor_record and ig_phasor_record attributes to CavityResonator.
    Also change CavityMonitor and plot_cavitydata to record and display the new attributes.
    Add ProportionalLoop, TunerLoop, ProportionalIntegralLoop and DirectFeedback class.
    Add update_feedback method to CavityResonator to force FB update when needed.
    Update CavityMonitor to now record Vc and theta.
    Add option "mean" to plot_cavitydata to plot the mean phasor voltage and angle versus time for non empty bunches.
    Add option "tuner_diff" to plot_cavitydata to plot the phase difference between cavity and generator current.
    Add sample_voltage method to CavityResonator, used to sample the voltage seen by a zero charge particle during an RF period.
    ## Add higher order momentum compaction factor
    Add mcf_order optional parameter for Synchrotron class to prodivde higher-orders momentum compaction factor.
    Add Synchrotron.get_mcf_order method to compute momentum compaction factor up to 3rd order from AT lattice.
    Add Synchrotron.get_longitudinal_twiss method to compute the longitudinal Twiss parameters and the synchrotron tune for single or multi-harmonic RF systems.
    The longitudinal invariant Js is now computed in Bunch.cs_invariant and Beam.bunch_cs and save by BeamMontior and BunchMonitor, its value is 0 by default if the longitudinal Twiss parameters are not provided in the Synchrotron class.
    ## Other new features
    Add monopolar component to WakeField and WakePotential class.
    Add loss_factor computation for WakeFunction class.
    Update read_ABCI function so it can now read files with monopolar and dipolar components together.
    Added group_attributes and rename_attribute convenience methods to the ImpedanceModel class.
    Add share_stds method to Mpi class.
    Update spectral_density function with Chebyshev, Legenre and Sacherer modes.
    Add head_tail_form_factor and tune_shift_from_effective_impedance functions.
    Various small improvements.
    ## Project management
    Add pyproject.toml and pypi integration through poetry.
    Reformat the code using the yapf and isort formatters.
    # Bugfix
    Fix Bunch.plot_phasespace for up to date version of seaborn.
    Fix Bunch.emit calculation for off center beams.
    Fix the sign of long wake in LongRangeResistiveWall.
    Fix Hermite mode to include normalisation by the mode number.
    Fix various typo and docstrings.
    # Authors who took part in this commit
    Alexis Gamelin, Naoto Yamamoto, Vadim Gubaidulim
  • 0.4
    # New features
    Rework and vastly improve the ImpedanceModel class.
    Add a new TransverseMapSector element to tracking between two positions.
    Add the transverse_map_sector_generator convenience function which generate a list of TransverseMapSector elements from a ring with an AT lattice.
    Update the Optics class to be able to compute the phase advance at any location on the lattice.
    Add a new method to BeamLoadingEquilibrium to compute the PTBL threshold.
    Add the lcbi_stability_diagram function to plot the longitudinal coupled bunch instability stability diagram for a arbitrary list of CavityResonator objects.
    Improve the lcbi_growth_rate_mode and lcbi_growth_rate functions.
    Add save and load methods for Bunch and Beam objects.
    Improve the PhysicalModel class, the change_values and taper methods are now more pratical to use and add get_aperture and plot_resistivity methods.
    Add Synchrotron.get_adts method which computes ADTS from AT lattice.
    Add read_ABCI, read_ECHO2D and improve read_CST functions to import external data.
    Add a plot method for both Impedance and WakeFunction class.
    Added class representation for ComplexData, Impedance, WakeFunction, WakeField, Bunch and Beam classes.
    Rework the deconvolution/from_wakepotential/to_impedance methods for them to work with any data loaded in the Impedance/WakeFunction classes and not just CST text files.
    Improved WakeField class by adding __iter__ and __add__ methods.
    Add new Jupyter notebooks for collective effects and bunch by bunch feedback.
    # Bugfix
    Fix Coating impedance convention.
    Fix ADTS implementation in TransverseMap to use Jx/Jy instead of x/y.
    Fix ImpedanceModel.power_loss_spectrum that needs a double sided impedance spectrum.
    Fix ExponentialDamper class.
    Fix a hard coded value of 0.5 A in BeamLoadingEquilibrium class.
    Fix transverse wake sign in get_gaussian_wakepotential.
  • 0.3
    Add bunch by bunch feedback module with ExponentialDamper and FIRDamper classes.
    Various improvement for WakeFunction, Impedance and WakeField classes.
    Add save and load functions to ImpedanceModel and WakeField classes.
    Performance improvement for WakePotential class.
  • 0.2
    Add the Courant Snyder invariant to the saved data in the BunchMonitor and BeamMontior.
    Add an n_bin optional parameter for CavityResonator.
    Add a new example notebook for RF cavities and longitudinal beam dynamics.
    Fix several bugs on the Monitor module.
    Fix a bug in the Impedance class.
  • 0.1
    First release of mbtrack2.