Commands - vonkarmaninstitute/pantera-pic-dsmc GitHub Wiki

The input script is simply a list of keywords or commands followed by one or more parameters. Keywords always end with a column :, and have to follow the exact syntax shown here. Lines starting with an exclamation mark ! are considered comments and ignored.

Keywords are here listed by topic. Parameter names are preceded by a type specifier: [b] for boolean (.TRUE. or .FALSE.) [i] for integer (ex. 5342) [f] for floating point (ex. 3.412e-12) [s] for string (ex. 'hello') [fff] for 3-vectors of floating point values (ex. [12.3 0.12 95.4])

Simulation restart

Keyword: Restart:
Parameters: [i]tID
If present, this tells Pantera to restart the simulation from time step number tID. The code will load particles from a file with the corresponding file name, and continue the simulation from that state. Notice that, since the field equations have no temporal derivatives, particles are the only required information for the restart.

Specifying domain and grid

Keyword: Dimensions:
Parameters: [i]dim
Specifies the number of spatial dimensions (1, 2, or 3) that should be simulated.

Keyword: Domain_limits:
Parameters: [f]xmin [f]xmax [f]ymin [f]ymax [f]zmin [f]zmax
Specifies the minimum and maximum coordinates of the simulation box. Notice that the parameters are used also in 1D and 2D simulations to determine the volume of the simulation box. In this case, it is suggested to set the virtual dimensions to unitary length. When the simulation is axisymmetric, zmin and zmax represent the minimum and maximum polar coordinate in radians (and therefore influence the volume of the domain).

Keyword: Axisymmetric:
Parameters: [b]axi
Takes a single boolean value specifying whether the simulation is axisymmetric. When .TRUE., the keyword Dimensions must be set to 2.

Keyword: Number_of_cells:
Parameters: [i]nx [i]ny [i]nz
Specifies the number of cells in each coordinate direction. For 1D and 2D simulations, the number of cells in the virtual directions must be set to 1.

Keyword: Grid_file:
Parameters: [s]filename
Specifies the name of the file which contains the definition for nonuniform cartesian grids. TODO: file specs

Keyword: Mesh_file_SU2:
Parameters: [s]filename
Specifies the name of the file of the mesh in the SU2 format. Pantera will try to load an unstructured mesh of triangles or tetradedra with 2 or 3 dimensions, according to what specified in the Dimensions keyword. This keyword should therfore appear before in the input file. Such mesh can be generated from a software such as Gmsh. TODO: wiki page on unstructured mesh generation

Specifying boundary conditions (for unstructured grids)

Keyword: Boundary_condition:
Parameters: [s]group [s]type <additional parameters>
Specifies boundary conditions for the field or for particles when using unstructured grids. The first parameter, group, identifies the name of the phsical group to which the boundary condition should be applied. This identifier string should be defined when the mesh is generated. It is followed by the type parameter, which can take one of the following values:

Affecting particles:

  • vacuum: particles vanish upon reaching the boundary
  • specular: particles are reflected specularly, included those that reacted
  • diffuse: particles are reflected diffusely, included those that reacted. Takes one additional parameter, [f]Twall, which specifies the temperature of the Maxwell-Boltzmann distribution from which the reflected particle velocity should be sampled.
  • cll: particles are reflected using the Cercignani-Lampis-Lord kernel. Takes three additional parameters: [f]Twall [f]alphan [f]alphat. Parameter Twall is the temperature of the wall, alphan and alphat are respectively the normal and tangential energy accommodation coefficients.
  • react particles react at this boundary according to the wall reactions specified using the Wall_reactions_file: keyword

Affecting the field:

  • dirichlet dirichlet boundary condiitons for the potential. Takes the fixed potential as additional parameter, [f]Vwall.
  • neumann neumann boundary condition for the potential. Takes the fixed normal potential gradient as additional parameter, [f]dVdnwall
  • dielectric dielectric boundary condition. Particles vanish at this boundary, but their charge is accumulated onto the surface, as if the particle was fixed at the impingement point.
  • rf_voltage Specifies a boundary on which a sinusoidal time-varying potential is imposed. Takes three addiitonal parameters: [f]Vrf [f]Vdc [f]f. They represent respectively the peak-to-peak alternating voltage, the DC offset, and the frequency in Hz. The potential is therefore applied according to the expression $\phi=V_\text{dc}+\frac{1}{2}V_\text{rf} \cos(2 \pi f t)$.
  • spicenode treats the surfaces in this physical group as a conductor. This conductor is coupled to an external circuit through the ngspice software. Usage is explained in the dedicated wiki page Coupling to external circuits.

