Calculating energy of a structure

Dear Axel,

I have trouble with understanding how to get the energy of a structure by ATAT. Now I am just trying to learn how to use the program and get energy of a structure from built clusters and ECIs. I know a similar question was asked before but still I didn’t understand it clearly!

I am using the data you shared in ATAT tutorial (mcc_tialhcp1.tar (Pre-calculated files, pack 1)), and I run the command "maps -d &" and it generated many files including clusters.out and eci.out.

then I copied the same file of 5/str.out into a new place (lets say test/predictenr.out), then I run the command as you posted before "corrdump -c -s=test/predictenr.out -eci=eci.out" and it printed a value "-0.01401". and generated the corrdump.out file and maybe some more.
But my question is in energy file of structure 5, it is given as "-.24333739E+02". and when It predicts the energy of the same structure should it give the same/similar value or is there some unit difference?

in short how can I get/calculate the energy of a structure as like the input energy given for each structure?

I hope it is clear,
Thanks for your help,
Aman
PS: I also tried using new/different structure and it also gives some value but I think it is not exactly the energy of the strucuture.

There are two differences:

  1. corrdump gave you the energy per cell of the lattice (lat.in) while */energy is per cell of the structure (which is typically bigger).
  2. maps computes formation energies relative to the end members (pure elements, typically) before fitting the cluster expansion. You can turn that off by creating a ref_energy.in with zeros in it (2 zeros for a binary).
    Note that fit.out shows you the formation energies per cell of lat.in.

Thank you very much! this helps a lot!!!

Aman

I have read .

I then tried to test if the fitted energy from maps obtained eci for the structures analyzed by the same maps routine, by

for loop: corrdump -c -s=$i/str.out -eci=eci.out

What puzzles me is that for some systems, the values in fit.out and the manual output are different!

CuAu_fcc works fine:

fit.out

0.000000 0.000000 0.012267 -0.012267 1.000000 0
1.000000 0.000000 -0.008436 0.008436 1.000000 1
0.500000 0.029654 0.036393 -0.006739 1.000000 2
0.500000 -0.054396 -0.047502 -0.006895 1.000000 3
0.333333 0.065607 0.041411 0.024196 1.000000 4
0.666667 0.004195 0.034510 -0.030315 1.000000 5
0.333333 -0.032310 -0.031424 -0.000886 1.000000 6
0.666667 -0.042113 -0.046121 0.004008 1.000000 9

manual output:

# energy
0 0.01227
1 -0.00843
2 0.03639
3 -0.04750
4 0.04141
5 0.03451
6 -0.03142
7 -0.01648 # error
8 -0.03922 # error
9 -0.04613

But for SiGe_diamond:

fit.out:

0.000000 -0.000000 0.000032 -0.000032 1.000000 0
1.000000 0.000000 0.000102 -0.000102 1.000000 1
0.500000 0.021801 0.021747 0.000054 1.000000 2
0.250000 0.013711 0.013346 0.000366 1.000000 3
0.500000 0.015719 0.014960 0.000758 1.000000 4
0.500000 0.017420 0.017372 0.000048 1.000000 5
0.750000 0.014503 0.013728 0.000776 1.000000 6
0.250000 0.011943 0.011963 -0.000020 1.000000 7
0.500000 0.013692 0.013518 0.000174 1.000000 8
0.750000 0.012201 0.012461 -0.000260 1.000000 9

manual output:

# energy
0 0.00005
1 0.00021
2 0.04351
3 0.02669
4 0.02992
5 0.03474
6 0.02746
7 0.02393
8 0.02704
9 0.02492

TiAl_N_wurtzite, some errors marked in sub-folders, not shown:

fit.out:

0.000000 0.000000 -0.034920 0.034920 2.000000 0
1.000000 0.000000 0.014944 -0.014944 3.000000 1
0.500000 0.262882 0.318705 -0.055823 1.000000 2
0.750000 0.283650 0.140827 0.142823 1.000000 6
0.750000 0.299220 0.306632 -0.007412 1.000000 9
0.250000 0.109284 0.136629 -0.027344 1.000000 10
0.500000 0.105553 0.143830 -0.038277 1.000000 11

manual output:

# energy
0 -0.06985
1 0.02988
2 0.63742
6 0.28165
9 0.61326
10 0.27326
11 0.28766

Another similar hexagonal system had the same problem. But two other rocksalt systems, of the same elements as the previous two hex systems, gave correct/consistent results. I made sure all the files in the folder came from the same maps run.

Could it just be that the manual output gives "per unit cell" while maps gives it "per atom" ( not counting atoms that can’t move).

Oh. You are right! The third column is half the value of the manual output! Suddenly so obvious when pointed out… Didn’t see that before.

I read it in another thread (can’t find it by a naive search) that gave me the impression, that the scale is automatically taken care of, so I didn’t think that way.

Sorry, but I’m still confused. Could you tell me why the energy in fit.out and the energy from manual ‘corrdump’ will give slightly different values?

The energy from corrdump is per unit cell, but what’s in fit.out is ‘per atom’, or, more properly, per spin, i.e. the ‘active’ sites that are allowed to change identity. So the values from corrdump should be divided by the number of ‘active’ sites.

Hello friends,
Here I have known that we could caltulate the energy of a structure with the "eci.out" file and the "cluster.out" file by using the command "corrdump -c -s=xxx.out -eci=eci.out".
And, I have two questions about the energy calculation using the finished Cluster Expansion.
1.what is the meaning of the energy ? Is it the free energy, or the mixing enthalpy?
2.You said the cluster expansion can be used as a Hamiltonian for the MC simulations. So, if I build a solid solution configuration contains thounds of atoms, according with the format of the str.out file, Could I calculate the energy of this soild solution configuration by using the command mentioned above. If I couldn’t, are there any other ways to do this job?
Expexting your answers!
Best regards.

  1. It is a the formation energy relative to the pure "end members". That reference can be changed with the ref_energy.in file, see maps -h and mmaps -h for more info.

  2. yes this could work. But if your goal is to do MC, perhaps have a look at emc2/memc2