Replica Exchange Monte Carlo with Histogram and Cluster Variation analysis

This website offers codes and worked examples for replica exchange Monte Carlo simulation of high entropy alloys including multiple histogram and cluster variation method analysis of simulation data. Please see http://arxiv.org/abs/2212.02470 for details of the method and results. Here we provide a code template and also worked examples for MoTa and MoNbTaW. We also provide a set of model energies. The full template can be downloaded from http://alloy.phys.cmu.edu/software/MC/remc-template.tgz. Step-by-step instructions for running the simulation and performing the multiple histogram and cluster variation method analysis are given below.

Setting up and starting runs

1. Uncompress the file: tar zxvf remc-template.tgz. Copy the template into a new directory: cp -R remc-template/ ExampleRun/

2. Create (or take from elsewhere) "Tlist", a file listing all temperatures for the runs on separate rows. There should be no duplicate T values.

3. Provide a lookup table with energies of tetrahedra. An example of this is provided in the file "MoNbTaW_tetEs". The format is successive rows of type alpha beta gamma delta dH, where alpha, beta, gamma and delta are chemical species on the a, b, c, and d sites, and dH is the formation enthalpy of the associated tetrahedron, in units of eV.

4. Create run directories. This step creates run directories and also creates random equiatomic initial site occupations for a BCC lattice with 2xL3 sites: ./initialize-run-directories L
Alternatively, if you already have occupation files to use, they can be put into the directories "run*" and renamed "MCin".

5. Change parameters at the top of "slurm_remc.sh" to desired values. Important parameters are structure size, MCS per cycle, and total number of cycles.

6. Run the main script for simulation. With slurm, this can be done with: sbatch slurm_remc.sh

Post-processing

Running multiple histogram analysis

0. Read the info in MultiHist/README

1. Execute the following script from the main run directory, where "n" is the number of data points (final n from each replica) you wish to use in the analysis: ./make-Ehist n

2. Then, enter the multiple histogram directory: cd MultiHist

3. If all is correct you should be able to run the multihistogram code, e.g. ./multihist.py L Niter Tol Mix where L is the system size (e.g. 8), Niter is the number of iterations (e.g. 10000), Tol is -Log10(precision) (e.g. 1 2), and Mix is a mixing parameter (e.g. 0.2). To read more, try ./multihist.py -h

4. After code finishes iterating, look into "info.multihist". Columns are of the form "[CALL NUMBER] [ITERATIONS] [TOLERANCE]". If the code has not iterated to your desired tolerance, continue iterating, e.g. ./multihist.py L Niter Tol Mix -F /path/to/F_vs_T.multihist.1.dat

5. Once iterated to completion, order parameter and susceptibility plots can be made using "multihist2D.py": ./multihist2D.py L 1 Tol Mix -bins 100 Continuous plots can be made after creating a set of T values echo {300..3000} > Ts using ./multihist2D.py L 1 Tol Mix -bins 100 -Ts Ts to create *.dat files.

Cluster variation analysis

This step collects cluster frequency statistics and evaluates entropy within the cluster variation approximation. To take the last n outputs at each T and calculate the entropy according to a sequence of CVM approximations: point, NN, NN+NNN, triangle, and tetrahedron, execute ./cvm-entropy.py n.

Back to software