Keyword: Boundary_emit:
Parameters: [s]group [s]mixture [f]nrho [f]ux [f]uy [f]uz [f]Ttr [f]Trot [f]Tvib
Specifies the emission of particles from a boundary when using unstructured grids. The command can be used more than once at the same boundary group, allowing for example the emission of species at different temperatures. The first parameter, group, identifies the name of the phsical group to which the boundary condition should be applied. Parameter mixture identifies the (previously defined) mixture that should be injected. Each species will be injected according to the molar fraction in which it is present in the mixture. The following quantities define the parameters of the Maxwell-Boltzmann distribution from which the injected particles are sampled. These include the number density nrho, three components of the drift velocity, ux, uy, uz, translational, rotational and vibrational temperatures Ttr, Trot, Tvib.

Keyword: Initial_particles:
Parameters: [s]mixture [f]nrho [f]ux [f]uy [f]uz [f]Ttrx [f]Ttry [f]Ttrz [f]Trot [f]Tvib
If used, the entire domain will be populated with the specified gas at the beginning of the simulation (but not at a restart). Parameter mixture identifies the (previously defined) mixture that should be injected. Each species will be injected according to the molar fraction in which it is present in the mixture. The following quantities define the parameters of the Maxwell-Boltzmann distribution from which the injected particles are sampled. These include the number density nrho, three components of the drift velocity, ux, uy, uz, three components of the translational temperature, Ttrx, Ttry, Ttrz, and the rotational and vibrational temperatures Trot, Tvib.

Keyword: Volume_inject:
Parameters: [s]mixture [f]nrhodot [f]ux [f]uy [f]uz [f]Ttrx [f]Ttry [f]Ttrz [f]Trot [f]Tvib
If used, the entire domain will be populated with the specified gas at the specified number rate (real particles/volume/second) nrhodot. Parameter mixture identifies the (previously defined) mixture that should be injected. Each species will be injected according to the molar fraction in which it is present in the mixture. The following quantities define the parameters of the Maxwell-Boltzmann distribution from which the injected particles are sampled. These include the three components of the drift velocity, ux, uy, uz, three components of the translational temperature, Ttrx, Ttry, Ttrz, and the rotational and vibrational temperatures Trot, Tvib.

Keyword: Remove_particles_in_mixture:
Parameters: [s]mixture
If specified, the code will remove all particles belonging to the previously defined mixture named mixture at the end of each time step. This can be useful for example to remove reaction products that are not of interest for the simulation.

Keyword: Domain_type:
Parameters: [s]group [s]type [f]epsilonr
Specifies whether the region (surface in 2D and volume in 3D) specified by the name group is a fluid region or a solid region. The type parameter must take the value fluid or solid, correspondingly. Particles are not allowed to enter solid regions, but these are still solved for the electric potential. This allows to simulate dielectrics. The third parameter, epsilonr specifies the relative permittivity of the region.

Keyword: Wall_reactions_file:
Parameters: [s]wallreactfile
Specifies the file containing reactions to be applied at walls where the react type boundary condition was applied. The file should contain a list of possible reactions, with every reaction specified as follows:

[s]R --> [s]P
[f]prob

Where R is the reacting particle and P is the product of the wall reaction, using the species name as specified in the species file. The reaction occurs with a probability 0 < prob < 1. If no product is desired, the word none must be used as P. These features can be used for example to simulate recombination reactions that conserve mass in a statistical sense:

O --> O2
0.5

O --> none
0.5

Keyword: External_B_field:
Parameters: [fff]bfield
A vector specifying the three components of the externally applied magnetic field. This field is constant and applied to all particles in the domain.

Keyword: Thermal_bath_bool:
Parameters: [b]thermalbath
When set to .TRUE., the code will re-sample the velocity of all particles from a Maxwell-Boltzmann distribution at the specified temperature. This is useful for example to check a chemistry mechanism in isothermal conditions.

Keyword: Thermal_bath_Ttr:
Parameters: [f]Ttr
Specifies the translational temperature of the distribution from which the particles' velocity should be sampled when the Thermal_bath_bool: keyword is used.

