|BU||double||0.0||Undulator peak field|
||Number of undulator periods.|
|METHOD||STRING||non-adaptive runge-kutta||integration method (runge-kutta, bulirsch-stoer, modified-midpoint, two-pass modified-midpoint, leap-frog, non-adaptive runge-kutta)|
|FIELD_EXPANSION||STRING||leading terms||ideal, exact, or "leading terms"|
|ACCURACY||double||0.0||Integration accuracy for adaptive integration. (Not recommended)|
||Number of integration steps for non-adaptive integration.|
|POLE_FACTOR1||double||0.1557150345504||Strength factor for the first and last pole.|
|POLE_FACTOR2||double||0.380687012288581||Strength factor for the second and second-to-last pole.|
|POLE_FACTOR3||double||0.802829337348179||Strength factor for the third and third-to-last pole.|
|LASER_WAVELENGTH||double||0.0||Laser wavelength. If zero, the wavelength is calculated from the resonance condition.|
|LASER_PEAK_POWER||double||0.0||laser peak power|
|LASER_W0||double||1||laser spot size at waist,|
|LASER_X0||double||0.0||laser horizontal offset at center of wiggler|
|LASER_Y0||double||0.0||laser vertical offset at center of wiggler|
A non-symplectic numerically integrated planar undulator including optional co-propagating laser beam for laser modulation of the electron beam.
|LASER_Z0||double||0.0||offset of waist position from center of wiggler|
||laser horizontal mode number (5)|
||laser vertical mode number (5)|
||Include classical synchrotron radiation?|
||Include quantum excitation?|
|TIME_PROFILE||STRING||NULL||filename=x+y form specification of input file giving time-dependent modulation of the laser electric and magnetic fields.|
|TIME_OFFSET||double||0.0||Time offset of the laser profile.|
|GROUP||string||NULL||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|
This element simulates a planar undulator, together with an optional co-propagating laser beam that can be used as a beam heater or modulator. The simulation is done by numerical integration of the Lorentz equation. It is not symplectic, and hence this element is not recommended for long-term tracking simulation of undulators in storage rings.
The fields in the undulator can be expressed in one of three ways. The FIELD_EXPANSION parameter is used to control which method is used.
The expressions for the laser field used by this element are from
A. Chao's article ``Laser Acceleration -- Focussed Laser,'' available
http://www.slac.stanford.edu/achao/LaserAccelerationFocussed.pdf . The implementation covers laser modes TEMij, where and .
By default, if the laser wavelength is not given, it is computed from the resonance
The adaptive integrator doesn't work well for this element, probably due to sudden changes in field derivatives in the first and last three poles (a result of the implementation of the undulator terminations). Hence, the default integrator is non-adaptive Runge-Kutta. The integration accuracy is controlled via the N_STEPS parameter. N_STEPS should be about 100 times the number of undulator periods.
The three pole factors are defined so that the trajectory is centered about and with zero dispersion. This wouldn't be true with the standard two-pole termination, which might cause problems overlapping the laser with the electron beam.
The laser time profile can be specified using the
parameter to specify the name of an SDDS file containing the
profile. If given, the electric and magnetic fields of the laser are
multiplied by the profile . Hence, the laser intensity is multiplied
by . By default in the
profile is lined up with
in the electron bunch.
This can be changed with the
TIME_OFFSET parameter. A positive
TIME_OFFSET moves the laser profile forward in time (toward
the head of the bunch).
Explanation of filename=x+y format: Several elements in elegant make use of data from external files to provide input waveforms.
The external files are SDDS files, which may have many columns. In order to provide a convenient
way to specify both the filename and the columns to use, we frequently employ filename=x+y format
for the parameter value. For example, if the parameter value is
waveform.sdds=t+A, then it
means that columns
A will be taken from file
waveform.sdds. The first
column is always the independent variable (e.g., time, position, or frequency), while the second
column is the dependent quantity.