gridLoader
This particle source loads particles along the nodes of the simulation grid. It is a general loader that can work with a moving window.
This particle source is available for all VSim licenses.
Slab
Slab (block)
Is required to be named initLoadSlab and
is the slab into which particles are loaded at t = 0
. At
later times, the load slab is the initial load slab moved by the
sweep rate times the time.
VelocityGenerator
VelocityGenerator (block) Is used to generate velocities of a particle when loaded. All velocities, including particle weight as a function of (x,y,z,t) must be specified in the laboratory frame. Particle positions and velocities are transformed internally in the moving frame of the simulation.
applyTimes (double vector)
Times for when the source will generate particles.
macroPerDir (double vector)
The number of macro-particles in each direction. The product of these is the number of particles loaded per cell.
sweepVel (double vector)
Velocities at which the loading region is moving.
<ParticleSource channelSrc>
kind = gridLoader
applytimes = [0. 1.]
<Slab initLoadSlab>
lowerBounds = [STARTRAMP_BOOST YSTART_LOAD ZSTART_LOAD]
upperBounds = [ENDPLASMA_BOOST YEND_LOAD ZEND_LOAD]
</Slab>
sweepVel = [$ -VX_BOOST $ 0. 0.]
macroPerDir = [NUM_PER_DX NUM_PER_DY NUM_PER_DZ]
# All velocity components (0,1,2) default to zero, which is what we want.
# Here, the particle weights (component 3) are set to create a short
# density ramp.
<VelocityGenerator rampVelGen>
kind = funcVelGen
# specify relativistic drift along x
<STFunc component0>
kind = constantFunc
amplitude = -UX_BOOST
</STFunc>
# specify weight of the variably-weighted particles
<STFunc component3>
kind = multFunc
<STFunc cosFT>
kind = expression
expression = 0.5 * H(pp(t, x) - STARTRAMP_BOOST) \
* H(STARTFLAT_BOOST - pp(t, x)) \
* (1 + cos(PI * (STARTFLAT_BOOST - pp(t, x)) \
/ RAMPLEN_BOOST)) + H(pp(t, x) - STARTFLAT_BOOST) \
* H(ENDFLAT_BOOST - pp(t, x)) \
+ 0.5 * H(pp(t, x) - ENDFLAT_BOOST) \
* H(ENDPLASMA_BOOST - pp(t, x)) \
* (1 + cos(PI * (pp(t, x) - ENDFLAT_BOOST) \
/ RAMPLEN_BOOST))
</STFunc>
<STFunc channel>
kind = leakyChannel
direction = [1. 0. 0.]
channelPosition = [0. 0. 0.]
maxParabRadius = MAXPARABRADIUS
maxRadius = MAXRADIUS
centerAmplitude = DENSRAT
quadCoef = QUADCOEF
</STFunc>
</STFunc>
</VelocityGenerator>
</ParticleSource>