Input parameters¶
▸ | |||
▸ particles | |||
▸ species | |||
charge | float | Charge of the species (in units of fiducial charge): | |
cooling | string | Radiation reaction to use for the species: | "None" |
label | string | Label of the species: |
"s*" (where "*" is the species index starting at 1) |
mass | float | Mass of the species (in units of fiducial mass): | |
maxnpart | unsigned int: > 0 | Maximum number of particles per task: | |
n_payloads | unsigned short | Number of additional (payload) variables for each particle of the given species: | 0 |
pusher | string | Pusher algorithm for the species: |
"Boris" for massive and "Photon" for massless |
▸ algorithms | |||
current_filters | unsigned short: >= 0 | Number of current smoothing passes: | 0 |
▸ gca | |||
e_ovr_b_max | float: 0.0 < ... < 1.0 | Maximum value for E/B allowed for GCA particles: | 0.9 |
larmor_max | float | Maximum Larmor radius allowed for GCA particles (in physical units): | 0.0 |
▸ gr | |||
pusher_eps | float: > 0 | Stepsize for numerical differentiation in GR pusher: | 1e-6 |
pusher_niter | unsigned short: > 0 | Number of iterations for the Newton-Raphson method in GR pusher: | 10 |
▸ synchrotron | |||
gamma_rad | float: > 0 | Radiation reaction limit gamma-factor for synchrotron: | |
▸ timestep | Section with automatically inferred parameters. | ||
CFL | float: 0.0 < ... < 1.0 | Courant-Friedrichs-Lewy number: | 0.95 |
correction | float: ~1 | Correction factor for the speed of light used in field solver: | 1.0 |
dt [= CFL * dx0] | float | timestep duration | (inferred) |
▸ toggles | |||
deposit | bool | Toggle for the current deposition: | true |
fieldsolver | bool | Toggle for the field solver: | true |
▸ checkpoint | Section with automatically inferred parameters. | ||
interval | unsigned int: > 0 | Number of timesteps between checkpoints: | 1000 |
interval_time | float: > 0 | Physical (code) time interval between checkpoints: | -1.0 (disabled) |
keep | int | Number of checkpoints to keep: | 2 |
read_path | string | Parent directory to use when resuming from a checkpoint | inherits from `write_path` |
walltime | string | Write a checkpoint once after a fixed walltime | "00:00:00" (disabled) |
write_path | string | Parent directory to write checkpoints to | "<simname>.ckpt" |
is_resuming | bool | Whether the simulation is resuming from a checkpoint from command-line flag | (inferred) |
start_step | unsigned int | Timestep of the checkpoint used to resume from automatically determined during restart | (inferred) |
start_time | float | Time of the checkpoint used to resume from automatically determined during restart | (inferred) |
▸ diagnostics | |||
blocking_timers | bool | Blocking timers between successive algorithms: | false |
colored_stdout | bool | Enable colored stdout | true |
interval | int: > 0 | Number of timesteps between diagnostic logs: | 1 |
log_level | string | Specify the log level: | "VERBOSE" |
▸ grid | Section with automatically inferred parameters. | ||
▸ boundaries | |||
▸ absorb | |||
ds | float | Size of the absorption layer for particles in physical (code) units: | 1% of the domain size (in shortest dimension) |
▸ atmosphere | Section with automatically inferred parameters. | ||
density | float | Peak number density of the atmosphere at base in units of n0 | |
ds | float | Distance from the edge to which the gravity is imposed in physical units | 0.0 |
height | float | Pressure scale-height in physical units | |
species | array of ints of size 2 | Species indices of particles that populate the atmosphere | |
temperature | float | Temperature of the atmosphere in units of m0 c^2 | |
g [= temperature / height] | float | Acceleration due to imposed gravity from `grid.boundaries.atmosphere.temperature`, `grid.boundaries.atmosphere.height` | (inferred) |
fields | 1/2/3-size array of string tuples, each of size 1 or 2 | Boundary conditions for fields: | |
▸ match | |||
ds | float or array of tuples | Size of the matching layer in each direction for fields in physical (code) units: | 1% of the domain size (in shortest dimension) |
particles | 1/2/3-size array of string tuples, each of size 1 or 2 | Boundary conditions for fields: | |
extent | 1/2/3-size array of float tuples, each of size 2 | Physical extent of the grid: | |
▸ metric | Section with automatically inferred parameters. | ||
ks_a | float: 0 < ... < 1 | Spin parameter for the Kerr Schild metric: | 0.0 |
metric | string | Metric on the grid | |
qsph_h | float: -1 < ... < 1 | h paramter for the QSpherical metric, th = x2 + 2*h x2 (pi-2*x2)*(pi-x2)/pi^2: | 0.0 (e.g., x2 = th) |
qsph_r0 | float: -inf < ... < rmin | r0 paramter for the QSpherical metric, x1 = log(r-r0): | 0.0 (e.g., x1 = log(r)) |
coord | string | Coordinate system on the grid from `grid.metric.metric` | (inferred) |
ks_rh | float | Size of the horizon for GR Kerr Schild from `grid.metric.ks_a` | (inferred) |
params | map<string, float> | A map of all metric-specific parameters together (for easy access) from `grid.metric` | (inferred) |
resolution | array of uint of size 1, 2 or 3 | Spatial resolution of the grid: | |
dim | short (1, 2, 3) | Dimensionality of the grid from `grid.resolution` | (inferred) |
▸ output | |||
▸ debug | |||
as_is | bool | Output fields "as is" without conversions: | false |
ghosts | bool | Output fields with values in ghost cells: | false |
▸ fields | |||
custom | array of strings | Custom (user-defined) field quantities: | [] |
downsampling | array of unsigned int >= 1 | Downsample factor for the output of fields: | [1, 1, 1] |
enable | bool | Toggle for the field output: | true |
interval | unsigned int | Number of timesteps between field outputs (overrides `output.interval`): | 0 (use `output.interval`) |
interval_time | float | Physical (code) time interval between field outputs (overrides `output.interval_time`): | -1.0 (use `output.interval_time`) |
mom_smooth | unsigned short | Smoothing window for the output of moments (e.g., "Rho", "Charge", "T", etc.): | 0 |
quantities | array of strings | Field quantities to output: | [] |
format | string | Output format: | "hdf5" |
interval | unsigned int: > 0 | Number of timesteps between all outputs (overriden by specific output interval below): | 1 |
interval_time | float | Physical (code) time interval between all outputs (overriden by specific output intervals below): | -1.0 (disabled) |
▸ particles | |||
enable | bool | Toggle for the particles output: | true |
interval | unsigned int: > 0 | Number of timesteps between particle outputs (overrides `output.interval`): | 0 (use `output.interval`) |
interval_time | float | Physical (code) time interval between field outputs (overrides `output.interval_time`): | -1.0 (use `output.interval_time`) |
species | array of ints | Particle species indices to output: | [] = all species |
stride | unsigned int: > 1 | Stride for the output of particles: | 100 |
separate_files | bool | Whether to output each timestep into separate files: | true |
▸ spectra | |||
e_max | float | Maximum energy for the spectra output: | 1e3 |
e_min | float | Minimum energy for the spectra output: | 1e-3 |
enable | bool | Toggle for the spectra output: | true |
interval | unsigned int: > 0 | Number of timesteps between spectra outputs (overrides `output.interval`): | 0 (use `output.interval`) |
interval_time | float | Physical (code) time interval between spectra outputs (overrides `output.interval_time`): | -1.0 (use `output.interval_time`) |
log_bins | bool | Whether to use logarithmic bins | true |
n_bins | unsigned int: > 0 | Number of bins for the spectra output: | 200 |
▸ stats | |||
custom | array of strings | Custom (user-defined) stats: | [] |
enable | bool | Toggle for the stats output: | true |
interval | unsigned int: > 0 | Number of timesteps between stat outputs (overriden if `output.stats.interval_time != -1`): | 100 |
interval_time | float | Physical (code) time interval between stat outputs: | -1.0 (use `output.stats.interval_time`) |
quantities | array of strings | Field quantities to output: |
["B^2", "E^2", "ExB", "Rho", "T00"] |
▸ particles | Section with automatically inferred parameters. | ||
clear_interval | unsigned int | Timesteps between particle re-sorting (removing dead particles): | 100 |
ppc0 | float: > 0 | Fiducial number of particles per cell: | |
use_weights | bool | Toggle for using particle weights: | false |
nspec | unsigned int | Number of particle species from `particles.species` | (inferred) |
species | vector of ParticleSpecies | An object containing information about all the species from `particles.species` | (inferred) |
▸ scales | Section with automatically inferred parameters. | ||
larmor0 | float: > 0.0 | Fiducial larmor radius: | |
skindepth0 | float: > 0.0 | Fiducial plasma skin depth: | |
B0 [= 1 / larmor0] | float | Fiducial magnetic field from `scales.larmor0` | (inferred) |
V0 | float | fiducial elementary volume from `grid` | (inferred) |
dx0 | float | fiducial minimum size of the cell from `grid` | (inferred) |
n0 [= ppc0 / V0] | float | Fiducial number density from `particles.ppc0`, `grid` | (inferred) |
omegaB0 [= 1 / larmor0] | float | Fiducial cyclotron frequency from `scales.larmor0` | (inferred) |
q0 [= 1 / (n0 * skindepth0^2)] | float | Fiducial elementary charge from `scales.skindepth0`, `scales.n0` | (inferred) |
sigma0 [= (skindepth0 / larmor0)^2] | float | Fiducial magnetization parameter from `scales.larmor0`, `scales.skindepth0` | (inferred) |
▸ simulation | |||
▸ domain | |||
decomposition | array of int of size 1, 2 or 3 | Decomposition of the domain (e.g., for MPI) in each of the directions | [-1, -1, -1] |
number | int | Number of domains |
1 (no MPI) MPI_SIZE (MPI) |
engine | string | Simulation engine to use | |
name | string | Name of the simulation: | |
runtime | float: > 0 | Max runtime in physical (code) units: |
Entity reads almost all the information (except for the problem generator) about the simulation at runtime from an input file provided in the .toml
format. The most up-to-date full version of the input file with all the possible input parameters with their descriptions can be found in the root directory of the main repository in the input.example.toml
.