Skip to content

telos-collaboration/llr_analysis_2024

Repository files navigation

LLRAnalysis

DOI

These scripts run the analysis for the results of the LLR method for the Sp(4) lattice gauge theory using a modified version of HiRep. See GitHub for the latest version, the Zenodo data release for the version used in this study and GitHub for the main branch. It can read the output file from HiRep and analyse it; the results are then saved into CSV files.

Individual CSV files for each parameter set are saved in the data/ directory; details of the contents of the CSV files can be found in the DataDescription.txt file. (A subset of there are also combined into summary CSV files, for easier consumption, which are saved in the data_products directory.) The CSV files, along with the scripts in this folder, can be used to obtain the plots and results for the paper: Bennett, E., Lucini, B., Mason, D., Piai, M., Rinaldi, E., & Vadacchino, D. (2024). The density of states method for symplectic gauge theories at finite temperature.

Requirements

Running this workflow requires:

  • A Unix-compatible operating system. macOS and Linux environments have been tested.
  • Conda, for example from Miniforge.
  • A LaTeX distribution, for example TeX Live.

All other requirements are managed using Conda.

Setup

  1. Download the code.zip file from Zenodo, and extract it to a convenient location. If you will run the full analysis, this should have at least 25GiB of available storage. (To reproduce only the output stage, only around 10MiB are needed.)
  2. Open a terminal in the llr_analysis_2024 directory that is created.
  3. To set up an environment with the versions of Python and dependent libraries used for this analysis, run
    conda env create -f LLRAnalysis/environment.yml
    This will create an environment with the name llr_SP4. If this clashes with an environment already existing on your machine, you may add the -n YOUR_UNIQUE_ENVIRONMENT_NAME option to choose a different one. On Apple Mac computers with Apple silicon CPUs, you may need to also add the --platform osx-64 option, and have Rosetta installed.
  4. Activate this environment:
    conda activate llr_SP4
    where if you changed the environment name in the previous step, you must replace llr_SP4 with your chosen name.
  5. Install the LLRAnalysis library included with the code.zip package:
    pip install ./LLRAnalysis
    If any difficulties are encountered in installing the environment, further details may be found in the file LLRAnalysis/README.md.
  6. Download the file info.zip from Zenodo, and extract it into the above directory. This will add CSVs to the data/ subdirectory, containing metadata about each of the runs, which are used by all parts of the analysis.
  7. If you will re-run the full analysis end-to-end (requiring around 25 minutes on an 8-core Apple M1 Pro CPU), download the file raw_data.zip from Zenodo, and extract it into the above directory. This will add CSVs containing data extracted from HiRep log files to the data/ subdirectory.
  8. Otherwise, if you will re-run the presentation stage of the analysis (requiring less than a minute on an 8-core Apple M1 Pro CPU), using the pre-computed intermediary results, download the file output_data.zip from Zenodo, and extract it into the above directory. This will add CSVs output from the analysis into the data/ directory.

Running the analysis

  1. Open a terminal to the llr_analysis_2024 directory created above
  2. Activate the analysis environment
    conda activate llr_SP4
    If you chose a different name for the Conda environment above, replace llr_SP4 here with that name.
  3. To run the analysis end-to-end, run
    bash run_analysis.sh
    This will run the following series of analysis scripts in turn:
    • preprocess_is.py: Carries out the initial analysis of the importance sampling data used in the subsequent preanalysis.
    • preanalysis.py: Carries out the initial analysis of the LLR data and creates the relevant CSV files. This will only run if the CSV files are missing.
    • CreateTables.py: Prints the results saved in the CSV, outputted directly in the form of Tables 3 and 4 of the paper, excluding the extrapolated results, placing them in the tables folder in observables_at_crit_coupling.tex and crit_coupling respectively.
    • InfiniteVolume.py This file creates the plots and results for the thermodynamic limit of the surface tension term, all critical coupling definitions, the peak of the specific heat and the plaquette jump, the peak of the Polyakov loop susceptibility, and the Binder cumulant. Creates Figs. 6, 12, 13, 14 and 15 of the paper, saving them in the Figures folder as Interface_Nslim_Nt4.pdf, Bc_Nslim_Nt4.pdf, DE2_Nslim_Nt4.pdf, Xlp_Nslim_Nt4.pdf and Bv_Nslim_Nt4.pdf respectively. Also outputs the extrapolated results and errors in Tables 3 and 4, and the reduced chi-squares of the infinite volume extrapolations.
    • free_energy.py Creates the plots relating to the micro-canonical thermodynamic potentials. Creates Figs. 1, 2, 4, 16, 17 and 18 of the paper, saving them in the Figures folder as an_En_Nt4.pdf, t_F_Nt4.pdf, PbE_Nt4.pdf, an_En_Nt5.pdf, PbE_Nt5.pdf and t_F_Nt5.pdf respectively.
    • double_Gaussian.py: Calculates the plaquette distribution at the critical point and fits a double Gaussian to it, and plots the results. Creates Fig. 5 of the paper, saving it in the Figures folder as plaq_DG_4x48.pdf.
    • plaquette_distribution.py Plots the plaquette distribution for a range of plaquette values and couplings. Creates the plots shown in Fig 3 of the paper and saves them as Pbup_420.pdf, Pbup_424.pdf, Pbup_428.pdf, Pbup_440.pdf and Pbup_448.pdf, in the Figures folder.
    • plot_observables.py: Plots the average plaquette, specific heat, binder cumulant, Polyakov loop, and Polyakov loop susceptibility for a selection of ensembles. Creates Figs. 7, 8, 9, 10, and 11 of the paper and saves them in the Figures folder as u_Nt4.pdf, lp_Nt4.pdf, Cu_Nt4.pdf, Xlp_Nt4.pdf and Bv_Nt4.pdf.
    • collate_csvs.py: Combines multiple individual per-ensemble CSV files into single cumulative CSV files for distribution. These are output in the data_products directory.
    • metadata_tables.py: Outputs tables describing the generated LLR ensembles, shown in Tables 1 and 2 of the paper, saving them in the tables folder in nt4_ensembles and nt5_ensembles respectively. Any of these individual analysis scripts may also be run via
    python scripts/<FILENAME>

About

Analysis workflow for the LLR paper 2409.19426

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors