These macros will be mostly used by the framework, but the user may want to import and use them (especially like the mathphys macro), so they are docemented here.
All utility macros are available to all packages.
This macro file can be imported to an input file with
$ import listUtilities
Macros available in listUtilities are used to append blocks and lists.
This macro file can be imported to an input file with
$ import logicals
This macros file simply defines the logical variables: true, TRUE, false, and FALSE.
This macro file can be imported to an input file with
$ import mathphys
In many of the input file examples that are supplied in
VSimComposer, you will see macros from mathphys
invoked.
Macros available in mathphys define a series of physical and
mathematical constants that are commonly used in simulations.
The constants defined in this macro file are:
# Math constants
$ PI = math.pi
$ PIO2 = 0.5*PI
$ TWOPI = 2.*PI
# Physical constants from http://physics.nist.gov/cuu/Constants/index.html
$ LIGHTSPEED = 2.99792458e8 # m/s
$ C2 = LIGHTSPEED*LIGHTSPEED
$ MU0 = 4e-7*PI
$ EPSILON0 = 1/(MU0 * C2)
$ ELECMASS = 9.10938215e-31 # kG
$ PROTMASS = 1.672621637e-27 # kG
$ MUONMASS = 1.88353130e-28 # kg
$ ELEMCHARGE = 1.602176487e-19 # C
$ KB = 1.3806504e-23 # J/K
# gyromagnetic anomaly of the proton (CODATA 2014)
$ PROTON_GMA = 1.7928473508 # (85), dimensionless
# gyromagnetic anomaly of the electron (CODATA 2014)
$ ELECTRON_GMA = 1.15965218091e-3 # (26), dimensionless
# Secondary parameters
$ ELECCHARGE = -ELEMCHARGE # C
$ ELECMASSEV = ELECMASS*C2/ELEMCHARGE # eV
This macro file can be imported to an input file with
$ import timing
It is imported by VSim.mac. This macro file defines time-related parameters and makes them global variables.
setTimingData
()In the typical use case, VPM_DT
, VPM_NSTEPS
, VPM_DUMP_PERIOD
,
VPM_DMFRAC
, and VPM_CFL_NUMBER
are set before entry. This macro then
computes VPM_SIMULATION_TIME
, and VPM_NUM_DUMPS
. VPM_DT
is respected
if not zero. Otherwise it is computed from the VPM_CFL_NUMBER
and
the minimum CFL time steps from electromagnetics (if an
electromagnetic simulation) and (if there are particles present) the
plasma frequency and the thermal electron cell crossing time
computed from VPM_MAX_ELECTRON_DENSITY
and VPM_MAX_ELECTRON_TEMP_EV
.
This macro file can be imported to an input file with
$ import units
This macro file contains conversions factors for units to SI units.
This macro file can be imported to an input file with
$ import utilities
This macro file contains various utilities for testing equality, converting coords, and the like.
isEqualString
(aString, bString)The isEqualString macro tests if two strings are equal. It returns True or False.
Parameters: |
|
---|
isNotEqualInt
(i, j)The isNotEqualInt macro tests if two integers are not equal. It returns True or False.
Parameters: |
|
---|
entryToBool
(pd)The entryToBool macro converts an array of 0/1’s to booleans True/False.
Parameters: | pd – An array of integers representing booleans, e.g. periodicity. |
---|
This macro file can be imported to an input file with
$ import verbosity
This macro file contains the constants used in setting the level of output in a simulation.
After importing, it can be used by setting the verbosity to the
desired level, e.g. verbosity = VPM_NOTICE
.
The verbosity levels are as follows:
$ VPM_EMERGENCY
$ VPM_ALERT
$ VPM_CRITICAL
$ VPM_ERROR
$ VPM_WARNING
$ VPM_NOTICE
$ VPM_INFO
$ VPM_DEBUG
$ VPM_DEBUG2
$ VPM_DEBUG3
This macro file can be imported to an input file with
$ import vputilities
It is imported by VSim.mac. This macro file defines vsim-specific utility macros.
writeIndicesFromCoords
(coordBounds)Convert coordinates to the corresponding indices.
Parameters: | coordBounds – The coordinates to be converted. A float array of length VPM_NDIM. |
---|
write1CellVolume
(p, outwardNormal, dl0, dl1, dl2, l0, l1, l2, st0, st1, st2)Create a 1-cell slab from in (x,y,z) tuple and a direction outwardNormal. It is a tuple that points in the direction of the outward normal to the surface.
Parameters: |
|
---|
getBoundaryOffsets
(location)Apply offsets to our bounds if a boundary condition has already been set to an orthogonal face.
Parameters: | location – The boundary location, one of lower/upper[X,Y,Z]. |
---|