Simulates ionization of residual gas and interaction with the beam.
Parallel capable? : yes
GPU capable? : no
Back-tracking capable? : no
Parameter Name | Units | Type | Default | Description |
DISABLE | long | 0 | If non-zero, turn off ion effects in the region covered by this element. |
|
MACRO_IONS | long | 0 | If positive, overrides the default value set in the ion_effects command, giving the number of macro ions generated per bunch passage. |
|
GENERATION_INTERVAL | long | 0 | If positive, overrides the default value set in the ion_effects command, giving the number of macro ions generated per bunch passage. |
|
X_SPAN | double | 0.0 | If positive, gives the region over which ions are kept. |
|
Y_SPAN | double | 0.0 | If positive, gives the region over which ions are kept. |
|
NX_POISSON | long | 0 | If positive, the number of x bins for Poisson solver for ion fields. |
|
NY_POISSON | long | 0 | If positive, the number of y bins for Poisson solver for ion fields. |
|
X_BIN_DIVISOR | double | 0.0 | If positive, gives the ratio of electron beam sigma to bin size for ion field calculation. |
|
Y_BIN_DIVISOR | double | 0.0 | If positive, gives the ratio of electron beam sigma to bin size for ion field calculation. |
|
X_RANGE_MULTIPLIER | double | 0.0 | If positive, gives the ratio of ion binning region size to ion 80% x range. |
|
Y_RANGE_MULTIPLIER | double | 0.0 | If positive, gives the ratio of ion binning region size to ion 80% y range. |
|
IONEFFECTS continued
Simulates ionization of residual gas and interaction with the beam.
Parameter Name | Units | Type | Default | Description |
X_SIGMA_LIMIT_MULTIPLIER | double | 0.0 | If positive, gives lower limit on bi-gaussian fit sigma values in units of the ion bin size. |
|
Y_SIGMA_LIMIT_MULTIPLIER | double | 0.0 | If positive, gives lower limit on bi-gaussian fit sigma values in units of the ion bin size. |
|
STARTPASS | long | 0 | If positive, gives the pass on which ion effects start. |
|
ENDPASS | long | -1 | If positive, gives the pass on which ion effects end. |
|
PASSINTERVAL | long | 1 | Interval between ion effects modeling. |
|
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 |
|
NB: This element is new and considered experimental. Please report issues back to the developers.
This element provides serial or parallel simulation of the interaction of residual gas ions with the electron beam. It must be used in concert with the ion_effects command, described in 7.34.
Modeling of residual ions has these features:
Some limitations of the model include:
Performing ion simulations involves the following steps
For each bunch passage, the IONEFFECTS element does the following:
The line density of ions generated by a single bunch in a single pass is:
| (59) |
where σion is the ionization cross section, P is the pressure, kB is the Boltzmann constant, T is the temperature, and Nb is the bunch population.
The resulting macroparticle charge is:
| (60) |
Here σion has units of Mb, P has units of Torr, kB = 1.38 × 10-23 J/K, e is the electron charge, Leff is the effective length of the ion element (in m), and nmacro is the number of macroparticles generated. The initial ion distribution follows the bunch distribution (assumed to be Gaussian).
The IONEFFECTS element also supports multiple ionization. In the ion_properties file, one can define the SourceName for a given IonName to be another ion. In this case, each macro-ion of type SourceName has a chance of being multiply ionized into type IonName. The calculation is done every multiple_ionization_interval bunch passes. The probability of multiple ionization depends on the cross section and local beam density.
The kick on the ions from the beam is calculated using the Basetti-Erskine formula [52], which assumes the beam is Gaussian in both transverse dimensions. By default, this assumption is also used for the ion distribution. The parameter gaussian_ion_range gives the range (in beam sigma) over which ions are counted, for calculating the ion-beam kicks.
The Gaussian method may be a poor assumption for the ions, in which case the field_calculation_method parameter can be set to bigaussian, which uses a sum of two gaussians. This provides a much better model for the actual distribution, at the expense of a considerable increase in run time. One can also use a trigaussian fit, as well as a bilorentzian or trilorentzian. The ion_bin_divisor and ion_range_multiplier parameters can be used to control the bin size and range, respectively, of the histogram used to approximate the ion charge distribution. The ion_bin_divisor gives the ratio of the rms size of the electron bunch in the plane in question to the bin size.
The ion_range_multiplier parameter is used to determine the range of the histogram. If positive, a rough histogram of the ion distribution (with ten times the desired bin size) is used to estimate the range required to encompass 80% of the ions; half this value is multiplied by the absolute value of ion_range_multiplier to get the half range of the full histogram; a value of 1.5 is is suggested. If zero, the histogram encompasses all of the ions, which may result in a sparse histogram when a few ions have large coordinates. If negative gives the range of the binned coordinates in units of the rms size of the ion distribution.
The ion_histogram_output parameter and related parameters can be used to request output of the ion distribution and the multi-function fit, which is advisable when setting the binning parameters.
The change in momentum of an ion due to the bunch passage is:
| (61) |
where c is the speed of light, Nb is the bunch population, re is the classical electron radius (2.82 × 10-15 m), me is the electron mass, γ is the relativistic factor (~ 1 for the ions), σx,y are the horizontal and vertical beam sizes, w is the complex error function, and x and y are the distance from the ion to the bunch center.
KICKER