The mcsqs program seems to be stuck in a non-terminating state.

I am simulating Ni81Fe19 alloy using mcsqs on Ubuntu 22 system,
the rndstr.in is:
1.000000 1.000000 1.000000 90.00 90.00 90.00
1 0 0
0 1 0
0 0 1
0.000000 0.000000 0.000000 Fe=0.187500,Ni=0.812500
0.000000 0.500000 0.500000 Fe=0.187500,Ni=0.812500
0.500000 0.000000 0.500000 Fe=0.187500,Ni=0.812500
0.500000 0.500000 0.000000 Fe=0.187500,Ni=0.812500

the sqscell.out is:
1

2 0 0
0 2 0
0 0 2

then I run:
corrdump -l=rndstr.in -ro -noe -nop -clus -2=1.2
it returns: Warning: unit cell is not primitive.

then I run:
mcsqs -rc
The mcsqs program seems to be stuck in a non-terminating state.

the mcsqs.log is as follows and remains the same:
Reading supercells…
Initializing random supercells…
Initialization done.
Objective_function= -0.984375
Correlations_mismatch= -0.015625 -0.015625
Objective_function= -0.989583
Correlations_mismatch= 0.005208 -0.015625

I don’t know where is the problem.
Your help would be highly appreciated.

Hello :slightly_smiling_face:,
It seems correct to me. You have a quite small supercell and are using only pair clusters up to (I think) the second nearest neighbors (-2 = 1.2). The mcsqs.log is updated whenever it finds a better SQS, so it simply didn’t find anything better. If you want to increase precision, I would suggest increasing the cutoff distance for the pairs or including triplets.
Also, a small advertisement for the GUI: if you run ATAT mcsqs via the generated bash script at simplysqs.com, it provides in addition a time convergence of the objective function and it will automatically convert the bestsqs.out into a POSCAR file (new feature), allowing you to visualize it directly in, for example, OVITO. :slightly_smiling_face: You can find tutorial how to use it at that site.
I have generated the bash script for your settings, so you can try to run it. This script will automatically create rndstr.in and sqscell.out and it will start the search. You just need to have NumPy package in Python for the subsequent conversion into POSCAR.
Hope this helps!
r.sh (13.5 KB)

Hello bracerino,
thank you for your answers and suggestions.

Hi,

The mcsqs code will always keep running until it finds a “perfect” quasi-random structure (mismatch = 0). It may never happen if there are too many clusters in clusters.out or -n (the number of atoms) is too small (that is your case). The bestsqs.out contains the best SQS it has found so far. If you are satisfied with the result, you may manually stop the mcsqs code by creating a file named “stopsqs”.