Particles
This section configures the particle sources to be used in the simulation. These consist mainly of two types: particles injected at the begining of the simulation obeying some spatial profile and temperature distribution (species), and sources that inject particles into the simulation during the run, either from some external source (cathode) or from ionization (neutral, neutral_mov_ions).
- num_species, integer, default = 0
- num_cathode, integer, default = 0
- num_neutral, integer, default = 0
- num_neutral_mov_ions, integer, default = 0
- interpolation, character(*), default = “quadratic”,
- low_jay_roundoff, logical, default = .false.
- grid_center, logical, default = .false.
- reports(:), character(*), default = “-“
- ndump_fac, integer, default = 0
- ndump_fac_ene, integer, default = 0
- ndump_fac_ave, integer, default = 0
- ndump_fac_lineout, integer, default = 0
- n_tavg, integer, default = -1
- n_ave(x_dim), integer, default = -1
- prec, integer, default = 4
num_species - specifies the number of particle species injected at the begining of the simulation to use. See also the species section for details.
num_cathode - specifies the number of cathodes to use in the simulation. See also the cathode section for details.
num_neutral - specifies the number of neutral (tunnel ionizable gas) to use in the simulation. See also the neutral section for details.
num_neutral_mov_ions - specifies the number of neutral_mov_ions (tunnel ionizable gas with moving ions) to use in the simulation. See also the neutral_mov_ions section for details.
interpolation - specifies the interpolation level to be used for all particles. Possible values are:
- “linear” - Use linear interpolation
- “quadratic” - Use quadratic interpolation
- “cubic” - Use cubic interpolation
- “quartic” - Use quartic interpolation
low_jay_roundoff - controls the way current from multiple species is added
to obtain the total current. The default behavior is to sequentially add
current from multiple species directly to the global current grid.
However, for cases with zero net current (at initialization), the
differences due to roundoff will cause a numeric noise of the order
$10^{-12} - 10^{-15}$ that can lead to instabilities.
Setting this parameter to .true.
will deposit each species on a clean
grid, then add the grid results from all species. This technique
effectively eliminates the numeric noise (roundoff errors are
independent of the sign), but has the caveat of requiring more memory for
the extra current grids.
grid_center - specifies if the field values are centered at the corner of the cell (full momentum conserving).
reports - specifies the grid quantities to report, including spatial/time averaging, lineouts, etc., as described in the grid diagnostics section. The available quantities are:
- “charge” - Total simulation charge
- “charge_htc” - Total simulation charge, time centered at n-½ (i.e., same as electric current)
- “dcharge_dt” - Spatially resolved time derivative of total simulation charge
ndump_fac - controls the frequency of full grid diagnostics. This
value is multiplied by the ndump
value specified in the time_step
section to determine the number of iterations between each diagnostic
dump. If set to 0, the writing of this diagnostic information is
disabled.
ndump_fac_ene - controls the frequency of energy diagnostics ofr all species. This
value is multiplied by the ndump
value specified in the time_step
section to determine the number of iterations between each diagnostic
dump. If set to 0, the writing of this diagnostic information is
disabled.
ndump_fac_ave - controls the frequency of spatial average / envelope
grid diagnostics. This value is multiplied by the ndump
value
specified in the time_step
section to determine the number of
iterations between each diagnostic dump. If set to 0, the writing of this
diagnostic information is disabled.
ndump_fac_lineout - controls the frequency of lineout / slice
diagnostics. This value is multiplied by the ndump
value specified in
the time_step
section to determine the number of iterations between
each diagnostic dump. If set to 0, the writing of this diagnostic
information is disabled.
n_tavg - specifies the number of time steps to be used when
calculating the time-averaged diagnostics. The frequency of these
diagnostics is controlled by the ndump_fac
parameter described above.
n_ave - number of gridpoints in each direction to average over for
spatially averaged dumps. The frequency of these diagnostics is
controlled by the ndump_fac_ave
parameter described above.
prec - controls the numerical precision used for grid diagnostics. The
default is to save data in single precision (prec = 4
). If the user
wants data to be saved in double precision, this parameter must be set to 8. This option is ignored if OSIRIS is compiled in single precision.
This section must be followed by num_species
species sections, num_cathode
cathode sections, num_neutral
neutral sections, and num_neutral_mov_ions
neutral_mov_ions
sections, in this order, describing each individual particle source.
Here’s an example of a particles section setting the number of normal species to 2, and the number of cathodes to 1, and setting the interpolation to linear interpolation.
particles
{
num_species = 2,
num_cathode = 1,
interpolation = "linear",
}