Holographic EoS Code — C++ Version

Introduction

The present code provides a holographic model of the QCD equation of state as a function of temperature \(T\) and baryon chemical potential \(\mu_B\). This model is calibrated to reproduce lattice-QCD data at \(\mu_B =0\) and presents a good agreement with extrapolations to finite \(\mu_B\). Because of its holographic nature, it is expected to be more reliable at moderate to high temperatures.

This model predicts a first-order phase transition at large densities, with a critical endpoint at (\(T\), \(\mu_B\)) \(\approx\) (103, 597) MeV for the polynomial hyperbolic model.

Physics Overview

The present model of the QCD equation of state relies on a bottom-up construction based on the gauge-gravity duality. In short, the equation of state is calculated for a theory living in the 3+1-dimensional boundary of a Einstein–Maxwell–Dilaton (EMD - that is, gravity + scalar field + gauge field) theory in a 5-dimensional asymptotically anti-de Sitter (AdS) spacetime.

In this description, one identifies the properties of a charged black-hole in the bulk theory with the thermodynamics of a strongly-coupled fluid in a 3+1-dimensional slice of the AdS spacetime. In order to extract meaningful quantities from this model, it is necessary to connect the infrared physics on the black-hole horizon at the AdS radius \(r=0\) to the ultraviolet scalings at AdS radius \(r\to\infty\), where the AdS spacetime geometry must be recovered.

The construction of the model is presented in Refs. [1] and [2] and is inspired by earlier models such as the one in Ref. [3]. Since the publication of [2], two other groups have also proposed similar models capable of reproducing lattice data, and which will also be made available in the present code: [4] and [5].

Quick Start

The easy way to run this module is through GOOEY or the MUSES calculation engine interface. The MUSES Calculation Engine Tutorial provides a detailed explanation for running the calculation engine. Once one opens the JupyterHub interface, one can define the following workflow and run the module:

wf_config = yaml.safe_load('''
    processes:
      - name: holography
        module: holographic_eos
        config:
            model_type: polynomial_hyperbolic
            eos_options:
              eos_stages:
                interpolate_points: true
                maxwell_construction: true
              temperature_options:
                T_max: 420
                T_min: 20
                T_step: 10
                N_phi0_lines: 40
              chemical_potential_options:
                mu_B_max: 400
                mu_B_min: 0
                mu_B_step: 10.0
                N_Phi1_lines: 40
    components:
      - type: group
        name: run_holography_test
        group:
          - holography
''')

One can also choose to run the module by pulling the Docker image and running the module locally.

Units

All thermodynamic variables are in the natural units, where everything is in powers of MeV. The thermodynamic derivatives such as susceptibility are dimensionless. The units are also denoted in the header of the output files, if one set the table format to be “original”.

Parameters

Input

The users need to use a YAML file to specify the parameters used for the generation of the phase diagram and calculation of the critical point. The current input file has four sections that need to be specified. In practice, the users only need to specify the section: model_type. Other sections will be filled with default parameters. The users can also choose to specify them if they don’t want to use the default parameters.

The first section is to choose the model. The model can either be polynomial_hyperbolic, or muses_parametric. As an example, here the model is chosen to be the polynomial hyperbolic model, specified as follows in the yaml input file:

model_type: polynomial_hyperbolic

The second section is the output, which determines what files should be generated. There are a few types of files that can be generated, depending on the extension. The extensions allowed are .dat for csv, .yaml for yaml. We allow the user to choose to format of the output files. If one chooses the format to be “muses”, then the table would be in the standard MUSES format, which is headerless. If one chooses the format to be “original”, the tables will include a detailed header with descriptions for each column. For MUSES format, one can decide what extra columns they want to include by specifying the variable muses_extra_columns:

output_options:
    yaml_output_file: muses_polyhyperbolic_bestfit.yaml
    output_path: muses_polyhyperbolic_bestfit
    format: muses
    muses_extra_columns: ["chi2_B","dsdTfmu","drho_BdTfmu","dsdmufT"]

