The data in this directory generates all of the plots in the paper "Thermodynamic stability of hard sphere crystals in dimensions 3 through 10" by P. Charbonneau C.M. Gish, R.S. Hoy, and P.K. Morse. While self contained, if there are any questions about access, the corresponding author can be reached at peter.k.morse@gmail.com Versions of programs used for Data Generation: Python 3.6.4 GCC 7.4.0 pybind11 c++17 Versions of programs used for Data Analysis: MATLAB R2019a The directory structure itself is used to parse data. The structure conforms to UNIX standards using the backslash "/". Attempts have been made in the analysis scripts to be agnostic to the file separation key by using the MATLAB keyword "filesep", however, if any issues arise, this will be the likely culprit. The data generation has been optimized and tested on UNIX systems. While it has been tested on Windows operating systems, modifications to the make file may be necessary, in particular to the linking of pybind11. See documentation of pybind11 for support. The directory is organized as follows: 1) Data 2) Data Analysis: dataAnalysis 3) Sample Scripts: dataGeneration 4) monteCarloPCP 1) Data The data here is read by each of the graphing programs. The abbreviations here correspond to their use in the paper. Where numbers exist, they are indicative of iterators: dimension (d) - The physical dimension of space number_of_particles (N) - The number of particles in this simulation phi - The packing fraction of a liquid or crystal rho - The number density of a liquid or crystal lambda - The strength of the spring tying a particle to its reference configuration numCells (n) - The number of cells in a given crystal. It is related to the number of particles by the embedding geometry, as described in Section III of the paper. For d <= 5, if numCells < 100, it signifies Z boundary conditions and n = numCells; if numCells > 100, then it signifies D boundary conditions, and the true number of cells is n = (numCells) - 99. For d>=5, numCells is simply the number of particles. Figure 2 consists of equations of state, which can be determined by the pair correlation function g(r) via Eq. 4 in the paper. This data is averaged by the generator script and saved into a number of files titled gofr.dat. Here gofr.dat is either 2 (for liquid) or 3 (for crystal) columns, the first of which is the distance (in units of particle diameter), the second is g(r), and the third (in the case of the crystal data) is the standard deviation of g(r). The data structure to find pair correlation functions g(r) is as follows: data/figure2/liquidData/dimension/rho/number_of_particles/gofr.dat data/figure2/crystalData/dimension/rho/number_of_particles/gofr.dat Figures 3-5 are generated by the same program, which varies the reference crystal binding lambda and measures the mean squared displacement (MSD) plateau. The data thus exists as a directory structure which links to a series of files titled msdPlateau.dat, which are in units of particle diameter and radii.dat which give the particle radius. The structure is as follows (using ZBoundaries and EBoundaries where appropriate): data/figure3/DBoundaries/dimension/numCells/phi/lambda/msdPlateau.dat data/figure3/DBoundaries/dimension/numCells/phi/lambda/radii.dat Figure 7 is generated by figure7.m, which contains a similar data set to that of Figures 3-5, but for 1 particle. The structure for data generated using the periodic potential is as below, while for the umbrella potential, we replace the word "periodic" with "umbrella" data/figure3/periodic/dimension/1/phi/lambda/msdPlateau.dat data/figure3/periodic/dimension/1/phi/lambda/radii.dat 2) Graphing Each MATLAB function creates a set of the graphs in the paper and the supplement. Data is read automatically if the directory structure is unchanged. The correspondence is as follows: figure1.m: Fig. 1 figure2.m: Fig. 2 einsteinCrystal.m: Figs. 3-5 figure6.m: Fig. 6 figure6Inset.m: Fig. 6(inset) figure7.m: Fig. 7 Additionally, several accessory functions are included which are called by other programs plotSpecs.m saveascii.m findLambdaMax.m calcExcessFreeEnergy.m addTextToFigure.m einsteinSingleParticleNumeric.m As a note, figure3.m here plots only D boundary condition data for d <= 5, as in the paper. This can be modified to also plot Z data by changing the boolean plotOnlyD to 0 at the top of both figure3.m and calcExcessFreeEnergy.m. The legend, however, will only show D boundary condition data. It also plots d=9 (figure 5b) data only on a log-log scale. This can be changed manually by adding the line: "figure(90); set( gca,'yscale','linear')". To obtain the inset, one must also manually change the axis through the command "figure 90); axis([1e2 1e6 0.99 1.04])". These can be added to the end of figure3.m. Similarly, figure5.m here plots the integrand only on a log-log scale. For the inset, one can add the command "figure(30); set(gca,'yscale','linear'); axis([1e2 1e6 0.998 1.005])" figure7.m has input lists lam3 and integrand3 which come from the output of einsteinSingleParticleNumeric.m. By itself, this function takes ~1 hour to run, so the results are enumerated, but can be checked with higher reso lution if interested. Finally, Tables 2 and 3 are generated using the function liquidCrystalCoexistencePoint.m which can be modified with appropriate equations of state. 3) Sample Script 3 Sample scripts are included and are internally documented to allow for the generation of each of all of the data sets contained in this manuscript. generateLiquid.py generates a set of equilibrated liquids in the format of data/figure2/liquidData generateCrystal.py generates a set of equilibrated crystals in the format of data/figure2/crystalData einsteinCrystal.py performs an einstein crystal simulation 4) monteCarloPCP monteCarloPCP is the code which generates the packings. It must be made by typing "make clean; make" in the folder monteCarloPCP/Release monteCarloPCP requires pybind11 (https://github.com/pybind/pybind11) to be included in this base folder, or else the make file must be altered to link directly to the pybind folder. It may also be necessary to locate the python folder and alter the address of it accordingly. As this code is continually developed, an updated version of monteCarloPCP can be obtained from P.K. Morse at peter.k.morse@gmail.com. Public distribution will be provided via github at a later date.