3. Before hydrodynamics: initial conditions, energy deposition & pre-equilibrium dynamics¶
In these notes we define the early stage of heavy ion collisions as everything that happens before the plasma can be described by hydrodynamics.
Hydrodynamics describes the evolution of the strongly-coupled quark-gluon plasma in space and time. It can describe this evolution if it is provided the state of the fluid on a given spacetime surface *.
- *
That is, if hydrodynamics is taken as nothing more than a system of partial differential equations, boundary conditions or initial conditions must be provided before a numerical solution of the equations can be obtained.
Recall that, with second-order viscous hydrodynamics, the energy-momentum tensor \(T^{\mu\nu}(X)\) is decomposed into four independent hydrodynamic fields:
The energy density \(\epsilon(X)\)
The flow velocity \(u^\mu(X)\)
The shear stress tensor \(\pi^{\mu\nu}(X)\)
The bulk pressure \(\Pi(X)\)
In almost every simulation of heavy ion collisions, the equations of hydrodynamics are initialized at a fixed value of \(\tau\): \(\tau_0\). That is, hydrodynamic initial conditions are provided as \(T^{\mu\nu}(\tau=\tau_0,x,y,\eta_s)\). More typically the different fields are initialized separately: \(\epsilon(\tau=\tau_0,x,y,\eta_s)\), \(u^\mu(\tau=\tau_0,x,y,\eta_s)\), \(\pi^{\mu\nu}(\tau=\tau_0,x,y,\eta_s)\) and \(\Pi(\tau=\tau_0,x,y,\eta_s)\)separately.
Note that these initial conditions represent a considerable amount of information. To understand how much of a challenge it is to determine \(T^{\mu\nu}(\tau=\tau_0,x,y,\eta_s)\), it is worth taking a step back and look at the initial moments of a heavy ion collisions.
3.1. The earliest stages of heavy ion collisions¶
No two collisions of nuclei are the same, and one of the reasons can be understood from a simple geometric picture, illustrated in the following figure:
The two nuclei (ions) can overlap completely or can have a small overlap. The amount and the geometry of the plasma formed in these two cases will be very different. The geometric degree of overlap can be quantified with the impact parameter “b”, shown on the above figure.
In general, the more the overlap (the more “central” the collision is, “b” small), the larger the plasma. Smaller overlap between the nuclei results in smaller and shorter-lived plasma, and while very peripheral heavy ion collisions that barely graze each other might not produce any quark-gluon plasma at all.
Note
The geometric picture discussed above is a very intuitive way of picturing heavy ion collisions. However, it is important to remember that the impact parameter “b” is not a quantity that can be extracted from heavy ion collision data. In this sense, it is preferable to think of it as a model parameter, not a measurable quantity.
There are additional fluctuations aside from fluctuations in the degree of overlap of the nuclei: the plasma produced by two collisions with the same overlap will differ, since collisions of nuclei are quantum processes with a probabilistic rather than deterministic outcome.
The other major factor that affects the size and the lifetime of the plasma is the center-of-mass energy, \(\sqrt{s_{NN}}\). The higher the collision energy, the larger and longer-lived the produced quark-gluon plasma.
Note
MUSIC and hydrodynamic models in general have been found to describe a large number of experimental measurements in collisions of gold nuclei (Au) at the top RHIC energy (\(\sqrt{s_{NN}}=200~\textrm{GeV}\)) and collision of lead ions (Pb) at the LHC (\(\sqrt{s_{NN}}=2760~\textrm{, } 5020~\textrm{GeV}\), …). It is likely that hydrodynamic models can still be used in collisions of smaller nuclei and/or lower \(\sqrt{s_{NN}}\) collisions, but one should proceed with additional caution as these systems can have additional complications.
3.2. Obtaining initial conditions for hydrodynamics¶
From a purely practical point of view, we can ask the question
“Given the species of the colliding nuclei (e.g. Au or Pb) and a collision energy (\(\sqrt{s_{NN}}\)), what are the initial conditions \(T^{\mu\nu}(\tau=\tau_0,x,y,\eta_s)\) of hydrodynamics?”
This is a pragmatic question that hides a lot of the complexity of the early stage of heavy ion collisions. Between the moment that the nuclei collide and the time at which hydrodynamics become applicable, there is a complex dynamical evolution of the deconfined matter.
Moreover the fact that there are fluctuations in heavy ion collisions implies that there is no single initial condition corresponding to two nuclei colliding. There is rather a family, or a distribution, of initial conditions.
Describing this pre-hydrodynamic stage of stage of heavy ion is out of the scope of MUSIC. Older versions of MUSIC included simple models of initial conditions such as Optical Glauber and Monte Carlo Glauber. This is not the case anymore: MUSIC must now be provided with an external initial condition, such as Trento, IP-Glasma, etc.
The initialization of the hydrodynamics fields is performed in function “Init::InitTJb()” in file “init.cpp”. This function calls various subroutine meant to read external initial condition files in different formats.
3.2.1. Reading-in external hydrodynamic initial conditions¶
Since there is no accepted universal format of hydrodynamic initial conditions, reading-in external initial conditions will almost certainly require modifications to the code. This should be straightforward, however, given examples already in MUSIC that show how to initialize hydrodynamics with external files.
The name of the external file containing the initial conditions is specified by the input parameter, Initial_Distribution_Filename.
The expect format for this initial condition file is communicated with the input parameter Initial_profile
For example, the file format expected when using Initial_profile 8 is defined in the subroutine “Init::initial_IPGlasma_XY()”.
First, there is a header which indicates the number of grid points in each direction and the size of the grid cells, in fermi for x/y (unitless in \(\eta\)):
string dummy;
double dummy2;
profile >> dummy >> dummy >> dummy2
>> dummy >> neta >> dummy >> nx >> dummy >> ny
>> dummy >> deta >> dummy >> dx >> dummy >> dy;
where “neta”, “nx” and “ny” are the number of grid points in each directions, and “deta”, “dx” and “dy” are the step size.
An example of header line would be:
# dummy 1 etamax= 1 xmax= 200 ymax= 200 deta= 0 dx= 0.17 dy= 0.17
The rest of the file is read as follows:
for (ix = 0; ix <= DATA->nx; ix++) {
for (iy = 0; iy <= DATA->ny; iy++) {
profile >> dummy1 >> dummy2 >> dummy3
>> density >> utau >> ux >> uy
>> dummy >> dummy >> dummy >> dummy;
where “density” is the energy density in GeV/fm^3, utau is u^tau, ux is u^x and uy is u^y. The “dummy” variable contain either redundant or unused information.
The information read from the external file is then used to initialize the discretized hydrodynamic fields:
void Init::initial_IPGlasma_XY(int ieta, SCGrid &arena_prev,
SCGrid &arena_current) {
[...]
// read the external initial condition file
double density, dummy1, dummy2, dummy3;
double ux, uy, utau;
for (int ix = 0; ix < nx; ix++) {
for (int iy = 0; iy < ny; iy++) {
profile >> dummy1 >> dummy2 >> dummy3
>> density >> utau >> ux >> uy
>> dummy >> dummy >> dummy >> dummy;
temp_profile_ed[ix][iy] = density;
temp_profile_ux[ix][iy] = ux;
temp_profile_uy[ix][iy] = uy;
temp_profile_utau[ix][iy] = sqrt(1. + ux*ux + uy*uy);
[...]
}
}
profile.close();
// Initialize the different component of T^{\mu\nu} with this information
double eta = (DATA.delta_eta)*ieta - (DATA.eta_size)/2.0;
double eta_envelop_ed = eta_profile_normalisation(eta);
int entropy_flag = DATA.initializeEntropy;
for (int ix = 0; ix < nx; ix++) {
for (int iy = 0; iy< ny; iy++) {
double rhob = 0.0;
double epsilon = 0.0;
if (entropy_flag == 0) {
epsilon = (temp_profile_ed[ix][iy]*eta_envelop_ed
*DATA.sFactor/hbarc); // 1/fm^4
} else {
double local_sd = (temp_profile_ed[ix][iy]*DATA.sFactor
*eta_envelop_ed);
epsilon = eos.get_s2e(local_sd, rhob);
}
if (epsilon < 0.00000000001)
epsilon = 0.00000000001;
arena_current(ix, iy, ieta).epsilon = epsilon;
arena_current(ix, iy, ieta).rhob = rhob;
arena_current(ix, iy, ieta).u[0] = temp_profile_utau[ix][iy];
arena_current(ix, iy, ieta).u[1] = temp_profile_ux[ix][iy];
arena_current(ix, iy, ieta).u[2] = temp_profile_uy[ix][iy];
arena_current(ix, iy, ieta).u[3] = 0.0;
arena_prev(ix, iy, ieta) = arena_current(ix, iy, ieta);
}
}
}
To summarize, there are two main input parameters used in this case:
Initial_profile 8 # 8: Read in initial profile from a file
# (e.g., IP-Glasma)
# external file from which the initial conditions are read
Initial_Distribution_input_filename example_inputs/filename
Extra parameters
For the example above, there are two extra parameters.
Parameter
initialize_with_entropyshould be used if the initial condition file provides entropy density instead of energy density. This is an unlikely occurence and should likely not be used.Parameter
s_factoris designed to be used to normalize the energy density read-in from the external fileInitial_Distribution_input_filename. Most of the time this parameter should not be used and should be set to “1.0”.
initialize_with_entropy 0 # 0: with energy density
# 1: with entropy density
s_factor 1.0 # normalization factor read in
# initial data file
3.2.2. Glauber initial conditions¶
Older versions of MUSIC included Glauber initial conditions. This is no longer the case.