10.122 WAKE—Longitudinal wake specified as a function of time lag behind the particle.

Longitudinal wake specified as a function of time lag behind the particle.
Parallel capable? : yes
GPU capable? : yes
Back-tracking capable? : yes

Parameter Name UnitsType Default



name of file giving Green function


column in INPUTFILE containing time data


column in INPUTFILE containing Green function

CHARGE C double 0.0

beam charge (or use CHARGE element)

FACTOR double 1

factor by which to multiply wake

N_BINS long 0

number of bins for current histogram


interpolate wake?


Use Savitzky-Golay filter to smooth current histogram?


Savitzky-Golay filter half-width for smoothing

SG_ORDER long 1

Savitzky-Golay filter order for smoothing

CHANGE_P0 long 0

change central momentum?


allow beam longer than wake data?


Number of passes over which to linearly ramp up the wake to full strength.


If non-zero, then do calculations bunch-by-bunch.


If non-zero, then an acausal wake is allowed.


Optionally used to assign an element to a group, with a user-defined name. Group names will appear in the parameter output file in the column ElementGroup

The input file for this element gives the longitudinal Green function, W(t) versus time behind the particle. The units of the wake are V/C, so this element simulates the integrated wake of some structure (e.g., a cell or series of cells). If you have, for example, the wake for a cell and you need the wake for N cells, then you may use the FACTOR parameter to make the appropriate multiplication. The values of the time coordinate should begin at 0 and be equi-spaced, and be expressed in seconds. A positive value of time represents the distance behind the exciting particle.

A positive value of W(t) results in energy loss. A physical wake function should be positive at t = 0. Causality requires that W(t) = 0 for t < 0. Acasual wakes are supported, provided the user sets ACAUSAL_ALLOWED=0. The data file must contain a value of W(t) at t = 0, and should have equal spans of time to the negative and positive side of t = 0.

Use of the CHARGE parameter on the WAKE element is disparaged. It is preferred to use the CHARGE element as part of your beamline to define the charge.

Setting the N_BINS paramater to 0 is recommended. This results in auto-scaling of the number of bins to accomodate the beam. The bin size is fixed by the spacing of the time points in the wake.

The default degree of smoothing (SG_HALFWIDTH=4) may be excessive. It is suggested that users vary this parameter to verify that results are reliable if smoothing is employed (SMOOTHING=1).

The algorithm for the wake element is as follows:

  1. Compute the arrival time of each particle at the wake element. This is necessary because elegant uses the longitudinal coordinate s = βct.
  2. Find the mean, minimum, and maximum arrival times (tmean, tmin, and tmax, respectively). If tmax - tmin is greater than the duration of the wakefield data, then elegant either exits (default) or issues a warning (if ALLOW_LONG_BEAM is nonzero). In the latter case, that part of the beam that is furthest from tmean is ignored for computation of the wake.
  3. If the user has specified a fixed number of bins (not recommended), then elegant centers those bins on tmean. Otherwise, the binning range encompasses tmin-Δt to tmaxt, where Δt is the spacing of data in the wake file.
  4. Create the arrival time histogram. If any particles are outside the histogram range, issue a warning.
  5. If SMOOTHING is nonzero, smooth the arrival time histogram.
  6. Convolve the arrival time histogram with the wake function.
  7. Multiply the resultant wake by the charge and any user-defined factor.
  8. Apply the energy changes for each particle. This is done in such a way that the transverse momentum are conserved.
  9. If CHANGE_P0 is nonzero, change the reference momentum of the beamline to match the average momentum of the beam.

Bunched-mode application of the short-range wake is possible using specially-prepared input beams. See Section 6 for details. The use of bunched mode for any particular WAKE element is controlled using the BUNCHED_BEAM_MODE parameter.