next up previous
Next: Namelist Command Dictionary Up: Introduction Previous: Program Philosophy

Capabilities of elegant

elegant started as a tracking code, and it is still well-suited to this task. elegant tracks in the 6-dimensional phase space ${\rm (x, x^\prime, y, y^\prime, s, \delta)}$, where x (y) is the horizontal (vertical) transverse coordinate, primed quantities are slopes, s is the total distance traveled, and $\delta$ is the fractional momentum deviation[3]. Note that these quantities are commonly referred to as (x, xp, y, yp, s, dp) in the namelists, accelerator element parameters, and output files. (``dp'' is admittedly confusing--it is supposed to remind the user of ${\rm\Delta P/P_o}$. Sometimes this quantity is referred to as ``delta.'')

Tracking may be performed using matrices (of selectable order), canonical kick elements, numerically integrated elements, or any combination thereof. For most elements, second-order matrices are available; matrix concatenation can be done to any order up to third. Canonical kick elements are available for bending magnets, quadrupoles, sextupoles, and higher-order multipoles; all of these elements also support optional classical synchrotron radiation losses. Among the numerically integrated elements available are extended-fringe-field bending magnets and traveling-wave accelerators. A number of hybrid elements exist that have first-order transport with exact time dependence, e.g., RF cavities. Several elements support simulation of collective effects, such as wakefields and intra-beam scattering. Some of the more unusual elements available are third-order alpha-magnets[4,5], time-dependent kicker magnets, voltage-ramped RF cavities, beam scrapers, and beam-analysis ``screens.''

A wide variety of output is available from tracking, including centroid and sigma-matrix output along the accelerator. In addition to tracking internally generated particle distributions, elegant can track distributions stored in external files, which can either be generated by other programs or by previous elegant runs. Because elegant uses SDDS format for reading in and writing out particle coordinates, it is relatively easy to interface elegant to other programs using files that can also be used with SDDS to do post-processing for the programs.

elegant allows the addition of random errors to virtually any parameter of any accelerator element. One can correct the orbit (or trajectory), tunes, and chromaticity after adding errors, then compute Twiss parameters, track, or perform a number of other operations.

In addition to randomly perturbing accelerator elements, elegant allows one to systematically vary any number of elements in a multi-dimensional grid. As before, one can track or do other computations for each point on the grid. This is a very useful feature for the simulation of experiments, e.g., emittance measurements involving beam-size measurements during variation of one or more quadrupoles[6].

Like many accelerator codes, elegant does accelerator optimization. While elegant is not designed to replace matching codes like MAD, it will fit the first-order matrix and beta functions. Of more interest is the ability to optimize results of tracking using a user-supplied function of the final beam and transport parameters. This permits solution of a wide variety of problems, from matching a kicker bump in the presence of nonlinearities to optimizing dynamic aperture by adjusting sextupoles.

elegant provides several methods for determining accelerator aperture, whether dynamic or physical. One may do straightforward tracking of an ensemble of particles that occupies at uniform grid in (x, y) space. A more efficient variant of this procedure involves tracking a series of constant-x lines of particles with fixed y values, with elimination of any given y value whenever a stable particle is found. Finally, one may use a single-particle search method that can locate the aperture for a series of y values, to a predefined resolution in x.

In addition to using analytical expressions for the transport matrices, elegant supports computation of the first-order matrix and linear optics properties of a circular machine based on tracking. A common application of this is to compute the tune and beta-function variation with momentum offset by single-turn tracking of a series of particles. This is much more efficient than, for example, tracking and performing FFTs (though elegant will do this also). This both tests analytical expressions for the chromaticity and allows computations using accelerator elements for which such expressions do not exist (e.g., a numerically integrated bending magnet with extended fringe fields).

A common application of random error simulations is to set tolerances on magnet strength and alignment relative to the correctability of the closed orbit. A more efficient way to do these calculations is to use correct-orbit amplification factors[6]. elegant the computes amplification factors and functions for corrected and uncorrected orbits and trajectories pertaining to any element that produces an orbit or trajectory distortion. It simultaneously computes the amplification functions for the steering magnets, in order to determine how strong the steering magnets will need to be.


next up previous
Next: Namelist Command Dictionary Up: Introduction Previous: Program Philosophy
Michael Borland 2001-06-08