binaryElastic

Binary Elastic

Works with a VSimPD license. Collision of the form

\[A + B \rightarrow A + B\]

Scattering of two particles with a variable angular distribution (set with the anisotropy parameter below). Momentum is conserved, and energy is conserved if the energyLoss parameter is zero.

The binaryElastic algorithm conserves energy and momentum by shifting into the CoM frame, randomly picking two scattering angles (polar and azimuthal angles from either an isotropic or anisotropic distribution, specified by the user with the anisotropy parameter), and then exactly conserving momentum and energy. These can also be inelastic by supplying a threshold energy that is subtracted from the initial energy to get the final energy. In all cases momentum is conserved.

The binaryElastic can be used to model inelastic collisions by setting the energyLoss parameter to be non-zero.

Any RxnProcess Block block which points to a productGenerator of kind = binaryElastic should have the Reactants and Products in the order:

reactants = [speciesA speciesB]
products = [speciesA speciesB]

Note

The order is arbitrary, but the must be consistent between the Reactants and Products blocks.

Note

The Electron Scatter interaction is optimized for an inelastic scattering process involving an electron.

binaryElastic Attributes

energyLoss (float, optional, default = 0)

The maximum energy, in eV, lost during a single inelastic collision. A choice of 0 will give an elastic collision.

anisotropy (float, optional, default = 0)

A value between -1 and 1 to set the degree of anisotropy. An anisotropy of -1 is full backscatter, 0 is isotropic, and +1 is full forward scatter.

randomSeed (int, optional, default: random int)

Manually set a random seed used to determine the final velocities of the product particles.

The default is to choose a random seed at run time. To produce identical simulations, advanced users may want to manually set a seed. It is recommended not to include this parameter so that a different random number will be generated for each run.

Example binaryElastic Block

<RxnProductGenerator productGenerator>
  kind = binaryElastic
  #energyLoss = .2
  #anisotropy = 0
  #randomSeed = 423
</RxnProductGenerator>