- 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

selfCombCollisionpreviously implemented in Vorpalcollision.

## 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
</STFunc>
</NullInteraction>
```