High values in ECI fit and help for emc2 simulations

Dear All,

I am a new user of ATAT and I would like to use the emc2 (or memc2 ?) code to determine the magnetic ground state of a structure. In this case, I have set as variable the spin-up and spin-down (e.g. by defining them as X+1 and X-1) rather than different chemical species as in alloy.

I have first performed a series of DFT calculations with structures having different spin ordering and obtained the energy for each case. I have created a "str.out" and "energy" files in each folder and run "maps -d" or "mmaps -d" to find the ECI values that will be used by the emc2 code.

Here are the issues that I am facing:
1- When I use the command "maps -d", then the code starts to fit the ECI and sometimes, as shown below, some very high values (1e+38 ?) are printed:


10 66 40 2 0 0.0351288
10 66 40 4 0 0.0377734
10 66 43 0 0 3.40282e+38 <-----
10 66 43 1 0 3.40282e+38 <-----
10 66 43 2 0 3.40282e+38 <-----
10 66 43 4 0 3.40282e+38 <-----
10 66 43 5 0 3.40282e+38 <-----
10 66 48 0 0 3.40282e+38 <-----
10 66 48 2 0 3.40282e+38 <-----
10 66 48 4 0 3.40282e+38 <-----
10 66 48 5 0 3.40282e+38 <-----
10 66 48 7 0 3.40282e+38 <-----
10 66 50 0 0 0.0237946

2- When I use the command "mmaps -d" then the ECI fitting shows less high values in the printing:

10 81 40 1 0 0.00274595
10 81 40 2 0 0.00278415
10 81 43 0 0 3.40282e+37 <-----
10 83 0 0 0 0.00171838
10 83 1 0 0 0.00173505
10 83 2 0 0 0.00173935

The very hight values seems to happen for some structures in specific folder only. Any ideas on why I have such high values? should I remove these folders for the ECI fitting? it is better to use mmaps than maps?

At the end of the ECI fitting, the maps.log files contains the following lines.
Maps version 3.04
The internal database of structures extends up to 0 atoms/unit cell, see predstr.out
Among structures of known energy, true and predicted ground states agree
No other ground states of 0 atoms/unit cell or less exist.
Concentration range used for ground state checking: [0,1].
Crossvalidation score: 0.00346705

3- Once the ECI fitting has been complete, I have all the input files I need to perform a emc2 simulation. But I have to say that I don’t understand the output file because it doesn’t match with the description of the "help" (emc2 -h). I have much more than 18 columns. For example, I copy/past what I get for T=25K (please see at the end of the message). At the end of the Monte Carlo simulation, the files that are created are the "mc.out" which contains the full list of temperature as in the example copied/pasted below. I have a "ltedat.out", "htedat.out" and "mfdat.out" files, as well as a "mcsnapshot.out" files that contains a structure of the supercell used in the MC simulation.

Please could you help me to understand how I can use these output files in order to know if a magnetic transition is occurring or not? and where I can find the lowest energy structure predicted by the MC simulations?

Thank you very much for any help you can provide on this case,
Michel.

25.000000 -0.395249 -0.395144 -0.999989 -0.394935 0.000000 0.000000 340282346638528859811704183484516925440.000000 0.000000 340282346638528859811704183484516925440.000000 -0.395145 -0.999022 -0.395145 -0.395061 -0.998535 -0.395074 0.000000 1.000000 -1.000000 -0.999963 -1.000000 -0.999926 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 1.000000 1.000000 1.000000 1.000000 0.999963 0.999926 0.999926 0.999963 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.999926 0.999963 1.000000 1.000000 0.999963 1.000000 0.999926 1.000000 1.000000 1.000000 1.000000 1.000000 0.999889 0.999889 0.999963 0.999926 1.000000 1.000000 0.999926 0.999963 1.000000 1.000000 0.999963 0.999926 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.999926 0.999963 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.999963 0.999926 1.000000 1.000000 0.999926 0.999963 0.999963 0.999926 1.000000 1.000000 1.000000 1.000000 1.000000 0.999926 1.000000 0.999963 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 -0.999926 -0.999963 -0.999963 -1.000000 -0.999963 -0.999926 -0.999926 -1.000000 -1.000000 -1.000000 -0.999889 -0.999889 -0.999963 -0.999926 -0.999889 -0.999926 -0.999889 -0.999963 -1.000000 -1.000000 -0.999963 -0.999963 -0.999926 -0.999926 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -0.999963 -1.000000 -0.999926 0.999963 0.999926 0.999963 0.999926

  1. See

  2. I suspect mmaps just have a different cluster finding scheme, or just prints less?

  3. The first 17 columns are what they are:

