userFuncSecElec

userFuncSecElec

A secondary electron emitter where the SEY (secondary electron yield) and emitted electron spectrum are defined by a pair of Expressions (see Introduction to UserFuncs and Expressions). The secondary electrons can be in the same species as the incoming electrons, or a separate species.

This particle source is available with a VSimVE or VSimPD license.

userFuncSecElec Parameters

direction (vector)

Direction vector should point along the outward-facing normal of the ParticleSource.

ptclAbsorber (string)

Name of the absorber that absorbs the electrons and from which the secondaries will be emitted.

Expression (block,required)

An expression (see Introduction to UserFuncs and Expressions) that defines SEY. It must be named SEYFunc It can take three arguments eng (incident energy in eV), alpha (incident angle in rad) and t (time in second). Not all the arguments need to be used but any argument must come from these three.

Expression (block,required)

An expression named SpectrumFunc (see Introduction to UserFuncs and Expressions) that defines secondary velocity distribution in terms of a three component vector (bn, bt, bp). The name SpectrumFunc and a three-component form of this vector are required. SpectrumFunc returns the velocity of a particle (bn, bt, bp) in units of \(c\) or \(c/\gamma\), depending on how the flag emissionVelocityInUnitsOfC is set. The components (bn,bt,bp) are all velocities written in these units. bn is the component normal to the surface, i.e., bn is the velocity in the direction opposite to the outward surface normal (or opposite the direction attribute if no gridBoundary is specified). bt is the component in the direction of any motion the incident particle had tangential to the surface, i.e., bt is the velocity in the direction \(t = v_{in} \times n\) (a cross product between the incoming particle velocity and the outward surface normal). bp is the velocity in the direction tangential to the surface in which the incident particle had no velocity component, i.e., bp is the velocity in the direction of \(p = n \times t\). The particles are emitted opposite the surface outward normal.

Here, \(v\) is the 3-velocity; if SpectrumFunc specifies a value for \(v\) with magnitude larger than 1 (velocity greater than the speed of light), it will assume that for this particle the velocity is in units of \(c/\gamma\). If this happens the user should really set emissionVelocityInUnitsOfC to false (0).

SpectrumFunc can take two arguments eng (incident energy in eV) and t (time in seconds). Not all the arguments need to be used but any argument must come from these two. The vector bases (bn, bt1, bt2) default to (1,0,0).

In the future, this will likely be changed to return the 4-velocity components instead of 3-velocity components.

emissionVelocityInUnitsOfC (boolean, default = 0)

Whether emission velocities are in units of \(c\) or in units of \(c/\gamma\). For non-relativistic particles these options are almost the same. For relativistic particles the differences can be significant, and setting this to 0 allows for velocities with magnitude greater than 1.

emissionProb (real)

Specifies the probability for emission of secondaries from a material surface. For the constant probability model, a single electron is emitted with a given probability independent of all other factors, such as the incident energy, material and primary ion properties, etc.

ptclCountType (string, default = emitCounting)

Describes how the emission of multiple secondary electrons is handled. This parameter is optional, and defaults to emitCounting. Valid types are:

  • emitCounting (default)

    Emit multiple macroparticles.

  • noCounting

    Emit single particle.

  • vwCounting

    Emit single variable-weight particle and increase its weight by the number of secondaries.

  • taggedVwCounting

    Emit single variable-weight, tagged particle and increase its weight by the number of secondaries.

secondarySpecies (string, required for ion primaries)

Electron species to emit the secondaries to for ion primaries.

emittingSurface (float, optional)

Physical position of the emitting surface in the direction of emission. If this parameter is not specified, it is calculated to be the appropriate edge of the grid. It is ignored when emitting from a grid boundary.

suppressEnergy

By default, emission does not occur if the electric field has sign that would immediately force the emitted particle back into the surface (default value is suppressEnergy=0). This parameter can be used to control this feature. If an emitted particle is desired, regardless of the sign of the electric field, then set this parameter to a very large number, e.g., suppressEnergy=1.0e32.

More specifically, emission occurs when the particle charge, times the local field strength, times a characteristic length based on the grid, e.g., q*E*dx, is less than the suppressEnergy. The local field strength is interpolated on the emission surface. In higher dimensions, the characteristic length is the diagonal across the cell. The units of the suppressEnergy are electronVolts.

ignoreProb (float, default = 0)

Float value representing probability to ignore an absorbed electron so it can be used for another process. This should be a value between 0 and 1.

Example userFuncSecElec Block

<ParticleSource secondaryEmitter>
  kind = userFuncSecElec
  minDim = 1
  ptclAbsorber = primary.plateAbsorber
  gridBoundary = absPlate

  <Expression SEYFunc>
    expression = vaughanSEY(eng, alpha)
  </Expression>

  <Expression SpectrumFunc>
    $ betaGammaSqr = (2.0*eng*xDist()/ELECMASSEV)
    $ betaGamma = sqrt(betaGammaSqr)
    $ gamma = sqrt(1 + betaGammaSqr)
    $ beta = betaGamma/gamma
    expression = betaGamma * dirDist()
  </Expression>

</ParticleSource>