gridPosGen

gridPosGen

Position generator that loads and emits particles based on Slab objects, just as is done with the bitRevSlabPosGen. In contrast to the bitRevSlabPosGen position generator, gridPosGen generates positions for particles at the nodes of a user-defined uniform grid.

All but one of the parameters used to define the bitRevSlabosGen are used to identically define the gridPosGen. The single difference is that the gridPosGen uses a macroPerDir vector instead of the ptclsPerCell parameter. macroPerDir is a vector of integers with components that default to 1. Each component of the macroPerDir vector determines the number of macroparticles generated per cell in that coordinate direction. A macroPerDir vector equal to [2 3 1], in a 3-dimensional simulation, will generate positions for particles on a grid with 2 macroparticles per cell in the x-direction, 3 macroparticles per cell in the y-direction, and 1 macroparticle per cell in the z-direction. Therefore, the total number of macroparticles per cell will be equal to 2 multiplied by 3 multiplied by 1, or 6 macroparticles per cell.

gridPosGen Parameters

macroPerDir (integer vector, default = [1 1 1])

Components of the macroPerDir vector each determine the number of macroparticles generated per cell in the corresponding coordinate direction. For example, a macroPerDir vector equal to [2 3 1], in a 3-dimensional simulation, will generate positions for particles on a grid with 2 macroparticles per cell in the x-direction, 3 macroparticles per cell in the y-direction, and 1 macroparticle per cell in the z-direction. Therefore, the total number of macroparticles per cell will be equal to 2 multiplied by 3 multiplied by 1, or 6 macroparticles per cell.

emitSign (integer, default = 1)

Determines the direction of emission from the emitSurface.

Example gridPosGen Block

<PositionGenerator gridSlab>
  kind = gridPosGen
# The following gives the slab over which particles are loaded.
# If it is not present or has zero volume, no particles are loaded.
  <Slab loadSlab>
    lowerBounds = [0.0 0.0 0.0]
    upperBounds = [LX LY LZ]
  </Slab>
  macroPerDir = [1 1 1]
</PositionGenerator>