- description: sddsrandmult computes the multipole errors in a quadrupole or sextupole due
to various construction errors. The program is based on the analysis of Halbach, with
which I’ll assume the reader is familiar. Instead of separately evaluating the effect of certain
types of mechanical errors, it allows one to simulate several types of errors in order to get
statistical distributions for the multipole perturbations.
inputFile is a text file containing a series of namelist commands specifying the parameters of a
quadrupole or sextupole, the type and amplitude of the errors to include, and the filenames for
output. Each namelist command results in a complete computation and generation of output
The namelist command is perturbations. It has the following fields:
- type — A string value, either “quadrupole” (default) or “sextupole”.
- name — An optional string value giving the name of the element. This is used in preparing
data for elegant.
- SDDS_output — An required string value giving the name of an SDDS file to which
data for each seed will be written. This file can be used to compute statistics or perform
- elegant_output — An optional string value giving the name of a text file to which
elegant commands and element definitions will be written. Note that this file is a
mixture of commands and element definitions. As such, the user must manually edit the
file and place the appropriate parts in the lattice file and the command file.
- kmult_output — An optional string value giving the name of an SDDS file to which
data will be written in the format accepted by the RANDOM_MULTIPOLES feature of the
KQUAD and KSEXT elements. This is the recommended data to use with elegant.
- effective_length — The effective length of the magnet, in meters.
- bore_radius — The bore radius of the magnet, in meters.
- reference_radius — The reference radius for the multipole output, in meters.
- dx_pole — The rms error, in meters, to be imparted to the horizontal position of each
- dy_pole — The rms error, in meters, to be imparted to the vertical position of each
- dradius — The rms error, in meters, in the bore radius.
- dx_split — The rms error, in meters, to be imparted to the horizontal distance between
the left and right sides of the magnet.
- dy_split — The rms error, in meters, to be imparted to the vertical distance between
the top and bottom halves of the magnet.
- dphi_halves — The rms error, in radians, to be imparted to the relative rotation of the
top and bottom halves of the magnet.
- n_cases — The number of cases to simulate (default is 1000).
- n_harm — The number of harmonics to simulate. The default is 0, which results in
computing all the harmonics for which Halbach indicates his treatment applies.
- random_number_seed — The initial seed for the random number generator. Should be
a large integer.
- long suppress_main_error — If non-zero, harmonics for the main multipole and
lower orders are suppressed. It is implicitly assumed that these are correctable through
alignment and calibration.
- author: M. Borland, ANL/APS.