**Changes:** - Introduce e-lens with arbitrary radial profile. - Subtract arbitrary dipolar kick in wire beam element. - Introduce LongitudinalLimitRect beam element. - Make effective quantum radiation robust against dynamic beta. - Element-by-element monitor now saves value at the end of the line. - Tracker.twiss computes values at the end of the line (solves issues with tune computation when the last element is a drift). Added input flag values_at_element_exit to get optionally get values at the exit of the elements. - More efficient implementation of Line.copy. - Fixed issue with repeated names in Line.to_dict. - Option inplace=False is not anymore allowed in Line.remove_inactive_multipoles, LIne.remove_zero_length_drifts, Line.merge_consecutive_drifts and Line.merge_consecutive_multipoles. User should explicitly make a copy of the line before the simplification steps. - Further development of pipelined multibunch simulation capabilities, in view of strong-strong beam beam simulations.
0.17.0
**Changes:** - Rewritten mad_loader, new features: - Improved import of MAD-X expressions - Import of tilt and offsets for elements and apertures from MAD-X elements and error tables - Introduced Line.to_pandas and Line.check_aperture methods - Introduced flag to skip loss location refinement for certain element classes, e.g. collimators
0.16.2
**Changes:** - Introduced mechanism to pass custom headers to Tracker - Introduced compilation flag to disable radiation in Multipole at compile time (beneficial for performance)
0.16.1
**Changes:** - Refactored BeamElement class and metaclass to remove duplicated code and features from xobjects.HybridClass. - Kernel declarations can be provided through the _kernel dictionary when subclassing BeamElement. - Additional dependencies from xobjects types can be specified through the _depends_on list when subclassing BeamElement. - Adapted to new Xobjects API (C source code provided in _extra_c_sources inside class declaration, _move_to renamed to move, XoStruct renamed to _XoStruct). - Renamed per_particle_kernels to _per_particle_kernels. - LocalParticle API is temporarily appended to the Particles class API just before compiling the track kernels. It is removed right after the compilation.
0.16.0
**Changes:** - Removed dress_element function. Now there is only one mechanism to create beam elements which is to inherit from the BeamElement class. - Across the package xobjects.DressedStruct has been replaced with xobjects.HybridClass following update in xobjects. - Introduced pipeline features (preparation for strong-strong beam beam simulations): - Collective elements can put the tracking on hold; - Tracker handles the hold condition and can resume the tracking when the Tracker.resume method is called; - Introduced PipelineMultitracker objects to handle multiple ongoing tracking sessions. - Introduced custom per-particle kernels attached to beam elements. - Regenerated all json files in test_data folder following refactoring of beam-beam classes in xfields. - Introduced _arr2ctx internal method to transfer arrays to context if needed. - extra_sources are now specified as member of the BeamElement class and not attached a posteriori to the XoStruct as done before. - Adapted ducktrack to setup beam-beam elements from dictionaries produced with he new data structure implemented in xfields.
0.15.0
**Changes:** - knl and ksl stored directly in Multipole and RFMultipole data structures (instead of bal). Improves significantly the speed when these are changed dynamically in the simulation. - Restored set of canonically conjugate variables in R matrix, now using (x, px, y, py, zeta, pzeta)