- nullSelfCombination
nullSelfCombination¶
Works with VSimPD license.
Kind of MonteCarlo interaction that combines macroparticles of a single species together into one single macroparticle. This interaction is designed to use variable-weight species.
Note
This feature replaces the selfCombCollision previously implemented in Vorpal collision.
nullSelfCombination Parameters¶
- species (string)
- This specifies the name of the Species block representing the particles to be combined. 
- thresholdFunc (block, required)
- The thresholdFunc is a STFunc that specifies the maximum number of particles in a cell. If the number of particles in a cell goes above this number, paricles will combine in order to reduce the number of particles in that cell. This can be a function of space or a constant. In cylindrical coordinates, it is important to recognize that the volume of a cell is a function of radius. Therefore, when a gas is in equilibrium, then statistically one expects to find fewer particles in a cell for small values of R. As a result, to maintain an equilibrium density in cylindrical coordinates, this thresholdFunc would be smaller for small values of R and larger for large values of R. Combining will not take place if the number of particles in a cell is smaller than this threshold. 
- weight_max (real)
- This specifies the maximum variable-weight to be given to a particle when self-combining variable-weight species. 
- algorithm_kind (integer)
- This specifies the kind of algorithm to be used when combining macroparticles. The possible values are 1, 2, 3, 4 or 5. Option 1 indicates a simple pair-wise combination of macroparticles, deleting one and adding the number of real particles (weight) to the other (decimation). Option 2 indicates a slightly more accurate pair-wise approach, deleting one macroparticle and assigning the other the mean position and velocity of the pair as well as the total weight of the pair (inelastic). Option 3 is an elastic combination approach, where quartets of macroparticles are combined into pairs that conserve energy and momentum (elastic). Option 4 is a pair-wise combining approach similar to Option 2 except that it allows users to avoid combining particles that are above the user specified limit. Option 5 is a pairwise approach in which the particles within a cell are grouped in velocity phase-space bins and then particles in each velocity phase-space bin are combined pair-wise. In this approach energy and momentum are conserved. 
- force1D (integer)
- This option only applies to - algorithm_kind3 (elastic). If non-zero (true), this flag forces the velocities of the new particles to be in the 0 direction, rather than in a random 3D direction.
- noCombThresholdKE (float, optional, default = 10000.)
- This option only applies to - algorithm_kind4. User specified kinetic energy limit in eV. This enables users to set certain energetic particles not to participate in self-combination. Only energy values below this limit are selected for combination.
- numPSBins (integer vector, default = [ 2 2 2])
- This option only applies to - algorithm_kind5. This enables users to set up the number of velocity phase-space bins to consider in grouping particles in velocity phase-space. If the number of phase space bins large, then the simulation will become slower. A reasonable choice would be using [4 4 4].
Example nullSelfCombination Block¶
<NullInteraction elecCollision>
  kind = nullSelfCombination
  species = electrons
  algorithm_kind = 1
  weight_max = 1000.
  <STFunc thresholdFunc>
    kind = expression
    expression = 2.0
  </STFunc>
</NullInteraction>