13.16 Highlights of What’s New in Version 33.1.1, 25 July 2017
Here is a summary of what’s changed since release 33.0.
13.16.1 Bug Fixes for Elements
- The BGGEXP element had a bug that prevented it from working when two elements used the
same data file. This was fixed.
- The BGGEXP element refused to run if m = 1 (dipole) was the main multipole, which prevented
modeling wigglers. This was reported by forum user Ji_Li and was fixed.
- The RFDF element had a bug in computing the energy-dependence of the time of flight,
as reported by Daniel Marx. This was fixed. The missing phase reference feature was also
- Using the third-order matrix of the QUAD element with RADIAL=1 would result in a crash. This
was fixed. Forum user meisal reported the bug.
13.16.2 Bug Fixes for Commands
- Fixed a bug in load_parameters related to the allow_missing_elements and
allow_missing_parameters qualifiers. In runs with multiple load_parameters commands,
only the last values of these parameters were used.
- Fixed a bug in saving parameters when elements are subdivided: the lengths of certain
elements were incorrect in the saved file.
13.16.3 New and Modified Elements
- The IONEFFECTS element and the companion ion_effects command were added. These allow
simulation of the interaction of the beam with residual gas ions. J. Calvey (ANL) did much
of the work on these new features.
- Added SLICE element to provide turn-by-turn slice analysis.
- The CSBEND element now includes skew multipole errors up to eighth order. This involves
newly-computed expressions for the fields in curvilinear coordinates, so slight numerical
changes may be seen.
- The KSEXT and SEXT elements now support a skew-quad correction term. This was suggested
by Z. Duan (IHEP).
- Synchrotron radiation effects were added to the BGGEXP element, so that radiation effects from
essentially arbitrary fields can be included in both tracking and moments_output calculations.
There are limitations as described in the manual page.
- Improvements were made to memory management for numerous elements, chiefly
CSBEND, CSRCSBEND, CWIGGLER, FRFMODE, FTRFMODE, RFMODE, SLICE, TFBDRIVER, TRFMODE,
ZTRANSVERSE, and ZLONGIT. This can dramatically decrease memory usage in some cases.
- The TFBPICKUP and TFBDRIVER elements (used for turn-by-turn feedback) now have start-
and end-pass controls.
- The MATTER element now has start- and end-pass controls.
- To improve performance and simplify the code, the SQRT_ORDER parameter on the CSBEND,
FMULT, KOCT, KQUAD, KQUSE, and KSEXT elements is now nonfunctional. The default behavior
(exact square roots) is unchanged.
- The BMXYZ element now has the option for classical synchrotron radiation. It can also check
the divergence and curl of the fields to assess the quality of the field solution.
- Added the BX and BY parameters to the BGGEXP element, to allow imposing a uniform
“external” magnetic field.
- It is now possible to interleave zero-length LSCDRIFT elements with CSRCSBEND elements with
CSR fields building up through the successive CSRCSBEND elements. This was added following
a related forum post by Aaron Fetterman.
13.16.4 New and Modified Commands
- Added the elastic_scattering command, which assists in computation of the elastic gas
scattering lifetime and the distribution of lost particles. This is only available in the parallel
- Added bpm_output option to the correct command, which provides optional output of beam
position monitor readings after orbit or trajectory correction. This was suggested by V. Sajaev
- The twiss_output command now records the location of the acceptance-limiting apertures
in parameters AxLocation and AyLocation.
- The track command has a new field, interrupt_file, which gives the name of a file to
monitor as a semaphore to interrupt the tracking. If the file is created or updated during
tracking, then tracking will terminate on completion of the next pass.
13.16.5 Changes Specific to Parallel Version
- The elastic_scattering command was added. It performs parallel tracking to determine
the angular acceptance at a series of s locations. The data is intended for use with the
script elasticScatteringAnalysis, which allows determination of the elastic gas scattering
lifetime and loss distribution. This command is presently only available in Pelegant, due to
the long runtime required.
13.16.6 Changes Specific to the GPU Version
The GPU version continues to be an alpha release and contains bugs. Users are encouraged to
test results against the serial or parallel versions.
13.16.7 Changes to Related Programs and Files
- The computeGeneralizedGradients script (used to prepare data for the BGGEXP element) did
not work for odd multipole orders (e.g., dipole, sextupole, ...) or fields that are odd functions
of z. This was reported by forum user Ji_Li and has been fixed, with the assistance of R.
- The program sddsmatchmoments was added. It allows generating a particle distribution to
match the moments from the moments_output command.
- The LFBFirSetup script was added. It helps set up FIR filters for longitudinal turn-by-turn
- touschekLifetime can now use data from the SLICE element in elegant for slice-based
- The script removeBackDrifts was added. It allows post-processing s-dependent files to
remove negative drifts, which improves the appearance of plots and is needed for certain types
- The program sddsemitproc now has the ability to specify the independent variable on the
commandline. This was suggested by forum user jan.
- The TFBFirSetup script, which helps set up FIR filters for transverse turn-by-turn feedback,
can now support filters with up to 30 terms.