Global variables can be declared outside of any particular block, and they control various general
aspects of the simulation. For example, the global variable dimension
defines the number of
dimensions for your simulation. When running your simulation from the command line, you can
override values set in your .pre file for required global variables by using the variable’s
command line parameter to define a new value. Not all global variables have command line
parameters, in which case they must be defined in your .pre file.
Required global variables are as follows:
Variable that defines the precision of real numbers in the simulation. For greater precision,
use the value double
, otherwise use the option float
. You must define floattype
in your input file.
Example use of floattype
:
floattype = double
Variable that defines the dimensionality (1D, 2D, or 3D) of the simulation. Its command line
parameter is -dim
.
Example use of dimension
:
dimension = 2
Time step size for your simulation. When choosing the step size, you also must consider
stability requirements. For example, you must satisfy the Courant condition when selecting
a step size in electromagnetic simulations. Its command line parameter is -dt
.
Example use of dt
:
dt = 1.49731212265e-16
Number of steps to take. (In the case of a restart, nsteps
is the number of additional
steps.) Its command line parameter is -n
.
Example use of nsteps
:
nsteps = 22277
Optional global variables include the following, and are discussed in VSim Reference: Global Variables.
- dumpPeriodicity
- dumpSteps
- maxcellxing
- sortPtcls
- dnSortMin
- dnSortMax
- useGridBndryRestore
- copyHistoryAtEachDump
- stepPrintPeriodicity
- timingAnalysisPeriodicity
The moving window feature allows the simulation window to move at the speed of light in the chosen direction. This feature is used to reduce the size of the simulation box while following the physics phenomenon of interest, such as a laser pulse or a particle beam that is propagating at a velocity close to the speed of light.
This feature and its parameters are as follows:
- moving window
downShiftDir
downShiftPos
OAFuncshiftSpeed
These, as well as example code, are given in detail in VSim Reference: Global Variables.
It is possible to declare your own global variable in VSim. This is done by first defining the variable, then declaring it global. For example:
<Block>
$ X = 4
$ global X
</Block
This will cause the variable X to equal 4 outside of the block. The variable must be defined and declared global on separate lines. For example,
$ global X = 4
will not define X as a global variable with value 4.
Your simulation will include at least the following global parameters:
dimension
floattype
dt
nsteps
dumpPeriodicity
You can either set these equal to actual values, or you can set them equal to variables already defined in your .pre file.