Using mcsqs and understand the cluster.out

Hello Axel:

I am now using your code to generate 32-atom SQSs. The supercell is composed of equimolar of Cr, Mn, Fe and Ni, and the system is fully disordered FCC.

Right now I’m only looking at the correlation function of nearest neighboring pairs. The cluster.out gives 6 blocks of code formatted like the one below (I’ve also attached the complete rndstr.in and cluster.out file in the attachment):

192
1.06066
2
0.50000 0.75000 0.75000 2 0
0.75000 1.00000 0.75000 2 0

I assume "192" in the first line means the total number of identical pairs. "1.06066" means the distance between the atom pair. "2" in the third line means "pair correlation" (not triplet or multisite correlation). Is my interpretation correct?

However, I’m not so sure of the meaning of the fourth and the fifth line. First, I’m not sure what "2 0"
means. It seems to be the index of atom type. Second, what is the meaning of the two coordinates (starting with 0.5 and 0.75)? The same two coordinate shows up on every block of output in the cluster.out file, and I don’t understand why.

One other question: Is it possible to use mcsqs code (or other code in your ATAT file) to just calculate the correlation functions of a given supercell with fixed atom positions?

Thanks for your help in advance. And early greetings for Christmas!

Congyi

The output of corrdump -h gives an explation:
Cluster file format (clusters.out)

for each cluster:
[multiplicity]
[length of the longest pair within the cluster]
[number of points in cluster]
[coordinates of 1st point] [number of possible species-2] [cluster function]
[coordinates of 2nd point] [number of possible species-2] [cluster function]

repeat.

In your case:
"2 0" means: 4 species on this site (4-2=2) and the type cluster function number 0. The "0" is not exactly the index of atom type, but rather a function type. For more info , see
https://arxiv.org/abs/0906.1608

The coordinates are expressed in multiple of the axis vectors specified in lat.in (1st 3 lines).

You can use the corrdump command to calculate correlations, e.g.

corrdump -c -s=bestsqs.out 

Hello Axel:

Thanks for your reply! I just tried "corrdump -c -s=bestsqs.out" but got a error message:

Unable to open lattice file

I then use "corrdump -c -s=bestsqs.out -l=rndstr.in" but got another error message:

Unable to open cluster.out file

I then put my cluster.out file under the same folder as bestsqs.out and rndstr.in and run the command again (cluster.out and bestsqs.out are generated from rndstr.in by mcsqs ). However, I’ve got two error messages I don’t understand:

Unknown atom label: Fe
Unexpected vacancy

First, when I use mcsqs to generate bestsqs.out from rndstr.in, the program has no problem to identify the atom labels (Fe, Cr, Ni, Mn). I don’t know why corrdump has problem to do so. Second, there is no vacancy specified in either bestsqs.out or rndstr.in. In all, given there is no problem to generate bestsqs.out from rndstr.in, I don’t know why corrdump cannot work out the same stuff backwards.

I’ve attached the three files. Looking forward to your answer.

You’re almost there, the command should be:

corrdump -c -s=bestsqs.out -l=rndstr.in -ro

The -ro (read occupations) is needed for corrdump to understand the format of the input file of mcsqs.
(This is mentioned in the mcsqs documentation.)

Note that you can specify pathname with each file if you don’t want them in the same directory. You can also specify the pathname/name of the clusters.out file with -cf=…

It works. Thank you for your quick reply!

Congyi

First, you need a comma between the species e.g.:
0.0 0.0 0.0 A=.03,B=.22,C=.25,D=.25,E=.25
Second, with a composition like 0.03 you will need a supercell of 100 atoms!
If you wrote all composition as fractions, the least common multiple of the denominators is the minimum cell size you need. But it is usually even bigger to get some pair correlations to match too.

Hello Axel:

I have a new question regarding to mcsqs code:

I hope to generate a 32-atom SQS with 1 A atom, 7 B atoms, 8 C atoms, 8 D atoms and 8 E atoms randomly distributed in an FCC lattice, and only minimize their nearest pair correlation functions.

Thus, when I write my rndstr.in, for each lattice position (for example, the 0.0 0.0 0.0 position), I have:
0.0 0.0 0.0 A=.03 B=.22 C=.25 D=.25 E=.25

However, when I finish generating the cluster.out and run mcsqs -n=32, I got the following error message:
"Impossible to match point correlations due to incompatible supercell size."

I then have a another trial by change the A and B percentages to "A=.125 B=.125" and there is no error. Is it because mcsqs cannot round the number(when A=.03, there is 0.96 A atoms, which is round to 1 atoms)? Can I find a way to let mcsqs round the number to the closest integer?

Thanks,
Congyi

  1. these are all correlations. One number corresponding to each cluster in cluster.out in the same order.
  2. the actual structure for the cif file (after format conversion!) would go in bestsqs.out . The create the correct rndstr.in you have to determine what to unit cell of structure is, after occupations have been randomized. For instance, if your structure has sites
    0 0 0 A
    0 0.5 0 B
    and you know that these sites should mix in the fully disordered state, then your rndstr.in would have
    0 0 0 A=0.5,B=0.5
    0 0.5 0 A=0.5,B=0.5
    (Or if you drop the -ro option, you can drop the =0.5 in the above)
    You could then run cellcvrt -s on your tentative rndstr.in to find a potentially smaller unit cell.
  1. I would like to ask, I type "corrdump -c -s = bestsqs.out -l = rndstr.in -ro"
    -0.62500 0.41667 0.41667 0.41667 0.25000 1.00000 0.41667
    What do these numbers mean? Which represents the correlation?
  2. If I have a ".cif" format of a known structure, how can I calculate the correlation of this structure? Do I need to enter rndstr.in and bestsqs.out?
    What should rndstr.in be?