10.47 IONEFFECTS—Simulates ionization of residual gas and interaction with the beam.

Simulates ionization of residual gas and interaction with the beam.
Parallel capable? : yes
GPU capable? : no
Back-tracking capable? : no






Parameter Name UnitsType 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 double0.0

If positive, gives the region over which ions are kept.






Y_SPAN double0.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 double0.0

If positive, gives the ratio of electron beam sigma to bin size for ion field calculation.






Y_BIN_DIVISOR double0.0

If positive, gives the ratio of electron beam sigma to bin size for ion field calculation.






X_RANGE_MULTIPLIER double0.0

If positive, gives the ratio of ion binning region size to ion 80% x range.






Y_RANGE_MULTIPLIER double0.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 UnitsType Default

Description






X_SIGMA_LIMIT_MULTIPLIER double0.0

If positive, gives lower limit on bi-gaussian fit sigma values in units of the ion bin size.






Y_SIGMA_LIMIT_MULTIPLIER double0.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

  1. Prepare file describing the ion properties, as described in 7.34. Each ion is generated by either a source gas or source ion.
  2. Prepare file giving gas pressure vs s for the source gases described in the ion properties file.
  3. Insert IONEFFECTS elements in the lattice. This can be performed using the insert_elements command (described in 7.32), or manually by editing the lattice file.
  4. Insert ion_effects command after the run_setup command. See 7.34 for syntax. Note that certain properties of the individual IONEFFECTS elements can override the global settings given by in the ion_effects command.
  5. Generate a bunched beam, using either the bunched_beam command or providing an externally-generated beam to the sdds_beam command. Section 6 gives more information about bunched beams in elegant.

For each bunch passage, the IONEFFECTS element does the following:

  1. Advance existing ions during bunch gap
  2. Eliminate ions that are outside of given boundaries
  3. Generate ions
  4. Apply kick from beam to ions
  5. Apply kick from ions to beam

The line density of ions generated by a single bunch in a single pass is:

λion = σion--P- Nb
          kBT
(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:

         ---10-22e---σionP-NbLeff
Qmacro = 7.5× 10- 3kB    nmacroT
(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:

                     ∘  -------⌊   (            )       (    2     2)   (  σy     σx  ) ⌋
Δpy + iΔpx = cNbreme-   --2π---⌈w  ( ∘--x+-iy---)  - exp  --x- - -y-- w ( ∘σxx-+-iσyy-) ⌉
                 γ      σ2x - σ2y        2(σ2- σ2)          2σ2x   2σ2y        2(σ2 - σ2)
                                          x   y                                x    y
(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