weightManager

weightManager

Works with VSimPD license.

Kind of Reactions interaction that splits or combines macroparticles of a single species. This interaction is designed to use variable-weight species. This interaction is applied at each time step, unless specified otherwise in the RxnProcessSettings.

weightManager Parameters

process (string, required)

This specifies the type of manamagement, which can be split or combine.

weightThreshold (real, required)

This will determine if the split/combine occurs. If splitting, this sets the minimum desired weight of the resulting particles (ie. if the particles resulting from the split would have a weight smaller than this value, the split will not occur). If combining, this sets the maximum desired weight of the resulting particles (ie. if the particles resulting from the combination would have a weight larger than this value, the combination will not occur).

ppcThreshold (integer, required)

This will determine if the split/combine occurs. If splitting, this sets the minimum number of desired particles per cell (ie. if there are less than this number in a cell, splitting will occur in that cell). If combining, this sets the maximum number of desired particles per cell (ie. if there are more than this number in a single cell, combining will occur in that cell).

reactants (list of strings, optional)

The name of the species to split or combine from. If splitting, this should just but a single value. If combining, it should be listed as many times as the desired number of particles to combine from (up to a maximum of 10). This should only be one species and should match the name of the species in the products.

products (list of strings, optional)

The name of the species to be combined or spilt into. If splitting, this should be listed as many times as the desired number of particles to split into. If combining, this should be the desired number of particles after a single combination interaction. This should only be one species and should match the name of the species in the reactants. NOTE: for combiners, the algorithm choice determines the required number of products.

algorithm (string, required if process = combine)

This specifies the algorithm to use for combination. The options are: decimation (1 product, 2+ reactants), elastic (2 products, 3+ reactants), inelastic (1 product, 2+ reactants), and fluxConserving (2 products, 4+ reactants). Decimation conserves mass/charge. Inelastic conserves mass/charge and momentum. Elastic conserves mass/charge, energy, and momentum. Flux conserving conserves mass/charge, energy, momentum, flux, and the diagonals of the kinetic energy tensor (best for beams rather than bulk plasma).

noCombThresholdKE (float, optional)

Only relevant when algorithm=inelastic, this allows the user to specify a kinetic energy limit (in Joules), above which combination will not occur.

Note

It is recommended to use splitters and combiners with variable weight particles when there are reactions in the simulation as the number of macroparticles will increase over time.

Note

If using both splitters and combiners (as is recommended), ensure that the ppcThreshold for combining is N times larger than the ppcThreshold for splitting, where N is the factor by which the number of particles is increased/decreased per interaction. For example, if combining from 4 –> 2, and splitting from 1 –> 3, then N is 2 for combining and 3 for splitting, with N=3 being the larger. This means the ppcThreshold for combining should be >3x larger than that for splitting. This prevents the splitters and combiners for working harder than is beneficial.

Example weightManager RxnProcess Block

<RxnProcess splitAr>
  kind = weightManager
  process = split
  reactants = [Ar]
  products = [Ar Ar]
  ppcThreshold = 40
  weightThreshold = 1.0e13
</RxnProcess>

<RxnProcess combineAr>
  kind = weightManager
  process = combine
  reactants = [Ar2 Ar2]
  products = [Ar2]
  ppcThreshold = 250
  weightThreshold = 1.0e17
  algorithm = "decimation"
</RxnProcess>