Requests for technical support from the VASP group should be posted in the VASP-forum.

SCH calculations

From Vaspwiki
Jump to navigation Jump to search

SCH stands for super-cell core-hole calculations.

The calculations consist in principle of two steps:

  • Self-consistent electronic cycle with core hole.
  • Calculation of dielectric function of core electron with the band structure from the SCF run.

In the VASP implementation these two steps are all done in a single calculation. To run a successful XAS calculation the following steps have to be made:

1) Make super cell for structure

To minimize the interaction between core holes from neighboring cells the super cell size has to be converged. The convergence is very material dependent and has to be in principle done every time for a new material. It's better to start bottom up from the small cell's.

Mind: Although by increasing the cell size the k mesh is implicitely also increased it still has to be also converged since the spectrum can depend also very strongly on the k points.

2) Select one atom in the POSCAR file that will carry the core-hole and provide a POTCAR file for that atom

After making the super cell one atom has to be made to a new species with a single atom in it that will carry the core-hole. The initial line for the number of atoms and atoms for example can look like this

Mg O
32 32

If we are for example interested in the K-edge spectrum of Mg, we would have to change the POSCAR file as follows

Mg Mg O
1 31 32

Since we create a new species this way we need the POTCAR information for it. This is very easily done by taking the POTCAR file for the same species an concatenating it to the POTCAR carrying all species: i.e. cat POTCAR_Mg POTCAR.

The procedure for oxygen would be very similar:

Mg O O
32 31 1


Mind: One typical source of error is that the additional POTCAR is not added to the main POTCAR file or that the order of species is not the same in the POSCAR and POTCAR files.

3) Set important INCAR flags controlling the XAS calculations and run calculation

  • To obtain XAS spectra using the SCH method and the final state approximation the flags CH_LSPEC=.TRUE. and ICORELEVEL=2 have to be set in the INCAR file. Currently only XAS spectra are only implemented within the final state approximation (ICORELEVEL=2).
  • The species holding the core hole hast to be selected by using the CLNT tag. This number corresponds to the species defined in step 2) in the POSCAR and POTCAR files.

The tags CLN and {{TAG|CLL} specify the and quantum numbers of the excited electron.

The tag CLZ specifies how much of a faction of the chosen electron should be excited. Usually one always sets CLZ=1.0, but in some cases values lesser than 1 can lead to very good agreement with experiment. However, this should be handled with caution since the physics behind is very dubious.

An example input for the 2s K-edge of Mg in MgO would look like the following:


Important: One very important parameter that has to be increased in the calculation is NBANDS. It gives the upper range for which the spectrum can be calculated.

The parameter CH_SIGMA sets the value of broadening in eV. By default this parameter is set to 0.0001. This should not be touched if not needed and the broadening should be rather introduced via post processing.

The parameter CH_NEDOS sets the number of grid points on the energy axis of the spectrum. The default value of 1000 should only be changed if a higher resolution is required.


The freuqency dependent dielectric tensor, which is directly proportional to the absorption spectrum, is written to the OUTCAR file. It starts with the following lines:

  frequency dependent IMAGINARY DIELECTRIC FUNCTION (independent particle, no local field effects) density-density
    E(ev)      X         Y         Z        XY        YZ        ZX

Usually for an absorption spectrum all six components of the dielectric tensor are summed up. In most cases the obtained spectrum needs further processing via an energy dependent broadening.