Skip to content

Core Level (Shifts)

Julien Steffen edited this page Sep 29, 2024 · 8 revisions

Core level energies are often useful when DFT results shall be compared to spectroscopy, e.g., XPS. Unfortunately, core level energies cannot be extracted directly from usual VASP calculations, since the core level electrons are described by the parametrized PAW potentials.

Instead, separate calculations need to be done, of which two kinds are available: initial state and final state. Most settings can be similar to those of DOS calculations. For final state core levels, it is important that the unit cell is large enough since the whole electronic structure is affected by the removal of the respective electron. At least 50-100 atoms should be included into the cell. If the current cell is too small, consider multiplying it with the [modify_poscar.py script](add link)!

If you want to calculate core level energies of several atoms in a system (initial and/or final states), you can use the program manage_cls to automatize the whole process.

Initial State

The energies of the core level electrons are calculated in the actual system before any excitation takes place (therefore: initial state). To perform such a calculation, only add:

  • ICORELEVEL = 1

to the INCAR file! After performing the single point calculation, open the OUTCAR file and seach for:

the core state eigenenergies are
   1-  1s -10224.4810  2s -1257.8857  2p -1094.3492  3s -144.0040  3p -94.7441  3d -155.0985
   ....

Here, the core level energies of all orbitals included into the PAW cores of all atoms in the system are listed for the atoms with the same ordering as in the POSCAR. Search for the respective atom and orbital you need to calculate.

Final State

The energy of a certain core level orbital after emitting one electron from it into the valence band and relaxing the whole wave function is calculated. Since only one electron will be excited, it must be specified explicitly. The following keywords must be added to a usual single point calculation to initiate this:

  • ICORELEVEL = 2 Activates the final state mode
  • {CLNT = [number] The number of the species which shall be exited (with respect to the element header line in the POSCAR file). Since only one atom shall be considered, a new species must be defined. This species will usually be located at the end of the elements list. To do this, POSCAR and POTCAR must be changed.

In POSCAR, change the header, for example like this:

 Ni  Ga  H  C
 1   179  4  2 

to

  Ni  Ga  H   C   C 
1   179  4  1   1

such that two carbon species are now present. Per convention, the last species (the last C atom) will now be the one for which the final state core level shall be calculated. Since we now have five instead of four elements in the system, add the "new" one to the POTCAR, in this case:

cat /location/potcar/PAW_PBE.52/C/POTCAR >> POTCAR
  • CLN = [number] The main quantum number N of the excited electron. (1: first shell, 2: second shell, ...)
  • CLL = [number] The angular quantum number L of the excited electron (0: s, 1: p, 2: d, ...)
  • CLZ = 0.5 The number of electrons to be excited from the respective orbital. In practice, mostly a "half" electron is used.

After performing the calculation, open the OUTCAR file and search for the core level energy line (as for initial state). Now look for the chosen orbital and take its energy as final state energy. The energy of this electron will usually be significantly different from other electrons in similar orbitals, since only this has been (partly) removed! The energies of all other noted orbitals are useless! Therefore, a separate final state calculation must be done for every atom/orbital of interest!

Comparing to Experiment

The absolute values of initial state and final state core level energies obtained by VASP are not useful for direct comparison to experiment. First, the energy scale must be changed. Apply the formula:

E(corelevel) = -(E(output) - E(Fermi))

The Fermi energy E(Fermi) can be found by searching in the OUTCAR file:

grep "Fermi energy" OUTCAR

The resulting core level energies are now positive as, e.g., XPS measurements, but still cannot be compared to experiment. Instead, we only calculate the core level shift relative to a given reference state. Therefore, two calculations need to be done for each core level energy: The actual system and an elementary reference state, e.g., graphene or diamond for carbon. The energy difference can then be compared to shifts of XPS peaks (where the peak positions of elementary reference states are usually known).