The third section is for the generation of the phase diagram:

eos_options:
    eos_stages:
        interpolate_points: true
        maxwell_construction: true

    temperature_options:
        T_min: 20
        T_max: 400
        T_step: 2.5
        N_phi0_lines: 200

    chemical_potential_options:
        mu_B_min: 0
        mu_B_max: 2000
        mu_B_step: 5
        N_Phi1_lines: 1000

The fourth section is for the calculation of the critical points, which is not implemented in the current version.

critical_point_options:
    yaml_output: critical_point_interp.yaml
    phi0_min: 0.5
    phi0_max: 10
    N_lines: 800
    max_tries: 1000
    initial_Phi1_step: 1e-5
    max_Phi1_step: 0.2
    prec_T: 0.0001
    prec_mu: 0.0001
    acc_T: 0.001
    acc_mu: 0.001

The fifth section is the parameters for the polynomial hyperbolic model. If the users choose the polynomial hyperbolic model, the best parameter set determined from Bayesian analysis will be used by default and listed below. If the users want to choose their own parameters, they can change the related fields. If the users choose to use muses parametric model and specified it in the section model_type, this section will be ignored by the code:

polynomial_hyperbolic:
   parameters:
   description: Parameters of the model in question.
   flag_default: no
   Lambda: 1148.121631179041
   kappa2: 11.350245262021625
   gamma: 0.5884489971316446
   b2: 0.301821894469367
   b4: -0.04261907765391285
   b6: 0.0004566058948051932
   c1: -0.06469185351673243
   c2: -0.22517557265138566
   c3: 0.03664412474454205
   d1: 1.7231476382001352
   d2: 472.2764686476346

The sixth section is the parameters for the muses parametric model. If the users choose the muses parametric model, the best parameter set determined from Bayesian analysis will be used by default and listed below. If the users want to choose their own parameters, they can change the related fields. If the users choose to use muses parametric model and specified it in the section model_type, this section will be ignored by the code:

muses_parametric:
   parameters:
      A: 0.371277835493431
      Dphi1: 0.0002961963589748086
      Dphi2: 0.6875695068406373
      DphiV: 1.79170830255505
      Lambda: 955.0262652764986
      flag_default: false
      kappa2: 11.435350223991247
      phi1: 0.0021558487922312113
      phi2: 2.1826170630756385
      slope1: 0.5216148015697675
      slope2: 0.6111004602504531

References

  • [1] R. Critelli, J. Noronha, J. Noronha-Hostler, I. Portillo, C. Ratti and R. Rougemont, ``Critical point in the phase diagram of primordial quark-gluon matter from black hole physics,’’ Phys. Rev. D 96 (2017) no.9, 096026

  • [2] J. Grefa, J. Noronha, J. Noronha-Hostler, I. Portillo, C. Ratti and R. Rougemont, ``Hot and dense quark-gluon plasma thermodynamics from holographic black holes,’’ Phys. Rev. D 104 (2021) no.3, 034002

  • [3] O. DeWolfe, S. S. Gubser and C. Rosen, ``A holographic critical point,’’ Phys. Rev. D 83 (2011), 086005

  • [4] J. Knaute, R. Yaresko and B. Kämpfer, ``Holographic QCD phase diagram with critical point from Einstein–Maxwell–dilaton dynamics,’’ Phys. Lett. B 778 (2018), 419-425

  • [5] R. G. Cai, S. He, L. Li and Y. X. Wang, ``Probing QCD critical point and induced gravitational wave by black hole physics,’’ arXiv:2201.02004 [hep-th]

Output

YAML output file

The user can name this file in the YAML node “yaml_output_file” of the input file. This file is stored in the repo home directory and shows info of the format of the output files.

EoS output files

The user can specify the folder name where they want to store the EoS output files in the yaml node “output_path” of the input file. By default, the folder is named “output”.

Inside the folder, there are several different output files.

phi0Phi1_lines.csv: This table is directly calculated from the initial conditions given by phi0 Phi1 values.