['T', 'mu', 'E-mu*x', 'x', 'phi', 'var(E)', 'var(x)', 'E_lte-mu*x_lte', 'x_lte', 'phi_lte', 'E_mf-mu*x_mf', 'x_mf', 'phi_mf', 'E_hte-mu*x_hte', 'x_hte', 'phi_hte', 'lro']
25.000000	-0.395249	-0.395144	-0.999989	-0.394935	0.000000	0.000000 340282346638528859811704183484516925440.000000	0.000000 340282346638528859811704183484516925440.000000	-0.395145	-0.999022	-0.395145	-0.395061	-0.998535 -0.395074	0.000000

If you get values blown up, see

The 18+ columns are average correlations associated with each cluster. You have a lot of clusters.

-1.000000	-0.999963	-1.000000	-0.999926	-1.000000	-1.000000	-1.000000 -1.000000	-1.000000	-1.000000	1.000000	1.000000	1.000000	1.000000	0.999963	0.999926	0.999926	0.999963 1.000000	1.000000	1.000000	1.000000	1.000000	1.000000	0.999926	0.999963	1.000000	1.000000	0.999963 1.000000	0.999926	1.000000	1.000000	1.000000	1.000000	1.000000	0.999889	0.999889	0.999963	0.999926 1.000000	1.000000	0.999926	0.999963	1.000000	1.000000	0.999963	0.999926	1.000000	1.000000	1.000000 1.000000	1.000000	1.000000	1.000000	1.000000	1.000000	1.000000	1.000000	1.000000	0.999926	0.999963 1.000000	1.000000	1.000000	1.000000	1.000000	1.000000	0.999963	0.999926	1.000000	1.000000	0.999926 0.999963	0.999963	0.999926	1.000000	1.000000	1.000000	1.000000	1.000000	0.999926	1.000000	0.999963 1.000000	1.000000	1.000000	1.000000	1.000000	1.000000	-0.999926	-0.999963	-0.999963	-1.000000 -0.999963	-0.999926	-0.999926	-1.000000	-1.000000	-1.000000	-0.999889	-0.999889	-0.999963	-0.999926 -0.999889	-0.999926	-0.999889	-0.999963	-1.000000	-1.000000	-0.999963	-0.999963	-0.999926	-0.999926 -1.000000	-1.000000	-1.000000	-1.000000	-1.000000	-1.000000	-1.000000	-1.000000	-1.000000	-0.999963 -1.000000	-0.999926	0.999963	0.999926	0.999963	0.999926

Hi,

Thank you for the reply, that gave me some ideas to try. Unfortunately, what you have tried didn’t work for me. I still have those high (~1e+38) numbers for the 8th (i.e. E_lte-mu*x_lte) and 10th (i.e. phi_lte) columns.

Let’s say what I want to do is to start from a randomly ordered phase (I think it creates a structure at 50% concentration, so for me it will be half spin-up and half spin-down), at high temperature and then cool the system. The ideal results to obtain would be the ground state magnetic ordering at low temperature and an eventual phase transition during the cooling process. For that, I am using the following command:

