#include <spheremodus.h>
SphereModus: Provides a modus for expanding matter calculations.
Matter is put in a sphere of radius R with uniform density; isotropic thermal momenta are typically used for initialization, although other initial momentum states are also included, see Bazow:2016oky [7] and Tindall:2016try [58]
To use this modus, choose
in the configuration file.
Options for SphereModus go in the "Modi"→"Sphere" section of the configuration:
The following configuration options are understood: Sphere
Definition at line 49 of file spheremodus.h.
Public Member Functions | |
SphereModus (Configuration modus_config, const ExperimentParameters ¶meters) | |
Constructor. More... | |
double | initial_conditions (Particles *particles, const ExperimentParameters ¶meters) |
Generates initial state of the particles in the system according to specified parameters: number of particles of each species, momentum and coordinate space distributions. More... | |
bool | is_sphere () const |
double | radius () const |
Public Member Functions inherited from smash::ModusDefault | |
int | impose_boundary_conditions (Particles *, const OutputsList &={}) |
Enforces sensible positions for the particles. More... | |
bool | is_collider () const |
bool | is_box () const |
bool | is_list () const |
bool | is_sphere () const |
double | sqrt_s_NN () const |
double | impact_parameter () const |
void | sample_impact () const |
sample impact parameter for collider modus More... | |
double | velocity_projectile () const |
double | velocity_target () const |
FermiMotion | fermi_motion () const |
double | max_timestep (double) const |
double | equilibration_time () const |
double | length () const |
double | radius () const |
bool | calculation_frame_is_fixed_target () const |
double | nuclei_passing_time () const |
Get the passing time of the two nuclei in a collision. More... | |
Grid< GridOptions::Normal > | create_grid (const Particles &particles, double min_cell_length, double timestep_duration, CollisionCriterion crit, const bool include_unformed_particles, CellSizeStrategy strategy=CellSizeStrategy::Optimal) const |
Creates the Grid with normal boundary conditions. More... | |
std::unique_ptr< GrandCanThermalizer > | create_grandcan_thermalizer (Configuration &conf) const |
Creates GrandCanThermalizer. More... | |
Private Attributes | |
double | radius_ |
Sphere radius (in fm) More... | |
double | sphere_temperature_ |
Temperature for momentum distribution (in GeV) More... | |
const double | start_time_ = 0. |
Starting time for the Sphere. More... | |
const bool | use_thermal_ = false |
Whether to use a thermal initialization for all particles instead of specific numbers. More... | |
const double | mub_ |
Baryon chemical potential for thermal initialization; only used if use_thermal_ is true. More... | |
const double | mus_ |
Strange chemical potential for thermal initialization; only used if use_thermal_ is true. More... | |
const double | muq_ |
Charge chemical potential for thermal initialization; only used if use_thermal_ is true. More... | |
const bool | account_for_resonance_widths_ |
In case of thermal initialization: true – account for resonance spectral functions, while computing multiplicities and sampling masses, false – simply use pole masses. More... | |
const std::map< PdgCode, int > | init_multipl_ |
Particle multiplicities at initialization; required if use_thermal_ is false. More... | |
std::map< PdgCode, double > | average_multipl_ |
Average multiplicities in case of thermal initialization. More... | |
const SphereInitialCondition | init_distr_ |
Initialization scheme for momenta in the sphere; used for expanding metric setup. More... | |
const double | radial_velocity_ |
Wether to add a constant radial velocity profile to the momenta of the particles in the sphere. More... | |
const std::optional< PdgCode > | jet_pdg_ |
Optional PDG code of the particle to use as a jet, i.e. More... | |
const double | jet_mom_ |
Initial momentum of the jet particle; only used if jet_pdg_ is not nullopt. More... | |
Friends | |
std::ostream & | operator<< (std::ostream &out, const SphereModus &m) |
Writes the initial state for the Sphere to the output stream. More... | |
|
explicit |
Constructor.
Takes all there is to take from the (truncated!) configuration object (only contains configuration for this modus).
[in] | modus_config | The configuration object that sets all initial conditions of the experiment. |
[in] | parameters | Unused, but necessary because of templated initialization |
Definition at line 37 of file spheremodus.cc.
double smash::SphereModus::initial_conditions | ( | Particles * | particles, |
const ExperimentParameters & | parameters | ||
) |
Generates initial state of the particles in the system according to specified parameters: number of particles of each species, momentum and coordinate space distributions.
Susbsequently makes the total 3-momentum 0.
[out] | particles | An empty list that gets filled up by this function |
[in] | parameters | The initialization parameters of the box |
Definition at line 115 of file spheremodus.cc.
|
inline |
Definition at line 79 of file spheremodus.h.
|
inline |
|
private |
Sphere radius (in fm)
Definition at line 85 of file spheremodus.h.
|
private |
Temperature for momentum distribution (in GeV)
Definition at line 87 of file spheremodus.h.
|
private |
Starting time for the Sphere.
Definition at line 89 of file spheremodus.h.
|
private |
Whether to use a thermal initialization for all particles instead of specific numbers.
Definition at line 94 of file spheremodus.h.
|
private |
Baryon chemical potential for thermal initialization; only used if use_thermal_ is true.
Definition at line 99 of file spheremodus.h.
|
private |
Strange chemical potential for thermal initialization; only used if use_thermal_ is true.
Definition at line 104 of file spheremodus.h.
|
private |
Charge chemical potential for thermal initialization; only used if use_thermal_ is true.
Definition at line 109 of file spheremodus.h.
|
private |
In case of thermal initialization: true – account for resonance spectral functions, while computing multiplicities and sampling masses, false – simply use pole masses.
Definition at line 115 of file spheremodus.h.
|
private |
Particle multiplicities at initialization; required if use_thermal_ is false.
Definition at line 120 of file spheremodus.h.
|
private |
Average multiplicities in case of thermal initialization.
Saved to avoid recalculating at every event
Definition at line 125 of file spheremodus.h.
|
private |
Initialization scheme for momenta in the sphere; used for expanding metric setup.
Definition at line 130 of file spheremodus.h.
|
private |
Wether to add a constant radial velocity profile to the momenta of the particles in the sphere.
The underlying velocity field has the form u = u_0 * r / R.
Definition at line 136 of file spheremodus.h.
|
private |
Optional PDG code of the particle to use as a jet, i.e.
a single high energy particle at the center (0,0,0) of the expanding sphere. This particle will be placed at t=0 and will initially be moving along the x axis, in the positive or negative direction depending on the sign of its momentum.
Definition at line 144 of file spheremodus.h.
|
private |
Initial momentum of the jet particle; only used if jet_pdg_ is not nullopt.
Definition at line 148 of file spheremodus.h.