bitRevSlabPosGen

bitRevSlabPosGen

Position generator that loads and emits particles based on a slab object. The slab object is defined by specifying the upper and lower bounds of a rectangular slab region. Within this slab region, bitRevSlabPosGen generates positions for particles based on the bit-reversed algorithm.

For loading particles into a volume (usually at initialization only), you must specify a slab block that has the name loadSlab.

bitRevSlabPosGen can also emit particles from a surface that is normal to one of the coordinate axes. To specify this surface, you must have a slab block with the name emitSurface and one (and only one) of the components of the upper and lower bounds vectors must be equal to each other. The component of the upper and lower bounds that is equal specifies the normal direction to the emitSurface, and the other components determine the area of the emitSurface.

To emit particles from the emitSurface, you must also specify the ptclsPerCell parameter for loading as well as the emitSign and the sweepRate parameters.

bitRevSlabPosGen Parameters when Loading

ptclsPerCell (integer, default = 0)

Determines the number of macroparticles that will be loaded per cell inside the loadSlab. Loading particles also requires that the user specify the ptclsPerCell parameter. The default (0) is that no particles are loaded.

numPhysPtclsPerStep (float, default = 0.0)

Determines the number of physical particles to load per time step. When this option is given it overrides the ptclsPerCell parameter.

Example bitRevSlabPosGen Block in Loading Mode

<PositionGenerator bitRevSlab>
  kind = bitRevSlabPosGen

  <Slab loadSlab>
    lowerBounds = [$XSTART +LX/2. - 1*DX$ $YSTART + LY/2. -DY$ $ZSTART + LZ/2. -DZ$]
    upperBounds = [$XSTART + LX/2.$     $YSTART + LY/2.$     $ZSTART + LZ/2.$]
   </Slab>

  ptclsPerCell = NOMPPC
</PositionGenerator>

bitRevSlabPosGen Parameters when Emitting

nomMacroPtclsPerCellStep (floating point, default = 0)

Emitting only - Specifies the nominal macro particles to emit per cell per time step. If this value is set and sweepRate or nomMacroPtclsPerStep set in positionGenerator, then it causes an exception and the user is advised to choose only one option.

Note

If the user considers an emission source and does not set sweepRate or nomMacroPtclsPerStep (in positionGenerator) or nomMacroPtclsPerCellStep, then it causes an exception and the user is advised to specify one of these options.

emitSign (integer, default = 1)

Determines the direction of emission from the emitSurface.

Example bitRevSlabPosGen Block in Emitting Mode

<PositionGenerator emitSlab>
  kind = bitRevSlabPosGen
  <Slab emitSurface>
    lowerBounds = [$XSTART$ $-NSIG*DY$ $-NSIG*DZ$]
    upperBounds = [$XSTART$ $NSIG*DY$  $NSIG*DZ$ ]
  </Slab>
  nomMacroPtclsPerStep = 10.
</PositionGenerator>