impactIonization

impactIonization

Works with VSimPD and VSimPA licenses.

This kind of MonteCarlo interaction models electron or proton impact ionization of a background neutral gas. In this kind of collision, the incident electron loses both ionization threshold energy and the energy value of the secondary electron created during this collision. The scattered particle energy is then given by:

\[\epsilon_{sc} = \epsilon_{inc} - \epsilon_{iz} - \epsilon_{se}\]

where:

\(\epsilon_{inc}\) the incident particle energy

\(\epsilon_{iz}\) the ionization energy threshold

\(\epsilon_{se}\) the secondary electron energy which is given by:

\[\epsilon_{se} = \omega \tan \left[ R_3 \tan ^{-1} \left( \frac{ \epsilon_{inc} -\epsilon_{iz} }{2 \omega } \right) \right]\]

where \(\omega\) is a know function with a value of 15 eV and \(R_3\) is a random number with a uniform distribution between 0 and 1.

In the case of a functionDefined cross-section using an OAFunc function, the ionization energy threshold must be explicitly specified in the input file using the ionizationThreshold parameter. Otherwise, the ionization threshold is either determined from the TxPhysics database or from the EEDL dataset.

The trajectory of the incident particle after the collision is determined by the scattering angle \(\chi\) such that:

\[\cos \chi = \left( \frac{\epsilon_{sc} }{ \epsilon_{inc} - \epsilon_{iz}} \right)^{0.5}\]

and the azimuthal angle \(\varphi = 2 \pi R_2\) , where \(R_2\) is a random number uniformly distributed between 0 and 1.

The scattering angle of the secondary electron is determined using:

\[\cos \chi_{sc} = \left( \frac{\epsilon_{se} }{ \epsilon_{inc} - \epsilon_{iz}} \right)^{0.5}\]

and the azimuthal angle is \(\varphi_{se} = 2 \pi R_2\), where \(R_2\) is a random number uniformly distributed between 0 and 1.

The energy of the created ion during this interaction is determined based on the neutral gas temperature. The neutral gas density is decremented appropriately at the ionization location based on the ion produced during the reaction.

Note

This feature replaces the impactIonization feature previously implemented in Vorpal ionization.

impactIonization Parameters

crossSection (string, required)

cross-section to be used in the interaction. Possible values are builtIn, eedl, and functionDefined. See below for required parameters for each choice.

impactSpecies (string, required)

Name of the incident particles described by a species block in the input file.

neutralGas (string, required)

Name of the Fluid block describing the background neutral gas. For more information on the kinds of allowed neutral Gases, please see Working with neutralGas Fluids and the gasKind Parameter.

neutralGasTemp (real, optional, default = 300.)

Temperature of the background neutral gas in Kelvin. This parameter is used to determine the incident ion velocity relative to the neutral gas atoms and the final ion velocity.

isNeutralGasFluid (string, optional, default = true)

Defines whether the neutral gas tracked is a fluid background or not. The default is true, i.e. the neutral gas is fluid. When this option is false, the kinetic neutral species and its gas type must be defined using inNeutrals and inNeutralsGasType.

inNeutrals (string)

Name of the impact kinetic neutral particle described by a species block in the input file. This attribute is required when isNeutralGasFluid is set to false.

inNeutralsGasType (string)

Type of the impact kinetic neutral gas particle. This attribute is required when isNeutralGasFluid is set to false.

depleteBackgroundGas (string, optional, default = true)

A flag to modify the background fluid gas density when performing the interaction.

leaveIncidentUnchanged (bool, optional, default = false)

When enabled, this parameter leaves the impact (incident) particle unchanged after the collision is processed. This is helpful when the scattering effect of the incident particle is treated as a bulk effect, such as in the nullBgAbsorber.

force1D (integer, optional, default = 0)

Forces the interaction to occur in 1D.

ionizedElectronSpecies (string)

Name of the secondary electron species, product of the ionization.

ionSpecies (string)

Name of the ion species, product of the ionization of an atom of the background neutral gas.

builtIn Parameters

The builtIn cross-section uses data from the TxPhysics library, based on the formulas given in [Rei08].

Please see Types of collisions for the available builtIn gases.

Vorpal determines whether to use electron or proton built-in cross-section data for handling impact ionization based on the ratio of charge to mass. If the ratio is not that of an electron, Vorpal assumes that the incident particle is a proton (regardless of whether or not this is actually the case).

The default type of background gas for electron-impact ionization is H2; the default for proton-impact ionization is H. If you choose a gas for ionization that is not on the correct list, Vorpal will use the default gas for that ionization type. For example, if you choose H for electron impact ionization, Vorpal will use the default H2. Similarly, if you choose Ar for protons, Vorpal will default to H.

eedl Parameters

If the eedl cross-section type is used, the following parameters must be set:

crossSectionDataFile (string)

Points to the file containing the EEDL data.

functionDefined Parameters

If the functionDefined cross-section type is used, the following parameters must be set:

ionizationThreshold (real)

The ionization threshold energy (in eV). Must be set if the cross-section is used defined with an OAFunc block.

OAFunc (block, required)

An OAFunc block of name crossSectionFunc must be used inside the Interaction block. The OAFunc block allows the user to define its own cross-section for the interaction, either through a two-column data file or through an expression. The kinds of OAFunc available for this interaction are interpolatedFromFile, LXcatFile, or expression. The OAFunc must return the value of the cross-section in m2.

Please see OAFunc Block for more information on the OAFunc block.

crossSectionVariable (string, optional, default = energy)

Used in the case when an OAFunc function is given for the cross section to specify whether the parameter of the function is either the:

  • Relative collision velocity magnitude of the incident particle in m-1: crossSectionVariable = velocity
  • Kinetic energy of the incident particle in eV: crossSectionVariable = energy

Example impactIonization Block

<Interaction ArIonizer>
  kind = impactIonization
  neutralGas = ArNeutralGas
  impactSpecies = PrimaryElectrons
  crossSection = functionDefined
  <OAFunc crossSectionFunc>
    kind = interpolatedFromFile
    filename = electronCSection.dat
  </OAFunc>
  ionizedElectronSpecies = SecondaryElectrons
  ionSpecies = Ar1
  ionizationThreshold = 15.76
</Interaction>