Specifying boundary conditions (for Cartesian grids)

Boudary conditions for Cartesian grids can only be assigned at the boundaries of the rectangular simulation box.

Keyword: Domain_specular:
Parameters: [b]xlo [b]xhi [b]ylo [b]yhi
If a Cartesian grid is used, specifies whether the left, right, bottom and top boundaries should be assigned specular boundary conditions for particles.

Keyword: Domain_diffuse:
Parameters: [b]xlo [b]xhi [b]ylo [b]yhi
If a Cartesian grid is used, specifies whether the left, right, bottom and top boundaries should be assigned diffuse boundary conditions for particles. The temperature of the boundary is specified using the Boundary_temperature: keyword.

Keyword: Boundary_temperature:
Parameters: [f]Twall
Specifies the temperature of the boundary in case of diffuse boundary conditions.

Keyword: Domain_react:
Parameters: [b]xlo [b]xhi [b]ylo [b]yhi
Specifies whether particles should react at the boundary according to the reactions specified in the wall reactions file.

Numerical settings

Keyword: Fnum:
Parameters: [f]fnum
The global macroparticle weight. This number indicates how many real particles are represented by a single macroparticle. At fixed density, a higher value for this number indicates a lower number of simulated particles.

Keyword: Timestep:
Parameters: [f]dt
Specifies the time step of the simulation.

Keyword: Number_of_timesteps:
Parameters: [i]nt
Specifies the final time step to be performed. In case of restart, the simulation will stop at this time step. For example, if the simulation is restarted at time step 100 and nt is set to 300, the code will perform 200 time steps before stopping.

Keyword: RNG_seed:
Parameters: [i]seed
Specifies an integer that seeds the pseudo-random number generator. Two simulations performed on the smae number of MPI processes with the same seed should in principle give identical results. This number must be changed if two different realizations of the same simulation have to be performed.

Keyword: Stats_every:
Parameters: [i]nstat
Specifies every how many time steps the code should print an information string to console. The information string can be used to monitor the progress of the simulation, and contains basic information for exapmle on the current time step, number of particles, estimated time remaining, number of collisions performed, etc...

Keyword: PIC_type:
Parameters: [s]pictype
Specifies what type of PIC algorithm should be used. The user can choose among:

  • none no self-consistent electric field is applied to the particles
  • explicit the classic explicit time discretization is used, in combination with the Boris-leapfrog particle mover.
  • explicitlimited the explicit algorithm is used, but the permittivity of vacuum is scaled such that the local (numerical) Debye length is always kept of the order of the cell size.
  • semiimplicit an elecrostatic version of the semi-implicit, energy-conserving algorithm by [Lapenta] is used. Currently, this algorithm does not support the presence of magnetic fields.
  • fullyimplicit a fully-implicit, energy-conserving algorithm is used. Particles and fields are converged to the new time step iteratively. This algorithm is stable for cell sizes that exceed the local mean free path and time steps that exceed the electron plasma frequency.
  • hybrid the hybrid algorithm assumes electrons as inertia-less fluid which are introduced in the Poisson equation as a non-linear term. Equation is solved explicitly in time. The setting of electron fluid parameters is required and referred in Fluid electrons model section.

Keyword: Jacobian_type:
Parameters: [i]jactype
Specifies how the Jacobian for the fully implicit method is formulated. Possible choices are:

  • 0 Jacobian containing only the derivatives related to the potential, with no plasma response
  • 1 The Jacobian is computed exactly (should correspond to the one computed using partial derivatives). This computation is very expensive, and was done mainly for research purposes
  • 3 The plasma response is computed assuming that particles do not leave the original cell. This corresponds to the ECSIM semi-implicit formulation. This is the suggested option.

Other values for jactype are available, but are used mainly for experimentation purposes and are not recommended for normal use.

Keyword: Residual_and_jacobian_combined:
Parameters: [b]resjaccombined
Specifies whether the computation of the residual and of the Jacobian should be performed at the same time (with a single particle advection) or not.

Keyword: Epsilon_scaling:
Parameters: [f]gamma
Specifies a factor which is squared and scales the permittivity of vacuum, such that this becomes $\gamma^2 \varepsilon_0$.

Data output

Output paths


