I am trying to use mcsqs on a system containing 36 metal atoms. I would like 20 of these atoms to be Ni and 16 to be Fe. The problem is that 20/36 and 16/36 don’t form exact decimals. I have tried inputting decimals which, when multiplied by 36, give the corresponding integers. For example, in double precision:
0.5555555555555556*36 = 20
However, I still get an error message of the following form:
terminate called after throwing an instance of ‘std::bad_alloc’
what(): std::bad_alloc
Actually, the default tolerance for rounding error is set to 1e-4. So in your case 0.55555 should have worked. Perhaps the error is somewhere else? can you send you input file and command-line arguments?
I suspect your option -n=… is not set to a multiple of 36
These are my inputs, including the atomic positions, symmetry of the lattice and cluster functions. My command for running the code is as follows:
mcsqs -rc -n=68
The -rc option allows me to restrict the search to the lattice specified in the sqscell.out file. The -n=68 option is used as there are 68 atoms in the unit cell (32 metal atoms and 36 sulfur atoms).
I doubt that the problem is related to anything but the concentrations, as I used the same input to successfully run calculations which used Fe=0.5,Ni=0.5 (you can try this yourself if youd like).
the sqscell.out file shoud contain the supercells in multiple of the axes given in rndstr.in. In your case:
1
1 0 0
0 1 0
0 0 1
Sorry this was not clear in the doc - I fixed that: "supercells must be expressed in multiple of the axes defined in the rndstr.in file (in particular, all numbers entered should be integers)."
Your rndstr.in file was created part on a unix system part under windows so had a mix of eol characters. to fix:
fixeol -u rndstr.in
(I think this didn’t actually cause issues but scrambles the output!)
Look at the rndstrgrp.out file generated. This shows the atomic sites grouped by symmetry equivalence. The composition you specify (here 4/9) multiplied by the smallest group size(here 4) for a given group of species must be an integer (here 4*4/9 is not).
This is required because there is a separate point correlation for each group of symmetrically equivalent sites (even though there is only one overall composition).
In your case, if you really want 4/9 composition, you would need a cell that is 9 times bigger than would you currently specify.
I hope this helps!
P.S. when uploading attachments,make sure to click "add the file" after browsing.
Thanks for looking into this. Its good to know what can and cant be done. Obviously a system 9 times the size is much to computationally demanding.
From reading the manual, I initially thought that the sqscell.out file should be written as you specific in your reply. However, its funny but when I use an sqscell.out as you specified, I get a segmentation fault and the code crashes. When I use an sqscell.out file like I sent to you, the code runs cleanly.
As explained in my previous post, your sqscell.out file should be expressed in multiple of the coordinate system axes (i.e. they would usually be integers, if lines 4-6 of your rndstr.in file contains integers).
Hi,
I think I’m having the same problem, and I not being able to make it work.
My input file like
13.7478981018 0.0000000000 0.0000000000
6.8738475861 11.9060875850 0.0000000000
-4.5827839276 7.9375364933 3.2405002845
1 0 0
0 1 0
0 0 1
0.000000000 0.000000000 0.000000000 U=0.333334,La=0.666666
0.666666666 0.666666666 0.000000000 U=0.333334,La=0.666666
0.000000000 0.500000000 0.000000000 U=0.333334,La=0.666666
0.333333333 0.833333333 0.000000000 U=0.333334,La=0.666666
0.500000000 0.000000000 0.000000000 U=0.333334,La=0.666666
0.166666666 0.166666666 0.000000000 U=0.333334,La=0.666666
0.333333333 0.333333333 0.000000000 U=0.333334,La=0.666666
0.833333333 0.833333333 0.000000000 U=0.333334,La=0.666666
0.166666666 0.666666666 0.000000000 U=0.333334,La=0.666666
0.500000000 0.500000000 0.000000000 U=0.333334,La=0.666666
0.666666666 0.166666666 0.000000000 U=0.333334,La=0.666666
0.833319366 0.333319336 0.000000000 U=0.333334,La=0.666666
0.999993026 0.000006955 0.249992296 O
0.499993056 0.500006974 0.249992296 O
0.000001419 0.500015378 0.249992296 O
0.500001431 0.000015354 0.249992296 O
0.166665316 0.166679218 0.249992296 O
0.333337575 0.333351493 0.249992296 O
0.666673720 0.666687608 0.249992296 O
0.833354354 0.833368301 0.249992296 O
0.166673690 0.666687608 0.249992296 O
0.333312362 0.833326340 0.249992296 O
0.666673720 0.166687623 0.249992296 O
0.833312392 0.333326310 0.249992296 O
0.999993682 0.000006344 0.749976873 O
0.499993652 0.500006378 0.749976873 O
0.000002065 0.500014722 0.749976873 O
0.500002027 0.000014734 0.749976873 O
0.166665927 0.166678607 0.749976873 O
0.333338201 0.333350867 0.749976873 O
0.666674316 0.666687012 0.749976873 O
0.833355010 0.833367646 0.749976873 O
0.166674331 0.666687012 0.749976873 O
0.333313018 0.833325684 0.749976873 O
0.666674316 0.166686997 0.749976873 O
0.833312988 0.333325684 0.749976873 O