MatSQ Blog > Quantum-espresso

#5 Short but Important Calculation of a Single Atom

Viewed : 1168 times,  2019-05-24 16:49:42

Cohesive energy, which is defined as the difference between the energy per atom in a solid and the energy of a single atom, is needed when an atom is separated from the other atoms comprising a material. It can be used to understand the property of crystal such as in finding the correlation effect of an ionic crystal[1] or identifying the stability of the surface.[2]

Sometimes, it is necessary to calculate the energy of a single atom or molecule while conducting research with DFT. To create a single atom model, it is done only one atom be added to a sufficiently large space. However, do not use the setting applied for the calculation of bulk because you may obtain an inaccurate result. This weekly tip compares the results depending on the keyword setting to obtain the correct energy of a single atom.


1. Spin Polarization

The most important thing when calculating a single atom is to set the “spin.” If there is a single electron, the electron configuration should be considered in accordance with the Hund’s rule.[3] Thus, set nspin to 2 (up, down) to consider the spin polarization.

Set the “information amount (verbosity)” to high to obtain the information of the occupation number in the job.stdout file when performing calculation for a single atom.[4] The occupation number indicates the electron configuration, wherein 1.0 means that an electron occupies the corresponding orbital.

Next results are the job.stdout files of the potassium single-atom cubic cell with one single electron in the electron configuration. Depending on the consideration of spin, the occupation number differs as follows:



👉 Check the calculation results

If nspin = 1 to not consider spin, 1.0 is displayed when two electrons occupy one orbital. If nspin = 2, the occupation is displayed with spin up and down distinguished, and it is considered as a different place. When it comes to occupation numbers, it is found that in the case of nspin = 1, the occupation number is as many as 0.5 in the last place of the valence band before the Fermi energy. Potassium is a Group 1 alkali metal and has one electron as the valence electron. As one electron is half of an electron pair, the program recognizes it as 0.5, which is called partial occupation. As the number of electrons cannot be a fraction, energy is added as much as in the unstable state, which results to an energy higher than in the case of nspin = 2.

However, when nspin is set to 2, occupation numbers indicate that spin up and down spaces are distinguished. Thus, unlike when nspin = 1, it is found that there is no partial occupation.


2. Partial Occupations

In the case of a single atom of an element, where a single electron exists in the p orbital, just like how oxygen is calculated, we need to pay attention to the partial occupation problem.

In the case of oxygen, there are four electrons in the p orbital. However, in case the initial model is a cube, the program cannot distinguish px, py, pz, so electrons are evenly distributed, resulting in partial occupation.
This problem can easily be resolved by changing the initial setting or intentionally breaking the symmetry. Depending on the cell type, occupation numbers differ as follows:

Oxygen single atom, cubic cell (a=b=c=10 Å)


Oxygen single atom, tetragonal cell (a=b=10 Å, c=11 Å)


Oxygen single atom, orthorhombic cell (a=10 Å, b=9 Å, c=11 Å)

👉 Check the calculation results

In the case of a cubic cell with the same three lattice parameters, electrons are evenly distributed to the three p orbitals, and partial occupation occurs. For a tetragonal cell with a longer length for the c-axis, one and the other two are distinguished, but the two are not differentiated from each other, and electrons are evenly distributed, resulting in a partial occupation of 0.5. In case of an orthorhombic cell with different three lattice parameters, three p orbitals are well distinguished from each other, resulting in no partial occupation.

In addition to this method, symmetry can intentionally be ignored by adding a keyword. Add the “nosym = .true.” keyword to the &ELECTRONS namelist. Then, a calculation is made without the consideration of any symmetry, and a partial occupation problem can be resolved in a cubic cell. However, the calculation amount extremely increases, so be careful when using this keyword except for the calculation of a single atom.


3. The Effect of K-point to Result

When calculating a single atom, the result of using only the gamma point and that of using multiple points should exactly be the same. The result of the data depending on the number of k-points has no difference in energy values. However, as the number of k-points increases, the time to calculate rises exponentially as well. Therefore, it is recommended not to set a larger number of k-points when calculating a single atom.

As single atoms or small molecules have a small computational amount, their calculation methods do not have a great impact on the results. However, when there are many atoms, if the k-point is “automatic 1 × 1 × 1,” make sure that its calculation is two times larger than the “gamma” case.


4. The 'assume_isolated' keyword

The supported keywords at Template/General mode in Quantum Espresso module are not the whole keywords supported in Quantum Espresso. But you can use the whole keywords by modifying the input script manually at Manual mode.
Among the calculation tags in Quantum Espresso, the ‘assume_isolated’ can use in this case, the single atom calculation. The Quantum Espresso manual explains that ‘Used to perform calculation assuming the system to be isolated (a molecule or a cluster in a 3D supercell).’.
The available options for this keyword are 'makov-payne (mp)', 'martyna-tuckerman (mt)', 'esm', '2D' except ‘none’ the default. We can use the first two options for the single atom calculation.
However, the 'makov-payne (mp)' option can apply only to the case of ibrav=1,2,3 (Cubic system), so you cannot use the keyword in Materials Square (MatSQ fix the ibrav as 0.). Instead, apply 'martyna-tuckerman (mt)' option for the cubic cell, which made with the same three cell parameters and all angles are 90º.
The following table shows the total energy difference of the case with or without the keyword.

assume_isolated Total Energy (eV)
none (default) -560.639638 eV
martyna-tuckerman (mt) -560.639609 eV

👉 Check the calculation results

The energy difference of the two calculations is very small, about five decimal points. Consequently, the ‘assume_isolated’ keyword does not much affect to result if the structure having sufficient vacuum.


We learned how to perform DFT calculation for the single atom and the cautions.

In summary, for an accurate calculation of a single atom, check the following:

  1. Does the electron occupation of a calculation result meet the electronic configuration or the Hund’s rule?
  2. Is the number of all the occupation numbers of a calculation result 0 or 1? (Is there any partial occupation?)
  3. Are k-points set to a minimum?

It can be applied to single molecule calculations also.


Get the accurate energy with simple modelling of single atom/molecule by using Materials Square’s powerful structure builder!


[1] Doll, K., Dolg, M., Fulde, P., & Stoll, H. (1995). Correlation effects in ionic crystals: The cohesive energy of MgO. Physical Review B, 52(7), 4842.
[2] Tasker, P. W. (1979). The stability of ionic crystal surfaces. Journal of Physics C: Solid State Physics, 12(22), 4977.
[3] Miessler, G. L., Fischer, P. J., & Tarr, D. A. (2014). Inorganic chemistry fifith edition.