Keyword: Flowfield_output:
Parameters: [s]flowfieldpath
Specifies the output path for the grid averaged data. A single file is written every output cycle. The files are saved with the name dsmc_flowfield_T.vtk, where T is the time step. Be aware that the code will not overwrite any result, which means that the file must not exist prior to the writing attempt, or the code will crash. The specified folder must exist.

Keyword: Particle_dump_output:
Parameters: [s]particlepath
Specifies the output path for the particle data. A file is written for every processor at every output cycle. The files are saved with the name proc_P_time_T, where P is the MPI process id and T is the time step. The specified folder must exist.

Keyword: Trajectory_dump_output:
Parameters: [s]trajectorypath
Specifies the output path for particle trajectory data. A file is written and successively appended for each particle. The files are saved with the name trajectory_I, where I is the integer identifier that is assigned to the particle at the moment it is initialized. The specified folder must exist.

Keyword: Checks_output:
Parameters: [s]checkspath
Specifies the output path for the diagnostics file conservation_checks. The specified folder must exist.

Keyword: All_output_path:
Parameters: [s]allpath
This keyword sets all the previous paths to the same value specified by allpath.

Flow field data


Keyword: Binary_output:
Parameters: [b]binaryout
If set to .TRUE., the grid data files and particles files are written in binary format, otherwise they are written in human-readable ASCII format.

Keyword: Perform_checks:
Parameters: [b]checks
Specifies whether the code should compute global values for diagnostics. These include, for instance, the number of particles, total momentum, kinetic and potential energies, number of recations, and more. The quantities are saved in a file called conservation_checks.

Keyword: Checks_every:
Parameters: [i]checksevery
Specifies every how many time steps the diagnosic checks should be performed.

Grid quantities

Keyword: Dump_grid_start:
Parameters: [i]avgstart
Specifies from which time step the code should start saving grid-averaged data to file. Use 0 to write data from the beginning of the simulation.

Keyword: Dump_grid_avgevery:
Parameters: [i]avgevery
Specifies every how many time steps grid data should be averaged.

Keyword: Dump_grid_numavgs:
Parameters: [i]numavg
Specifies how many time steps should be averaged before saving grid data to file. For example, if avgstart=100, avgevery=20, numavg=10, the first file will be written at time step 300, and will contain the average of time steps 100, 120, ..., 280, 300. The following file will be written at time step 500.

Boundary quantities

When an unstructured mesh is used, the code automatically generates a mesh containing all of its boundaries which have been assigned to a physical group. Accumulated particle quantities on this mesh can be output using the following commands:

Keyword: Dump_bound_start:
Parameters: [i]avgstart
Specifies from which time step the code should start saving boundary-averaged data to file. Use 0 to write data from the beginning of the simulation.

Keyword: Dump_bound_avgevery:
Parameters: [i]avgevery
Specifies every how many time steps boundary data should be averaged.

Keyword: Dump_bound_numavgs:
Parameters: [i]numavg
Specifies how many time steps should be averaged before saving boundary data to file. For example, if avgstart=100, avgevery=20, numavg=10, the first file will be written at time step 300, and will contain the average of time steps 100, 120, ..., 280, 300. The following file will be written at time step 500.

Particles


Keyword: Dump_part_start:
Parameters: [i]partstart
Specifies from which time step the code should start saving particles to file.

Keyword: Dump_part_every:
Parameters: [i]partevery
Specifies the interval of time steps at which the code should save particles to file. For instance, if partstart=1000 and partevery=100, particles will be saved at timesteps 1000, 1100, 1200, ...

Keyword: Dump_part_fracsample:
Parameters: [f]fracsample
Specifies the fraction of particles that should be saved to file. Particles are selected to be dumped with probability fracsample. This is useful when the user wants to save more snapshots of particle data without saving an enormous amount of particles. When the particle dump is used for simulation restarts, this keyword should not be used, or fracsample should be set to 1.

Keyword: Boundary_dump_fluxes:
Parameters: [s]group
When used, all particles reaching the boundary assigned to the group physical group will be saved to file. The starting time step and interval at which the save occurs are specified by the Dump_bound_start: and Dump_bound_every: keywords.

Keyword: Dump_part_bound_start:
Parameters: [i]boundstart
Specifies at which time step to start accumulating the particles which reach boundaries where the Boundary_dump_fluxes: keyword was specified.