emc2 -gs=-1 -mu0=-5e-2 -mu1=5e-2 -dmu=1e-4 -T0=600.0 -T1=20.0 -dT=20 -keV -dx=1e-3 -er=50 -o=mc01.out

With the command line above, I still have (~1e+38) numbers (see below). Could you give me a hint on how to perform such calculation? I have tried several values of mu but I still get those high numbers.

600.000000 -0.050000 -0.290387 -0.029152 -0.207883 0.000000 0.000045 340282346638528859811704183484516925440.000000 0.000000 340282346638528859811704183484516925440.000000 -0.156515 …

An other case: I have 7 ground states listed in the "gs_str.out" file, and I am interested to investigate the middle one (i.e. -gs=3). For that, I tried to run a calculation using:

emc2 -gs=3 -mu0=2.99 -mu1=3.01 -dmu=1e-4 -T0=0.0 -T1=600.0 -dT=20 -keV -dx=1e-3 -er=50 -o=mc01.out

but the code printed "" Warning: Chemical potential 2.99 may not stabilize ground state 3 "" and a "nan" value at column 8, 11, and 14. Maybe all my issues come from the badly optimized values in the "htedat.out", "ltedat.out", and "mfdat.out" files?

Please any help would be great.

Thanks,
Michel.

I think I have problems to understand what is actually the chemical potential. From the manual it seems simple

The command line option values for SiGe is not applicable to your system.

  1. You mu0 is close to 0, which doesn’t equilibrate any two phases. It lies very much to the left of gs=0. If you want to go from 50%/50% in the random state, since you have 7 ground states, try mu0=3.5 to stabilize gs=3, which is somewhat in the middle. the -gs only provides a starting point for the MC simulation, and what actually comes out after rounds of iterations depends on T and mu.

  2. You need to use -innerT to scan through T axis first. In this case, set -mu0 and -mu1 to be the same value, 3.5 or something.

  3. Since chemical potential mu doesn’t not directly correspond to a fixed concentration x, you might want to consider using the canonical mode -cm and specify -x.

  4. Also, have a look at -tstat=0 of emc2, which keeps emc2 running even when one or more transition is detected. In order to see the abrupt changes that signify a transition, you can observe the long range order (lro) in the emc2 output file.

Manual:

help doc of emc2:

To stabilize gs=3, use -mu0=3.5, and explore to 2.5 and 4.5, respectively.

Dear terencelz,

Thank you very much for your help. I could get rid of the high values :slight_smile: and I understand better how to define mu.

Last question(s)… If I set in the command line the tag "-tstat" and the code continues to run even if it finds a transition state, how will it print the structures of each transition state that have been found during the simulation? does the "mcsnapshot.out" file that I get at the end of the MC simulation is the transition state structure that is matching the abrupt change when observing the long range order (lro)?

I have tired the following command, as you have suggested to use a the code in a canonical mode (-cm and -x), but I think it got stuck at the beginning:

emc2 -gs=-1 -cm -x=0.5 -T0=600.0 -T1=0.0 -dT=10.0 -keV -innerT -dx=1e-3 -tstat=0 -er=50 -o=mc01.out

I got only this printed…

Running in canonical mode: limited features available
Supercell size: 20 20 10

Thanks again for your very valuable help.

Best wishes,
Michel.

According to , ‘mcsnapshot.out’ corresponds to the very ending structure of the simulation run. If you don’t use ‘-tstat=0’, when the code ends, it should give you the structure after the transition. You might have to change the source code to get the structure before the transition, or could ‘-dl’ work?

  1. You don’t need -innerT for -cm.
  2. trace from bottom to top with a certain ground state or given snapshot by -is. Setting -gs=-1 defines lro to be 0 and you can’t really track it.
  3. I think last time I resolved it by setting -aq=2, which redefines what -dx means. In cm, concentration is fixed by definition.

Have you ever tried to increase the value of -er to look at the difference? I think the simulation size of MC is too small if using -er=10.