VelocityGenerator

Used by xvLoaderEmitter, gridLoader and boostLoader particle sources to determine the velocities (and all internal variables) of particles when loaded or emitted into the simulation. Each xvLoaderEmitter or gridLoader or boostLoader block must have a VelocityGenerator block.

A VelocityGenerator block defines how the newly added (loaded or emitted particles) get their velocity. VelocityGenerator is used to generate all internal variables associated with the ParticleSource species, including particle weight for variable-weight species. Using VelocityGenerator features you could design a 3D simulation with variable-weight particles that might define a beamVelocityGen with 4 components for both vbar and vsig.

Note

Internal variables associated with particles, such as weights when using variably-weighted particles, are contained within the velocity vector. Therefore, the means (vbar) and the deviations (vsig) should also be specified for these other velocity components. Otherwise, the default value for unspecified velocity components is zero.

VelocityGenerator Parameters

kind

Type of VelocityGenerator; one of:

  • funcVelGen:

    Determines the velocity components based on a user-specified space-time function for each component. That is, the velocity is determined by where and when the particle is placed.

  • userFuncVelGen:

    Determines the velocity components based on a user-specified UserFunc; this allows correlations between components, as well as access to arbitrary random distributions.

  • beamVelocityGen:

    Simplest kind of velocity generator; allows you to specify the mean (vbar) and standard deviation (vsig) of a Gaussian distribution, from which particle velocities will be selected at load/emission time.

  • childLangmuirVelGen:

    Determines the weights of the particles (and therefore the current) based on the Child-Langmuir Law.

  • kappaVelGen:

    Beam velocity generator loads a beam of particles.

  • fieldEmitterVelGen:

    Velocity generator that fixes the component of the velocity based values of a given set of space-time.

  • fieldScaleVelGen:

    Special velocity generator only for use with relBorisVWScale particles. The velocity generator correctly sets the tags for the particles as well as creating several particles at each location each with a different scale parameter that scales the electromagnetic fields the particle experience.

emitVelocityIsLocal

Specifies the orientation of the component references in the block. When false, components refer to the overall coordinate system axes, and when true, components refer to local orientation of the emission surface, that is to say, component0 = normal, component1 = parallel_1, and component2 = parallel_2, where the choice of the two parallel directions are not available to the user. A setting of true is commonly used when emitting from a cut-cell surface, in order to ensure normal emission. In this case, the normal direction is inward, towards the surface, so that the sign of the component0 velocity is typically negative to ensure outward flow of particles.

seed (integer)

One can specify a seed or randomSeed input argument for Vorpal’s random number generator, so as to get reproducible behavior.

randomSeed (integer)

One can specify a seed or randomSeed input argument for Vorpal’s random number generator, so as to get reproducible behavior.

vsig (float)

vsig specifies the addition of a random velocity to whatever velocity is returned from the specific kind of velocity generator. The random velocity is sampled from a Gaussian with standard deviations for each component given by the value of vsig.