Keyword: Dump_part_bound_every:
Parameters: [i]boundevery
Specifies every how many time steps to save the accumulated particles that reached the boundary. Notice that particles are accumulated at every time step after boundstart. This keyword simply speciifes the interval at which they are saved to file.

Keyword: Bool_dump_moments:
Parameters: [b]dumpmoments
Specifies whether additional moments of the velocity distribution function should be computed and saved to file. These constitute 33 additional quantities (per species), so a significant amount of data. The moments include $\rho, u_i, P_{ij}, q_i, Q_{ijk}, R_{iijj}, R_{ijkk}, S_{ijjkk}$.

TODO: missing keyword for trajectory dump

Keyword: Inject_from_file:
Parameters: [s]injectfile
Reads a particle file with name injectfile. At each time step, particles are sampled from this pool of particles to be injected.

Keyword: Inject_probability:
Parameters: [f]injprob
Specifies the probability with which a particle is injected from the pool of particles loaded from file using the Inject_from_file: keyword at each time step. This parameter essentially controls the flow rate of particles in the domain.

Species and mixtures

Keyword: Species_file:
Parameters: [f]speciesfile
Specifies the name of the file containing the list of all simulated species and their properties. Each line in this file represents a species, and it must be formatted as follows: [s]name [f]molwt [f]molmass [i]rotdof [f]rotrel [i]vibdof [f]vibrel [f]vibtemp [f]spwt [f]charge where:

  • name is a string representing the species. It will be used to identify the species in the other commands as well as in the output files.
  • molwt is the molecular mass in atomic mass units
  • molmass is the molecular mass in kg
  • rotdof is the number of rotational degrees of freedom
  • rotrel is the rotational relaxation number
  • vibdof is the number of vibrational degrees of freedom
  • vibrel is the vibrational relaxation number
  • vibtemp is the vibrational activation temperature
  • spwt is the species-specific particle weight, which multiplies the global particle weight specified with the Fnum: keyword.

An example of species file for the 11-species air mixture:

O2  32.00    5.31E-26  2    0.2   2    5.58659E-5    2256.0    1.0      0.0
N2  28.016   4.65E-26  2    0.2   2    0.1           3371.0    1.0      0.0
O   16.00    2.65E-26  0    0.0   0    0.0           0.0       1.0      0.0
N   14.008  2.325E-26  0    0.0   0    0.0           0.0       1.0      0.0
NO  30.008   4.98E-26  2    0.2   2    7.14285E-4    2719.0    1.0      0.0
O2+ 32.00    5.31E-26  2    0.2   2    5.58659E-5    2256.0    1.0      1.0
N2+ 28.016   4.65E-26  2    0.2   2    1.90114E-5    3371.0    1.0      1.0
O+  16.00    2.65E-26  0    0.0   0    0.0           0.0       1.0      1.0
N+  14.008  2.325E-26  0    0.0   0    0.0           0.0       1.0      1.0
NO+ 30.008   4.98E-26  2    0.2   2    7.14285E-4    2719.0    1.0      1.0
e   0.001  9.10938188E-29 0 0.0   0    0.0           0.0       1.0     -1.0

Keyword: Def_mixture:
Parameters: [s]mixname [s]spname [f]frac <additional components>
Defines a mixure of different species, each with its own molar fraction. The sum of all molar fractions must equal 1. Mixtures are used by many other commands. For instance, a mixture can be used to identify a set of species to be injected in the domain. The name of the mixture mixname is defined here, followed by a list of species and the respective fraction. For instance, an air mixture could be defined by the parameters list Air N2 0.78087 O2 0.20946 Ar 0.00934 CO2 0.00033

Fluid electrons model

If PIC_type is set to hybrid, electrons are represented as an inertia-less fluid, which acts as a nonlinear source term in Poisson's equation. The electron density follows the Boltzmann relation, $n_e = n_{e0} \exp \left(\frac{q_e (\phi-\phi_0)}{k_B T_{e0}} \right)$. The values of $n_{e0}$, $\phi_0$, and $T_{e0}$ are respectively the reference number density, potential, and temperature, and they must be set using the following keywords.

Keyword: Fluid_electrons_n0:
Parameters: [f]fluidn0
Specifies the reference density $n_{e0}$ in the Boltzmann relation.

