&bunched_beam STRING bunch = NULL; long n_particles_per_bunch = 1; double time_start = 0; STRING matched_to_cell = NULL; double emit_x = 0; double emit_nx = 0; double beta_x = 1.0; double alpha_x = 0.0; double eta_x = 0.0; double etap_x = 0.0; double emit_y = 0; double emit_ny = 0; double beta_y = 1.0; double alpha_y = 0.0; double eta_y = 0.0; double etap_y = 0.0; long use_twiss_command_values = 0; double Po = 0.0; double sigma_dp = 0.0; double sigma_s = 0.0; double dp_s_coupling = 0; double emit_z = 0; double beta_z = 0; double alpha_z = 0; long one_random_bunch = 1; long symmetrize = 0; long halton_sequence[3] = {0, 0, 0}; long halton_radix[6] = {0, 0, 0, 0, 0, 0}; long randomize_order[3] = {0, 0, 0}; long limit_invariants = 0; long limit_in_4d = 0; long enforce_rms_values[3] = {0, 0, 0}; double distribution_cutoff[3] = {2, 2, 2}; STRING distribution_type[3] = {"gaussian","gaussian","gaussian"}; double centroid[6] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; long save_initial_coordinates = 1; &end
bunch
-- The (incomplete) name of an SDDS file to which the phase-space coordinates
of the bunches are to be written. Recommended value: ``%s.bun''.
n_particles_per_bunch
-- Number of particles in each bunch.
time_start
-- The central value of the time coordinate for the bunch.
matched_to_cell
-- The name of a beamline from which the Twiss parameters of the bunch
are to be computed.
emit_X
-- RMS emittance for the X plane.
emit_nX
-- RMS normalized emittance for the X plane. Ignored if emit_X
is nonzero.
beta_X
, alpha_X
, eta_X
, etap_X
-- Twiss parameters for the X plane.
use_twiss_command_values
-- If nonzero, then the values for twiss
command. It is an error if
no twiss
command has been given.
Po
-- Central momentum of the bunch.
sigma_dp
, sigma_s
-- Fractional momentum spread, sigma_s
is actually the length in dp_s_coupling
-- Specifies the coupling between s and emit_z
, beta_z
, alpha_z
-- Provide another way to specify the
longitudinal phase space, either separately from or in combination with
sigma_dp
, sigma_s
, and dp_s_coupling
.
Basically, which values elegant uses depends what you set to
nonzero values. If you set emit_z, then sigma_dp, sigma_s, and
dp_s_coupling are ignored. If you don't set emit_z, then elegant uses sigma_dp and sigma_s; it additionally uses alpha_z if
it is nonzero, otherwise it uses dp_s_coupling. For reference, the
relationship between them is
. Note that to impart a chirp that
results in compression for
(e.g., a normal four-dipole
chicane), you must have
or
.
one_random_bunch
-- If non-zero, then only one random particle distribution is generated. Otherwise,
a new distribution will be generated for every simulation step.
enforce_rms_values[3]
-- Flags, one for each plane, indicating whether to force the distribution to have the
specified RMS properties.
distribution_cutoff[3]
-- Distribution cutoff parameters for each plane.
distribution_type[3]
-- Distribution type for each plane. May be ``gaussian'', ``hard-edge'', ``uniform-ellipse'', ``shell'', or ``dynamic-aperture''.
limit_invariants
-- If non-zero, the distribution cutoffs are applied to the invariants, rather than to the coordinates.
limit_in_4d
-- If non-zero, then the transverse distribution is taken to be a
4-d gaussian or uniform distribution. One of these must be chosen using the
distribution_type
control. It must be the same for x and y.
symmetrize
-- If non-zero, the distribution is symmetric under changes of sign in the coordinates.
Automatically results in a zero centroid for all coordinates.
halton\_sequence[3]
and halton\_radix[6]
-- This
provides a ``quiet-start'' feature by choosing Halton sequences in
place of random number generation. There are three new variables that
control this feature. halton\_sequence
is an array of three
flags that permit turning on Halton sequence generation for the
horizontal, vertical, or longitudinal planes. For example,
halton\_sequence[0] = 3*1
will turn on Halton sequences for all three
planes, while halton\_sequence[2] = 1
, will turn it on for the
longitudinal plane only.
halton\_radix
is an array of six integers that permit giving the
radix for each sequence (i.e., x, x', y, y', t, p). Each radix must be
a prime number. You should never use the same prime for two sequences
(with one exception, see below). If these are left at zero, then
elegant chooses values that eliminate phase-space banding to some
extent.
randomize\_order[3]
-- Allows randomizing the order of
assigned coordinates for the pairs (x, x'), (y, y'), and (t,p). 0
means no randomization; 1 means randomize (x, x', y, y', t, p) values
independently, which destroys any x-x', y-y', and t-p correlations; 2
means randomize (x, x'), (y, y'), and (t, p) in pair-wise fashion,
which retains correlations between x-x' etc but destroys those between
x-y, x-p, etc. This is used with Halton sequences to remove banding.
centroid[6]
-- Centroid offsets for each of the six coordinates.
save_initial_coordinates
-- A flag that, if set, results in saving initial coordinates
of tracked particles in memory. This is the default behavior. If unset, the initial coordinates
are not saved, but are regenerated each time they are needed. This is more memory efficient
and is useful for tracking very large numbers of particles.