Inputs Reference
All GUERNICA input files use the .cfg extension and are stored in the configs/ directory.
General syntax
- Input files are INI-style.
- Sections use
[section_name]. - Entries use
key = value. - Comments may start with
#or;. - Lists such as
species,operators,boundaries, andattrsare comma-separated. - Booleans may be written as
true,false,1, or0.
Built-in profile names
The following profile names are always available without defining a [profile:...] section:
default_density=0.0default_temperature=0.01default_u=0.0
These built-in defaults are used in many places when a profile reference is omitted.
[time]
Exists when: always
Keys
t_final
- Required: yes
- Type: float
- Default: none
dt
- Required: yes
- Type: float
- Default: none
vis_steps
- Required: no
- Type: int
- Default:
1
ode_solver
- Required: no
- Type: string
- Default:
rk3
resume
- Required: no
- Type: bool
- Default:
false
resume_directory
- Required: no
- Type: string
- Default:
runs/run
Validation
t_final >= 0dt > 0vis_steps > 0ode_solvermust currently berk3
Additional requirements when resume = true
resume_directorymust existresume_directorymust be a directoryresume_directory/gf_outmust existresume_directory/gf_outmust be a directory
[grid]
Exists when: always
Keys
mesh_file
- Required: yes
- Type: string
- Default: none
order
- Required: yes
- Type: int
- Default: none
Validation
mesh_filemust existorder >= 0
[vx], [vy], [vz]
Exist when: always
Keys
num
- Required: yes
- Type: int
- Default: none
min
- Required: yes
- Type: float
- Default: none
max
- Required: yes
- Type: float
- Default: none
Validation
num >= 1nummust be oddmin < max
[device]
Exists when: optional
Keys
backend
- Required: no
- Type: string
- Default:
cpu
Allowed values
cpuompcuda
Validation
- if present,
backendmust be one ofcpu,omp, orcuda
[output]
Exists when: optional
Keys
display
- Required: no
- Type: bool
- Default:
true
save_dist
- Required: no
- Type: bool
- Default:
false
profile
- Required: no
- Type: bool
- Default:
false
precision
- Required: no
- Type: int
- Default:
8
Validation
precision > 0
[components]
Exists when: simulating more than pure, periodic advection
Keys
species
- Required: no
- Type: comma-separated list of strings
- Default:
n
operators
- Required: no
- Type: comma-separated list of strings
- Default: empty list if omitted
boundaries
- Required: no
- Type: comma-separated list of strings
- Default: empty list if omitted
Allowed values
species
nei
Validation:
- species entries must be unique
nmust be included
operators
ionizationcharge_exchangesourceneutral_neutral
Validation:
- operator entries must be unique
boundaries
Validation:
- boundary names must be non-empty
- boundary names must be unique
[e:init], [i:init], [n:init]
Exist when: for each active species in [components] species
- If
resume = true,[n:init]is skipped during validation. - For all init sections,
typedefaults tomaxwellian.
Common profile-reference defaults
Where applicable:
densitydefaults todefault_densitytemperaturedefaults todefault_temperatureux,uy,uzdefault todefault_u
type = maxwellian
Keys
density
- Required: no
- Default:
default_density
temperature
- Required: no
- Default:
default_temperature
ux
- Required: no
- Default:
default_u
uy
- Required: no
- Default:
default_u
uz
- Required: no
- Default:
default_u
Validation
- all referenced profiles must exist and be valid
type = constant_velocity
Keys
density
- Required: no
- Default:
default_density
Validation
- referenced density profile must exist and be valid
type = single_velocity
Keys
density
- Required: no
- Default:
default_density
vx
- Required: no
- Default:
([vx].num - 1) / 2
vy
- Required: no
- Default:
([vy].num - 1) / 2
vz
- Required: no
- Default:
([vz].num - 1) / 2
Validation
- referenced density profile must exist and be valid
0 <= vx < [vx].num0 <= vy < [vy].num0 <= vz < [vz].num
type = bimaxwellian
Keys
density
- Required: no
- Default:
default_density
temperature
- Required: no
- Default:
default_temperature
ux
- Required: no
- Default:
default_u
uy
- Required: no
- Default:
default_u
uz
- Required: no
- Default:
default_u
axis
- Required: no
- Default:
vx
separation
- Required: no
- Default:
0.0
Validation
- all referenced profiles must exist and be valid
axismust bevxorvyseparation >= 0- produces two shifted Maxwellian populations along the specified axis
[profile:<name>]
Exists when: a non-built-in profile reference is used, or whenever you want to define reusable spatial data
Supported profile types
constantaffinesymmetric_sech2rational_lineargaussianradial_componentradial_symmetric_sech2radial_affineradial_rational_linearradial_tanh
type = constant
Keys
value
- Required: yes
- Default: none
type = affine
Keys
offset
- Required: yes
- Default: none
slope
- Required: yes
- Default: none
x0
- Required: yes
- Default: none
type = symmetric_sech2
Keys
amplitude
- Required: yes
- Default: none
left
- Required: yes
- Default: none
right
- Required: yes
- Default: none
width
- Required: yes
- Default: none
floor
- Required: yes
- Default: none
type = rational_linear
Keys
numerator
- Required: yes
- Default: none
denominator_slope
- Required: yes
- Default: none
denominator_offset
- Required: yes
- Default: none
type = gaussian
Keys
amplitude
- Required: yes
- Default: none
sigma
- Required: yes
- Default: none
x_shift
- Required: no
- Default:
0.0
y_shift
- Required: no
- Default:
0.0
z_shift
- Required: no
- Default:
0.0
Validation
sigma > 0
type = radial_component
Keys
component
- Required: yes
- Type: string
offset
- Required: no
- Default:
0.0
slope
- Required: yes
- Default: none
r0
- Required: no
- Default:
0.0
x_center
- Required: no
- Default:
0.0
y_center
- Required: no
- Default:
0.0
z_center
- Required: no
- Default:
0.0
Validation
componentmust bex,y, orz
type = radial_symmetric_sech2
Keys
amplitude
- Required: yes
- Default: none
center
- Required: yes
- Default: none
width
- Required: yes
- Default: none
floor
- Required: yes
- Default: none
x_center
- Required: no
- Default:
0.0
y_center
- Required: no
- Default:
0.0
z_center
- Required: no
- Default:
0.0
Validation
width > 0
type = radial_affine
Keys
offset
- Required: yes
- Default: none
slope
- Required: yes
- Default: none
r0
- Required: yes
- Default: none
x_center
- Required: no
- Default:
0.0
y_center
- Required: no
- Default:
0.0
z_center
- Required: no
- Default:
0.0
type = radial_rational_linear
Keys
numerator
- Required: yes
- Default: none
denominator_slope
- Required: yes
- Default: none
denominator_offset
- Required: yes
- Default: none
r0
- Required: yes
- Default: none
x_center
- Required: no
- Default:
0.0
y_center
- Required: no
- Default:
0.0
z_center
- Required: no
- Default:
0.0
type = radial_tanh
Keys
floor
- Required: yes
- Default: none
height
- Required: yes
- Default: none
center
- Required: yes
- Default: none
width
- Required: yes
- Default: none
x_center
- Required: no
- Default:
0.0
y_center
- Required: no
- Default:
0.0
z_center
- Required: no
- Default:
0.0
Validation
width != 0
[ionization]
Exists when: should be included when ionization appears in [components] operators
Keys
model
- Required: no
- Default:
constant
nu0
- Required: no
- Default:
10.928693196885557
plasma_species
- Required: no
- Default:
e
neutral_species
- Required: no
- Default:
n
Validation
- if
[ionization]exists butionizationis not enabled in[components] operators, validation fails modelmust currently beconstantnu0 > 0plasma_speciesmust beeneutral_speciesmust ben- species
emust be present in[components] species
[charge_exchange]
Exists when: should be included when charge_exchange appears in [components] operators
Keys
model
- Required: no
- Default:
FFT
sigma
- Required: no
- Default:
Krstic
plasma_species
- Required: no
- Default:
i
neutral_species
- Required: no
- Default:
n
Allowed model values
FFTFullLBAvgMeier
Allowed sigma values
KrsticJanev-Smith
Validation
- if
[charge_exchange]exists butcharge_exchangeis not enabled in[components] operators, validation fails modelmust be one ofFFT,Full,LB,Avg,Meier- if
sigmais explicitly specified,modelmust beFFTorFull,sigmamust beKrsticorJanev-Smith plasma_speciesmust beineutral_speciesmust ben- species
imust be present in[components] species
[neutral_neutral]
Exists when: should be included when neutral_neutral appears in [components] operators
Keys
model
- Required: no
- Default:
bgk
nu
- Required: no
- Default:
1.0
Validation
- if
[neutral_neutral]exists butneutral_neutralis not enabled in[components] operators, validation fails modelmust currently bebgknu > 0
[source]
Exists when: should be included when source appears in [components] operators
Keys
type
- Required: no
- Default:
maxwellian
neutral_species
- Required: no
- Default:
n
density
- Required: no
- Default:
default_density
temperature
- Required: no
- Default:
default_temperature
ux
- Required: no
- Default:
default_u
uy
- Required: no
- Default:
default_u
uz
- Required: no
- Default:
default_u
Validation
- if
[source]exists butsourceis not enabled in[components] operators, validation fails typemust currently bemaxwellianneutral_speciesmust ben- all referenced profiles must exist and be valid
- for the current code path, all referenced source profiles must be constant or built-in defaults
[boundary:<name>]
Exists when: <name> appears in [components] boundaries
Keys
attrs
- Required: yes
- Type: comma-separated list of ints
- Default: none
type
- Required: yes
- Type: string
- Default: none
alpha
- Required: no
- Default:
default_u
temperature
- Required: no
- Default:
default_temperature
ux
- Required: no
- Default:
default_u
uy
- Required: no
- Default:
default_u
uz
- Required: no
- Default:
default_u
specular_coeff
- Required: no
- Default:
0.0
Allowed type values
maxwellian_channelabsorbingspecular
Validation
- the section must exist if the boundary name is listed in
[components] boundaries attrsmust be non-empty- every listed attribute must be a valid mesh boundary attribute
- a boundary attribute may appear in only one boundary section
specular_coeffmust satisfy0 <= specular_coeff <= 1
Additional validation for type = maxwellian_channel
alpha,temperature,ux,uy, anduzmust resolve to valid profiles- for the current code path, those profiles must be constant or built-in defaults
Implementation notes
Source
The source section accepts density, temperature, ux, uy, and uz, and validation requires all referenced source profiles to be constant or built-in defaults. However, the current BuildSourceOperatorFromConfig implementation only uses density and temperature when constructing the MaxwellianSourceOperator. ux, uy, and uz are parsed and validated but are not currently used by the builder.
Boundaries
For type = maxwellian_channel, the current builder uses alpha, temperature, ux, uy, uz, and specular_coeff. For absorbing and specular, only attrs and type are used by the builder.