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.


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 (string)

This specifies the kind of algorithm to be used when combining macroparticles. There are six different algorithms to choose from. decimation indicates a simple pair-wise combination of macroparticles, deleting one and adding the number of real particles (weight) to the other (decimation). inelastic 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. elastic is an elastic combination approach, where quartets of macroparticles are combined into pairs that conserve energy and momentum. inelasticLimit 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. velPhaseSpace 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. Finally, fluxConserving conserves mass, energy, momentum, and flux by combining four particles into two.

force1D (integer)

This option only applies to algorithm_kind 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_kind inelasticLimit. 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_kind velPhaseSpace. 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 = decimation
  weight_max = 1000.
  <STFunc thresholdFunc>
    kind = expression
    expression = 2.0