Simulates ionization of residual gas and interaction with the beam.
Parallel capable? : yes
GPU capable? : no
Backtracking capable? : no
Parameter Name  Units  Type  Default  Description 
DISABLE  long  0  If nonzero, 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 bigaussian fit sigma values in units of the ion bin size. 

Y_SIGMA_LIMIT_MULTIPLIER  double  0.0  If positive, gives lower limit on bigaussian 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 userdefined 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, k_{B} is the Boltzmann constant, T is the temperature, and N_{b} is the bunch population.
The resulting macroparticle charge is:
 (60) 
Here σ_{ion} has units of Mb, P has units of Torr, k_{B} = 1.38 × 10^{23} J/K, e is the electron charge, L_{eff} is the effective length of the ion element (in m), and n_{macro} 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 macroion 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 BasettiErskine 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 ionbeam 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 multifunction 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, N_{b} is the bunch population, r_{e} is the classical electron radius (2.82 × 10^{15} m), m_{e} 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