Keyword: Fluid_electrons_phi0:
Parameters: [f]fluidphi0
Specifies the reference potential $\phi_0$ in the Boltzmann relation.

Keyword: Fluid_electrons_Te:
Parameters: [f]fluidTe
Specifies the reference temperature $T_{e0}$ in the Boltzmann relation.

Collisions

Keyword: Collision_type:
Parameters: [s]colltype
Specifies the type of collision algorithm to be used for particle-particle or for particle-background collisions. The user can choose between the following values for colltype:

  • NONE particle collisions are not computed
  • DSMC particle-particle collisions are computed using the classic No-Time-Counter algorithm, with cross section and scattering laws defined by the VSS model.
  • MCC
  • VAHEDI_MCC particle-background collisions are computed using the algorithm by Vahedi and Surendra, with cross sections in tabulated form and isotropic scattering.
  • VAHEDI_DSMC particle-particle collisions are computed by considering tabulated collisional cross sections.
  • BGK performs particle collisions using the Bhatnagar-Gross-Krook collision operator, where particles relax towards a Maxwell-Boltzmann distribution at the local gas properties.

Keyword: BGK_sigma:
Parameters: [f]sigma
Sets the cross section that is used in the BGK collision procedure to compute the collision frequency. To be used when colltype is set to BGK.

Keyword: DSMC_collisions_mixture:
Parameters: [s]dsmcmix
Specifies a mixture whose species are tested for DSMC collisions. The mixure mush have been defined using the Def_mixture keyword.

Keyword: VSS_parameters_file:
Parameters: [s]vssfile
Loads a file containing per-species parameters for the VSS cross-section model. For each species defined in the species file, vssfile must contain a line with the following format: [s]species [f]dref [f]omega [f]Tref [f]alpha, where dref and Tref are the reference diameter and temperature, omega is the temperature exponent, and alpha defines the scattering angle distribution.

Keyword: VSS_parameters_binary_file:
Parameters: [s]vssbinfile
Loads a file containing per-species-pair parameters for the VSS cross-section model. Each coefficient of the model is therefore entered in tables. The file vssbinfile must respect the following format:

[f]Tref

[s]sp1 [s]sp2 [s]sp3 <additional species>

[f]d11 [f]d12 [f]d13 <additional entries>
       [f]d22 [f]d23 <additional entries>
              [f]d33 <additional entries>
                     <additional entries>

[f]omega11 [f]omega12 [f]omega13 <additional entries>
           [f]omega22 [f]omega23 <additional entries>
                      [f]omega33 <additional entries>
                                 <additional entries>
					 
[f]alpha11 [f]alpha12 [f]alpha13 <additional entries>
           [f]alpha22 [f]alpha23 <additional entries>
                      [f]alpha33 <additional entries>
                                 <additional entries>

The first line is the reference temperature, which is the same for all species-pairs. The second line is the list of species, which establishes the order in which they appear in the tables (therefore independendent of the order they had in the species file). For instance, for an argon plasma, the file could look like this:

273.0

Ar Ar+ e

4.011e-10    5.522e-10    0.193e-10
             8357.55e-10  8779.00e-10
                          8357.55e-10

0.722    0.619    -0.434
         2.316    2.321
                  2.316

1.470    0.162    1.801
         18.304   19.131
                  18.304

Keyword: Reactions_file:
Parameters: [s]reactfile
Specifies the name of a file containing the definition of gas phase reactions. These can also include elastic processes when using tabulated cross sections. The content of the file is a list of reactions. Each of them must follow this syntax:

[s]R1 + [s]R2 --> [s]P1 + [s]P2 (+ [s]P3) (+ [s]P4)
[s]type <additional parameters>

Where R1, R2, P1, P2, ... are the species names of reactants and products, which have to match what specified in the species file. Parameter type can take the values:

  • lxcat where the cross section is in tabulated form. it expects two additional parameters: [f]Ea [s]lxcatfile, where the first is the activation energy in eV, and the second is the name of the file containing the tabulated cross section. This file must respect the formatting provided by the LXCat database.
  • tce which tells the code to use the "total collision energy" method. This must be used in combination with collisional parameters provided with the VSS cross section model. The TCE method allows to reproduce reaction rates at equilibrium that follow the modified Arrhenius form. It expects three additional parameters: [f]A [f]n [f]Ea, which correspond to the parameters of the rate $k_f(T)=AT^ne^{-\frac{E_a}{kT}}$.