eos.csv: This table is interpolated based on the output file phi0Phi1_lines.csv and thus has a uniform grid in \(T\) and \(\mu_B\). It has all the phases: stable, unstable, and meta phases.

stable_eos.csv: This table is obtained by performing a Maxwell construction on the output file eos.csv, and thus only has the stable phase.

transition_line.csv: This table records the first-order transition line and relevant thermodynamics given by the EoS. The calculation is not precise enough yet, and the first-order transition line does not go all the way to the critical point.

spinodal_lines.csv: This table records the spinodal lines and relevant thermodynamics.

Output file format

If one selects the table format to be “muses” (the default format), the equation of state tables follow the following format:

Variable

Unit

Temperature (T)

MeV

Baryon chemical potential (\(\mu_B\))

MeV

Strange chemical potential (\(\mu_S\))

MeV

Electric charge chemical potential (\(\mu_Q\))

MeV

Baryon density (\(n_B\))

MeV3

Strange density (\(n_S\))

MeV3

Electric charge density (\(n_Q\))

MeV3

Energy density (\(\varepsilon\))

MeV4

Pressure (\(P\))

MeV4

Entropy density (\(s\))

MeV3

Since the model currently only allows one charge, columns related to Q and S charges will be set to 0. If one specifies muses_extra_columns, those columns will be appended at last.

phi0Phi1_lines, transition_line, and spinodal_lines are not equation of state tables, so they will not follow the same format. The format for each of them is listed below:

For phi0Phi1_lines and spinodal_lines:

Variable

Unit

Temperature (T)

MeV

Baryon chemical potential (\(\mu_B\))

MeV

Entropy density (\(s\))

MeV3

Baryon density (\(n_B\))

MeV3

Energy density (\(\varepsilon\))

MeV4

Pressure (\(P\))

MeV4

Trace Anomaly (\(I\))

MeV3`

Phase (\(n_Q\))

N/A

Baryon susceptibility (\(chi_2\))

N/A

(\(\frac{\partial s}{\partial T}\))

N/A

(\(\frac{\partial n_B}{\partial \mu_B}\))

N/A

(\(\frac{\partial s}{\partial \mu_B}\))

N/A

(\(\phi_0\))

N/A

(\(\Phi_1\))

N/A

precision

N/A

For transition_line:

Variable

Unit

Baryon chemical potential (\(\mu_B\))

MeV

Temperature (T)

MeV

Pressure (\(P\))

MeV4

Latent heat (\(L\))

MeV4`

Detailed Running

Docker

The user should first clone the repo to easily obtain the required files:

https://gitlab.com/nsf-muses/module-holographic-eos/muses-numrelholo.git

Then navigate inside the repo:

cd bh_eos

The user may either pull the released image via:

docker pull registry.gitlab.com/nsf-muses/module-holographic-eos/muses-numrelholo:v1.3.0

or locally build the image via docker:

docker build -t registry.gitlab.com/nsf-muses/module-holographic-eos/muses-numrelholo:v1.3.0 .

The user can modify the input in the file ./input/config.yaml. They need to specify either “polynomial_hyperbolic” or “muses_parametric” as the model type. They can also modify the model parameters. After the user has made the changes to the input, they need to run the following commands to validate the input file:

python3 ./api/validate_config.py

Run the Docker container with the appropriate commands to generate, validate, and run the configuration:

docker run -it --rm -v ./input:/home/eos/bh_eos/input -v ./output:/home/eos/bh_eos/output registry.gitlab.com/nsf-muses/module-holographic-eos/muses-numrelholo:v1.3.0 ./bin/muses_numrelholo.exec ./input/config.yaml

the -v option will mount your local input and output directories as volumes to the container. The container will run the executable and output the results to the output directory. Make sure the config.yaml is in the input directory.

Troubleshooting

Common Problems

Who to contact for this module

Mauricio Hippert: hippert@cbpf.br

Yumu Yang: yumuy@illinois.edu