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.
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.
- Download the
code.zipfile 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.) - Open a terminal in the
llr_analysis_2024directory that is created. - To set up an environment with
the versions of Python and dependent libraries used for this analysis,
run
This will create an environment with the name
conda env create -f LLRAnalysis/environment.ymlllr_SP4. If this clashes with an environment already existing on your machine, you may add the-n YOUR_UNIQUE_ENVIRONMENT_NAMEoption to choose a different one. On Apple Mac computers with Apple silicon CPUs, you may need to also add the--platform osx-64option, and have Rosetta installed. - Activate this environment:
where if you changed the environment name in the previous step, you must replace
conda activate llr_SP4llr_SP4with your chosen name. - Install the
LLRAnalysislibrary included with thecode.zippackage:If any difficulties are encountered in installing the environment, further details may be found in the filepip install ./LLRAnalysisLLRAnalysis/README.md. - Download the file
info.zipfrom Zenodo, and extract it into the above directory. This will add CSVs to thedata/subdirectory, containing metadata about each of the runs, which are used by all parts of the analysis. - 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.zipfrom Zenodo, and extract it into the above directory. This will add CSVs containing data extracted from HiRep log files to thedata/subdirectory. - 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.zipfrom Zenodo, and extract it into the above directory. This will add CSVs output from the analysis into thedata/directory.
- Open a terminal to the
llr_analysis_2024directory created above - Activate the analysis environment
If you chose a different name for the Conda environment above, replace
conda activate llr_SP4llr_SP4here with that name. - To run the analysis end-to-end,
run
This will run the following series of analysis scripts in turn:
bash run_analysis.shpreprocess_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 thetablesfolder inobservables_at_crit_coupling.texandcrit_couplingrespectively.InfiniteVolume.pyThis 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 asInterface_Nslim_Nt4.pdf,Bc_Nslim_Nt4.pdf,DE2_Nslim_Nt4.pdf,Xlp_Nslim_Nt4.pdfandBv_Nslim_Nt4.pdfrespectively. Also outputs the extrapolated results and errors in Tables 3 and 4, and the reduced chi-squares of the infinite volume extrapolations.free_energy.pyCreates 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 asan_En_Nt4.pdf,t_F_Nt4.pdf,PbE_Nt4.pdf,an_En_Nt5.pdf,PbE_Nt5.pdfandt_F_Nt5.pdfrespectively.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 theFiguresfolder asplaq_DG_4x48.pdf.plaquette_distribution.pyPlots the plaquette distribution for a range of plaquette values and couplings. Creates the plots shown in Fig 3 of the paper and saves them asPbup_420.pdf,Pbup_424.pdf,Pbup_428.pdf,Pbup_440.pdfandPbup_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 theFiguresfolder asu_Nt4.pdf,lp_Nt4.pdf,Cu_Nt4.pdf,Xlp_Nt4.pdfandBv_Nt4.pdf.collate_csvs.py: Combines multiple individual per-ensemble CSV files into single cumulative CSV files for distribution. These are output in thedata_productsdirectory.metadata_tables.py: Outputs tables describing the generated LLR ensembles, shown in Tables 1 and 2 of the paper, saving them in thetablesfolder innt4_ensemblesandnt5_ensemblesrespectively. Any of these individual analysis scripts may also be run via
python scripts/<FILENAME>