This section in the config.yaml
file contains all general/global configuration options to SMASH. Before describing all possible keys in detail, let's start off with a couple of examples.
The General
section in SMASH input file might read as follows:
General: Modus: "Collider" Delta_Time: 0.1 Testparticles: 1 Gaussian_Sigma: 1.0 Gauss_Cutoff_In_Sigma: 3.0 End_Time: 100.0 Randomseed: -1 Nevents: 20 Use_Grid: true Time_Step_Mode: "Fixed"
In the case of an expanding sphere setup, change the Modus
and provide further information about the expansion.
Modus: "Sphere" MetricType: "MasslessFRW" Expansion_Rate: 0.1
The time in fm after which the evolution is stopped. Note that the starting time depends on the chosen Modus
.
Selects a modus for the calculation, e.g. infinite matter calculation, collision of two particles or collision of nuclei. The modus will be configured in the Modi
section. Recognized values are:
"Collider"
→ For collisions of nuclei or compound objects. See here for further information."Sphere"
→ For calculations of the expansion of a thermalized sphere. See here for further information."Box"
→ For infinite matter calculation in a rectangular box. See here for further information."List"
→ For given external particle list. See here for further information."ListBox"
→ For given external particle list in the Box. See here for further information.Number of events to calculate.
This key may be omitted on constraint that a minimum number of ensembles containing interactions is requested, see Minimum non-empty ensembles.
Initial seed for the random number generator. If this is negative, the seed will be randomly generated by the operating system.
Delta_Time
— double, optional, default = 1.0
Fixed time step in fm at which the collision-finding grid is recreated, and, if potentials are on, momenta are updated according to the equations of motion. The collision-finding grid finds all the collisions from time t_{beginning_of_timestep} until time t_{beginning_of_timestep} + Delta_Time
, and puts them into a vector. The collisions are then sorted in order of occurrence, and particles are propagated from collision to collision. After each performed collision, additional collisions are found for outgoing particles and merged into the sorted vector.
If potentials are on, the Delta_Time
should be small enough, typically around 0.1 fm. However, if potentials are off, it can be arbitrarily large. In this case it only influences the runtime, but not physics. If Time_Step_Mode = "None"
is chosen, then the user-provided value of Delta_Time
is ignored and Delta_Time
is set to the End_Time
.
Derivatives_Mode
— string, optional, default = "Covariant
Gaussian"
The mode of calculating the gradients, for example gradients of baryon current. Currently SMASH supports two derivatives modes:
"Covariant Gaussian"
and"Finite difference"
.Covariant Gaussian derivatives can be used when Covariant Gaussian smearing is used; they are Lorentz covariant, but they do not calculate the time derivative of the current properly. The "Finite difference"
mode requires using the lattice, and the derivatives are calculated based on finite differences of a given quantity at adjacent lattice nodes; this mode is numerically more efficient.
Discrete_Weight
— double, optional, default = 1./3
Parameter for Discrete smearing: Weight given to particle density at the the center node; cannot be smaller than 1./7 (the boundary case of 1./7 results in an even distribution of particle's density over the center node and 6 neighboring nodes).
Ensembles
— int, optional, default = 1
Number of parallel ensembles in the simulation.
An ensemble is an instance of the system, and without mean-field potentials it is practically equivalent to a completely separate and uncorrelated event. Each ensemble is an independent simulation: initialization, collisions, decays, box wall crossings, and propagation of particles is performed independently within each ensemble.
However, the densities and mean-field potentials are computed as averages over all ensembles (within a given event). This process can be also viewed as calculating densities and mean-fields by summing over particles in all ensembles combined, where each particle contributes to the local charge with a weight of 1/n_ensembles. Such technique is called the parallel ensemble technique. It increases the statistics necessary for a precise density calculation without increasing the number of collisions, which is not the case in the full ensemble method (see Testparticles
description). Because of this, the parallel ensembles technique is computationally faster than the full ensemble technique.
Expansion_Rate
— double, optional, default = 0.1
Corresponds to the speed of expansion of the universe in non-Minkowski metrics if Metric_Type
is any other than "NoExpansion"
.
It corresponds to \(b_r/l_0\) if the metric type is "MasslessFRW"
or "MassiveFRW"
, and to the parameter b in the exponential expansion where \(a(t) ~ e^{bt/2}\).
Field_Derivatives_Mode
— string, optional, default = "Chain Rule"
The mode of calculating field derivatives entering the equations of motion (only available for the VDF potentials). The mean-field equations of motion are proportional to temporal and spatial derivatives of the potential, which themselves depend on the baryon number density. When calculating these derivatives numerically, one can either take finite differences of the potential itself (direct field derivatives), or use the chain rule and take finite differences of the baryon number density (chain rule field derivatives). Using direct field derivatives is numerically (slightly) more stable. For more information and explicit equations, see section 4.2.5 (p. 130) and Table 4.3 (p. 137) of https://arxiv.org/abs/2109.08105.
"Direct"
→ Induces using the computed values of the baryon 4-current on the lattice to calculate a lattice of the 4-field \(A^\mu\), finite differences of which are used to obtain the VDF equations of motion."Chain Rule"
→ Uses the chain rule and finite differences of the baryon number 4-current to obtain the the VDF equations of motion.Gauss_Cutoff_In_Sigma
— double, optional, default = 4.0
Parameter for Covariant Gaussian smearing: Distance in sigma at which gaussian is considered 0.
Gaussian_Sigma
— double, optional, default = 1.0
Parameter for Covariant Gaussian smearing: Width in fm of Gaussian distributions that represent Wigner density of particles.
Metric_Type
— string, optional, default = "NoExpansion"
Select which kind of expansion the metric should have. This needs only be specified for the sphere modus. Possible values:
"NoExpansion"
→ Default SMASH run, with Minkowski metric"MasslessFRW"
→ FRW expansion going as \(t^{1/2}\)"MassiveFRW"
→ FRW expansion going as \(t^{2/3}\)"Exponential"
→ FRW expansion going as \(e^{t/2}\)Rest_Frame_Density_Derivatives_Mode
— string, optional, default = "Off"
The mode of calculating the gradients of currents, decides whether the rest frame density derivatives are computed (these derivatives are needed for the VDF potentials, but not for the Skyrme potentials).
Smearing_Mode
— string, optional, default = "Covariant
Gaussian"
The mode of smearing for density calculation.
Smearing is necessary to ensure a smooth gradient calculation, and it can be thought of as smoothing out charge density fluctuations due to the finite number of test-particles used. In general, this is done by distributing the contribution to charge density from a given particle according to some prescription. For example, in Gaussian smearing the charge density of a particle is given by a Gaussian with some chosen width, centered at the position of the particle; the Gaussian is normalized such that integrating over the entire space yields the charge of the particle. In result, the particle's charge is "smeared" over the space around it. Note that the case with no smearing is recovered when the charge contribution from each particle is taken to be a Dirac delta function centered at the position of the particle.
Currently, SMASH supports three smearing modes:
"Covariant Gaussian"
"Triangular"
"Discrete"
Testparticles
— int, optional, default = 1
Number of test-particles per real particle in the simulation.
The number of initial sampled particles is increased by this factor, while all cross sections are decreased by this factor. In this way the mean free path does not change. Larger number of testparticles helps to reduce spurious effects of geometric collision criterion (see Cheng:2001dz [5]). It also reduces correlations related to collisions and decays (but not the ones related to mean fields), therefore the larger the number of testparticles, the closer the results of the simulations should be to the solution of the Boltzmann equation. These advantages come at a cost of a larger computational time.
Testparticles are a way to increase statistics necessary for precise density calculation, which is why they are needed for mean-field potentials. The technique of using testparticles for mean field is called the full ensemble technique. The number of collisions (and consequently the simulation time) scales as square of the number of testparticles, and that is why a full ensemble is slower than a parallel ensemble.
Time_Step_Mode
— string, optional, default = "Fixed"
The mode of time stepping. Possible values:
"None"
→ Delta_Time
is set to the End_Time
. This cannot be used with potentials."Fixed"
→ Fixed-sized time steps at which collision-finding grid is created. More efficient for systems with many particles. The Delta_Time
is provided by user.For Delta_Time
explanation see here.
If the box modus is employed, only the "Fixed"
time step mode can be used and the value of Delta_Time
cannot be too large. For a more detailed explanation, see box modus.
Triangular_Range
— double, optional, default = 2.0
Parameter for Triangular smearing: Half of the base of a symmetric triangle that represents particle density, in units of lattice spacings.
Use_Grid
— bool, optional, default = true
true
→ A grid is used to reduce the combinatorics of interaction lookup.false
→ No grid is used.