This repo contains most of the code used for Chapters 2 and 3 of my PhD thesis (see phd_thesis_senkevich.pdf) concerned with the Curie-Weiss and Multi-component Curie-Weiss (MCW) models. MCW model is an Ising model on a compete graph consisting of two or more Curie-Weiss models fully connected to each other. Due to the infinite dimensional nature of the MCW model the its exact thermodynamic equations of state coincide with the mean field self consistency equations which are universal among a large class of multispecies Ising models.
The code is structured as follows. Every image from the ./figures directory has its corresponding (with the same name) Python script in the "scripts" directory, which was used to generate the image. Some of these scripts rely on the data stored in ./data directory in the form of .csv files with descriptive names. The data files needed for all the scripts are already in the correct locations within ./data directory, so running the scripts with Python 3 should (assuming the installation of all required packages) reproduce the images as they appear in the ./figures directory. To run the actual simulation of the model one needs to compile the C++ code from the ./main_sim, which relies on the files from the ./MCW_lib directory. This can be done (assuming g++ is installed) by running the ./main_sim/compile.sh script which places the binaries into ./bin directory from which they should be launched in order for the results to be saved in their correct locations. Before that it is recommended to comment out the compilation of the unneeded code from ./main_sim/compile.sh to reduce the time it takes to run the compilation script (should not take too long anyways).