13.30 Highlights of What’s New in Version 31.0, 1 Oct. 2016
Here is a summary of what’s changed since release 30.1.
13.30.1 Bug Fixes for Elements
- The touschek_scatter command had a bug when random multipoles where used on KQUAD
and KSEXT elements. In particular, these multipoles components were re-randomized for each
TSCATTER element. This was discovered and fixed by A. Xiao (ANL).
- The implementation of edge effects in the KQUAD element was using x′ and y′ in place of qx
and qy, and so was not symplectic. It also did not have the correct dependence on δ. These
issues were reported by R. Lindberg (ANL). A similar error was fixed in the implementation
of edge effects for CSBEND; this was fixed by Y.P. Sun (ANL). Practically speaking, we haven’t
noticed any significant change in results.
- There was a bug in the evaluation of systematic multipoles when using the second-order
integrator for KQUAD and KSEXT. The default fourth-order integrator did not have this issue.
- Higher-order path-length issues were fixed for the BRAT element. This issue was reported by
R. Lindberg (ANL).
- The steering kick calibration factors are no longer ignored on the KQUAD element.
- The BMXYZ and BMAPXY elements lacked dependence on the momentum deviation δ. This issue
was reported by R. Lindberg (ANL).
13.30.2 New and Modified Elements
- Added the BGGEXP element, which performs tracking through magnetic fields constructed from
a generalized gradient expansion [50]. Although the integration is not symplectic, the fields
satisfy Maxwell’s equations exactly. A script, computeGeneralizedGradients, is provided to
assist in preparing input for this element. Advice from M. Venturini (LBNL) was helpful in
performing this work.
- Added separate specification of edge and body multipoles to the KQUAD and KSEXT elements.
- Added steering and steering multipoles to the KSEXT element.
- The BMXYZ element now allows independent specification of the insertion length and field map
length.
- The code for the KQUAD, KSEXT, MULT, and FMULT was improved to prevent underflows that
might occur in some odd cases, which would negatively affect accuracy.
- The LSRMDLR element now includes an option for a helical device. This was requested by
forum user zzhang and implemented by Y.-P. Sun (ANL).
- Two additional parameters, SampledParticles and SampledCharge were added to WATCH
files in coordinate mode. These are identical to Particles and Charge, respectively, except
when the FRACTION parameter is < 1. In that case, the latter parameters give the values
prior to sampling, while the new parameters give the parameters of the sampled fraction
of the bunch. Previously, Particles and Charge changed as FRACTION was changed. Note
that scripts that use the Particles and Charge may need modification since the meaning has
changed. Y. Ding (SLAC) pointed out this issue.
13.30.3 New and Modified Commands
- The analyze_map command can now report the map using canonical variables. It also has a
user-controlled accuracy parameter that can be used to eliminate spurious matrix elements.
R. Lindberg (ANL) helped with the development and testing.
- The touschek_scatter command now uses averaging of the loss rate over the interval
between two TSCATTER elements instead of the local value at the element, which gives
more accurate estimates of the distribution of scattered particles. This change requires that
TSCATTER elements be inserted at the beginning and end of the beamline, which can be
done using add_at_end=1 and add_at_start=1 in the insert_elements command. This was
implemented by A. Xiao (ANL).
- The modulate_elements command now offers more control over verbose printouts, to help
reduce the volume of uninformative printouts. It also provides user control of the buffer
flushing interval for the record output file.
- The insert_elements command now has the option to insert an element at the beginning
of the beamline.
13.30.4 Changes to Related Programs and Files
- The script computeGeneralizedGradients was added to assist in preparing input for the
BGGEXP element.
- The scripts elasticScatteringLifetime and bremsstrahlungLifetime now support
user-specified gas composition. The Z values for carbon and oxygen were mixed up in some
places in these and related scripts, as pointed out by S. Tian (IHEP); this was fixed.
- The ionTrapping script now supports user-provided factors for inflating the emittance and
energy spread.