This section in the config.yaml
file contains all general/global configuration options to SMASH.
Calculates Eckart rest frame density and 4-current of a given density type and optionally the gradient of the density in an arbitary frame (grad j0), the curl of the 3-current, and the time, x, y, and z derivatives of the 4-current.
\[j^{\mu} = (\sqrt{2\pi} \sigma )^{-3} \sum_{i=1}^N C_i u^{\mu}_i exp \left(- \frac{(\vec r -\vec r_i + \frac{\gamma_i^2}{1 + \gamma_i} \vec \beta_i (\vec \beta_i, \vec r - \vec r_i))^2}{2\sigma^2} \right)\]
\[ \rho^{Eckart} = \sqrt{j^{\mu} j_{\mu}} \]
Here \( C_i \) is a corresponding value of "charge". If baryon current option is selected then \( C_i \) is 1 for baryons, -1 for antibaryons and 0 otherwise. For proton/neutron current \( C_i = 1\) for proton/neutron and 0 otherwise.
To avoid the problems with Eckart frame definition, densities for positive and negative charges, \(\rho_+ \) and \( \rho_-\), are computed separately and final density is \(\rho_+ - \rho_-\).
[in] | r | Arbitrary space point where 4-current is calculated [fm]; ignored if smearing is false |
[in] | plist | List of all particles to be used in \(j^{\mu}\) calculation. If smearing is false or if the distance between particle and calculation point r, \( |r-r_i| > r_{cut} \) then particle input to density will be ignored. |
Next four values are taken from ExperimentalParameters structure:
[in] | par | Set of parameters packed in one structure. From them the cutting radius r_cut \( r_{cut} / \sigma \), number of test-particles ntest and the gaussian width gs_sigma are needed. |
[in] | dens_type | type of four-currect to be calculated: baryon, proton or neutron options are currently available |
[in] | compute_gradient | true - compute gradient, false - no |
[in] | smearing | whether to use gaussian smearing or not. If false, this parameter will use ALL particles equally to calculate the current, and that as such it will not be normalized wrt volume. This should be true for any internal calculation of any quantity and only makes sense to turn off for output purposes in a box. |
Access the index of component \( (\mu, \nu) \).
[in] | mu | \(\mu\) is the row index (0 to 3) |
[in] | nu | \(\nu\) is the line index (0 to 3) |
End_Time
(double, required):
The time in fm after which the evolution is stopped. Note that the starting time depends on the chosen Modus.
Randomseed
(int, required):
Initial seed for the random number generator. If this is negative, the seed will be randomly generated by the operating system.
Nevents
(int, required):
Number of events to calculate.
Use_Grid
(bool, optional, default = true):
true
- A grid is used to reduce the combinatorics of interaction lookup false
- No grid is used.Time_Step_Mode
(string, optional, default = Fixed):
The mode of time stepping. Possible values:
None
- Delta_Time is set to the End_Time. 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.Metric_Type
(string, optional, default = NoExpansion):
Select which kind of expansion the metric should have. This needs only be specified for the sphere modus:
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)Expansion_Rate
(double, optional, default = 0.1):
Corresponds to the speed of expansion of the universe in non minkowski metrics if MetricType 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}\).
Example: Configuring General Properties
The following example provides a possibility for the General
configuration.
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
Modus
(string, required):
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 Modi. Recognized values are:
Collider
- For collisions of nuclei or compound objects. See Collider Sphere
- For calculations of the expansion of a thermalized sphere. See Sphere Box
- For infinite matter calculation in a rectangular box. See Box List
- For given external particle list. See List ListBox
- For given external particle list in the Box.Delta_Time
(double, optional, default: 1.0):
Fixed time step 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/c. 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.
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 carries a fraction 1/n_ensembles of its "real" charge. Such technique is called parallel ensemble technique. It increases statistics necessary for precise density calculation without increasing the number of collisions, which is not the case in the full ensemble method (see below). Because of this, the parallel ensembles technique is computationally faster than the full ensemble technique.
Testparticles
(int, optional, default = 1):
Number of test-particles per real particle in the simulation.
Amount of initial sampled particles is increased by this factor, while all cross sections are decreased by this factor. In this way mean free path does not change. Larger number of testparticles helps to reduce spurious effects of geometric collision criterion (see Cheng:2001dz [3]). 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 Boltzmann equation. These advantages come at a cost of 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 full ensemble technique. The number of collisions (and consequently the simulation time) scales as square of the number of testparticles, and that is why full ensemble is slower than parallel ensemble.
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 more numerically efficient.
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 copmuted (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: 1) "Covariant Gaussian": This smearing represents the charge density of a particle as a Gaussian centered at the position of a particle; the user can specify the width and the cutoff of the Gaussian (the employed Gaussians, in principle non-zero over the entire available space, are "cut off" at some distance r_cut from the particle to improve calculation time). This smearing is Lorentz covariant which results in correct density profiles of relativistic systems. The downside of the smearing is its long computation time, as well as the fact that when the density is added to lattice nodes, it is done so by Euler approximation (using the density value at the lattice node), which does not conserve the number of particles on the lattice. 2) "Triangular": This smearing requires lattice; it represents the charge density of a particle in a given space direction as a "triangle" peaking at the particle's position and linearly decreasing over a specified range. The user specifies the range of the smearing in units of lattice spacings. This smearing is relatively fast, and it does conserve the number of particles on the lattice (due to the fact that the Euler integration is exact for a linear function). 3) "Discrete": This smearing requires lattice; the easiest of all smearing modes, it adds a specified portion of the particle's charge density to a node closest to the particle's position, and distributes the remainder evenly among the 6 nearest neighbor nodes. The user specifies the weight given to the center node; for example, if this weight is 1/3, then each of the six nearest neighbor nodes gets 1/9 of the particle's charge. This smearing is extremely fast, but is also rather coarse and requires using a large number of test-particles to produce smooth gradients.
Gaussian_Sigma
(double, optional, default = 1.0):
Parameter for Covariant Gaussian smearing: Width of gaussians that represent Wigner density of particles, in fm.
Gauss_Cutoff_In_Sigma
(double, optional, default = 4.0):
Parameter for Covariant Gaussian smearing: Distance in sigma at which gaussian is considered 0.
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.
Discrete
(double, optional, default = 0.333333):
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).