Keyword: MCC_background_dens:
Parameters: [f]mccnrho
Specifies the total number density of the backgound gas when MCC collisions are used.

Keyword: MCC_background_Ttra:
Parameters: [f]mccTtr
Specifies the translational temperature of the backgound gas when MCC collisions are used.

Keyword: MCC_background_mixture:
Parameters: [s]mixture
Specifies the name of the mixture that should be used as backgound gas when MCC collisions are used.

Keyword: MCC_background_file:
Parameters: [s]mccfile
Specifies a file containing a desnity map for the background species. The file should be in the VKT format, and use the same mesh as the one used in the current simulation. The code will look for fields following the pattern nrho_mean_SP_ID, where SP_ID is one of the species defined in the species file.

Domain partitioning

Keyword: Partition_style:
Parameters: [s]style
Specifies the way that the cells are distributed between MPI processes. The user can choose between the following options:

  • stripsx, stripsy, stripsz cells distributed in strips along x, y, and z
  • slicesx cells distributed in slices around the x axis, meaning according to the aximuthal coordinate $\theta=\text{atan2}(y,z)$.
  • slicesz cells distributed in slices around the z axis, meaning according to the aximuthal coordinate $\theta=\text{atan2}(y,x)$. The partition can be done uniformly based only on the coordinates, or by weighting cells such that every process has the same amount of particles.

Keyword: Load_balance:
Parameters: [b]loadbalance
Specifies whether cells should be distributed simply based on the position of their centroid or by weighting them by the number of particles they contain.

Keyword: Load_balance_every:
Parameters: [i]balanceevery
Specifies every how many time steps cells should be re-assinged to MPI processes for dynamic load balancing. This is activated only if loadbalance is set to .TRUE.

Keyword: Solenoid_field:
Parameters: [f]x1 [f]y1 [f]x2 [f]y2 [i]nx [i]ny [f]Icoil
When specified, computes the static magnetic field produced by a solenoid. This uses the law of Biot-Savart, and currently only works with 2D axisymmetric domains. The solenoid wire wraps around the x-axis, and consists of nx turns in the axial (x) direction and ny turns in the radial (y) direction. The total number of turns is the product of the two. The turns are equally distributed between coordinates x1 and x2 in the axial direction and y1 and y2 in the radial direction. The (signed) current flowing in the solenoid, in A, is specified by Icoil.

PETSc linear solver settings

Additional options for the linear solver can be specified as command-line arguments when the executable is launched. Here we recall some useful ones, from PETSc's User Guide:

  • -ksp_max_it maximum number of linear iterations
  • -ksp_rtol relative tolerance used in default determination of convergence, i.e. if residual norm decreases by this factor than convergence is declared
  • -ksp_atol absolute tolerance used in default convergence test, i.e. if residual norm is less than this then convergence is declared
  • -pc_type set which type of precondioner to use for the Krylov solver, for instance bjacobi. For the nonlinear solver:
  • -snes_atol absolute tolerance of residual norm for the nonlinear solver
  • -snes_rtol relative decrease in tolerance norm from initial for the nonlinear solver
  • -snes_max_it maximum number of iterations for the nonlinear solver
  • -snes_test_jacobian compare the user provided Jacobian with one computed via finite differences to check for errors. If a threshold is given, display only those entries whose difference is greater than the threshold
  • -snes_test_jacobian_view display the user provided Jacobian, the finite difference Jacobian and the difference between them to help users detect the location of errors in the user provided Jacobian

Deprecated / not working

These are keywords that were once supported but have been superseded by a newer version. Their use is discouraged.

Boundaries_inject_bool: Boundaries_inject_which_bool: Boundaries_inject_dens: Boundaries_inject_vel: Boundaries_inject_Ttra: Boundaries_inject_Trot: Boundaries_inject_Tvib: Boundaries_inject_mixture: Linesource_bool: Linesource_center: Linesource_length_y: Linesource_dens: Linesource_vel: Linesource_Ttra: Linesource_Trot: Linesource: Wall: Bool_dump_fluxes: Dump_traj_start: Dump_traj_number: Fluxes_dump_output: Partition_num_blocks: Colocated_electrons: SNES_rtol: Bool_radial_weighting: