Bandgap renormalization due to electron-phonon coupling: Difference between revisions

From VASP Wiki
(Improve section: Basis set convergence)
Line 39: Line 39:


==Basis set convergence==
==Basis set convergence==
First, we will deal with convergence of the bandgap renormalization with the number of electronic states ({{TAG|NBANDS}}) and plane-waves ({{TAG|ENCUT}}). To avoid a more cumbersome double-convergence with {{TAG|ENCUT}} and {{TAG|ELPH_NBANDS}} we recommend setting {{TAG|ELPH_NBANDS}} to be equal to the maximum number of plane-waves. This can be done automatically by setting {{TAG|ELPH_NBANDS}}=-2
First, we will deal with convergence of the bandgap renormalization with respect to the number of electronic states ({{TAG|NBANDS}}) and plane-waves ({{TAG|ENCUT}}). To avoid a more cumbersome double-convergence with {{TAG|ENCUT}} and {{TAG|ELPH_NBANDS}} we recommend setting {{TAG|ELPH_NBANDS}} to be equal to the maximum number of plane-waves. This can be done automatically by setting {{TAGO|ELPH_NBANDS|-2}}.


The derivatives of the electron-phonon potential are contained in the {{FILE|phelel_params.hdf5}} file on a pre-selected grid ({{TAG|NGX}}, {{TAG|NGY}}, {{TAG|NGZ}}).
The derivatives of the electron-phonon potential are contained in the {{FILE|phelel_params.hdf5}} file on a pre-selected grid ({{TAG|NGX}}, {{TAG|NGY}}, {{TAG|NGZ}}).
This means that we should avoid running the electron-phonon calculation with a {{TAG|ENCUT}} that would yield a {{TAG|NGX}}, {{TAG|NGY}} and {{TAG|NGZ}} that is different from the {{FILE|phelel_params.hdf5}} file.
This means that we should avoid running the electron-phonon calculation with an {{TAG|ENCUT}} that would yield a set of {{TAG|NGX}}, {{TAG|NGY}} and {{TAG|NGZ}} that is different from the {{FILE|phelel_params.hdf5}} file.
We can, however, choose a smaller {{TAG|ENCUT}} and set {{TAG|NGX}}, {{TAG|NGY}} and {{TAG|NGZ}} manually in the {{FILE|INCAR}} file to be the same as the one in the {{FILE|phelel_params.hdf5}} file.
We can, however, choose a smaller {{TAG|ENCUT}} and set {{TAG|NGX}}, {{TAG|NGY}} and {{TAG|NGZ}} manually in the {{FILE|INCAR}} file to be the same as the one in the {{FILE|phelel_params.hdf5}} file.
This allows running the calculation with different values of {{TAG|ENCUT}} and monitoring how that affects the final value of the bandgap renormalization.
This allows running the calculation with different values of {{TAG|ENCUT}} and monitoring how that affects the final value of the bandgap renormalization.


In a practical example, assume the electron-phonon potential was generated for Silicon with an {{TAG|ENCUT}}=500 which yields {{TAG|NGX}}={{TAG|NGY}}={{TAG|NGZ}}=28 in the primitive cell. The values of {{TAG|NGX}},{{TAG|NGY}} and {{TAG|NGZ}} chosen by vasp can be monitored in the {{FILE|OUTCAR}} file.
Let us consider an example calculation where the electron-phonon potential was generated for Silicon with an {{TAGO|ENCUT|500}} which yields {{TAG|NGX}}={{TAG|NGY}}={{TAG|NGZ}}=28 in the primitive cell. The values of {{TAG|NGX}}, {{TAG|NGY}} and {{TAG|NGZ}} chosen by VASP can be monitored in the {{FILE|OUTCAR}} file.
A convergence study can be performed by running multiple calculations with {{TAG|ENCUT}}=200, then 300, then 400 and finally 500 with {{TAG|NGX}}=28; {{TAG|NGY}}=28; {{TAG|NGZ}}=28 explicitly set in the {{FILE|INCAR}} file.
A convergence study can be performed by running multiple calculations with {{TAG|ENCUT}}=200, then 300, then 400 and finally 500.
You can verify that the calculations with a lower cutoff run faster, hence the choice of the {{TAG|ENCUT}} value for a production calculation is always a trade-off between accuracy and computational time.
{{TAGO|NGX=28}}, {{TAGO|NGY=28}} and {{TAGO|NGZ=28}} are set explicitly in the {{FILE|INCAR}} file.
You can verify that the calculations with a lower cutoff run faster, highlighting the importance of convergence tests for reaching a good compromise between accuracy and computational time.


==K-point sampling convergence and extrapolation to infinity==
==K-point sampling convergence and extrapolation to infinity==

Revision as of 09:43, 7 August 2024

The band-structure renormalization within the nonadiabatic Allen Heine Cardona (AHC) theory is computed from the real part of the electron self-energy evaluated at the Kohn-Sham (KS) eigenvalue. This calculation is activated by default when ELPH_RUN = True and ELPH_DRIVER = EL. For the particular case where we want to determine the bandgap, we can compute the self-energy only for the states that form the gap (including all the degenerate states). The selection of these states can be done automatically by VASP using ELPH_SELFEN_GAPS = True.

Basic usage

The first step of an electron-phonon calculation is the computation of the electron-phonon potential, which corresponds to the derivatives of the KS potential with ionic displacement. This calculation produces the phelel_params.hdf5 file which is a required input for the subsequent calculation. The electron-phonon matrix elements are computed using the KS states obtained from a non-self-consistent-field calculation on a dense k-point mesh. This k-point mesh is specified in the KPOINTS_DENSE file, which has the same format as the regular KPOINTS file. Note that NBANDS governs the number of bands used in the self-consistent-field calculation, while ELPH_BANDS governs the number of bands that will be used in the electron-phonon calculation and are computed in the grid specified via KPOINTS_DENSE.

The computation of the electronic bandgap renormalization can be done using the following INCAR file:

 PREC = Accurate
 ENCUT = 500
 EDIFF = 1e-8
 ISMEAR = 0; SIGMA = 0.01
 LREAL = .FALSE.
 LWAVE = .FALSE.
 LCHARG = .FALSE.
 
 #run electron-phonon calculation
 ELPH_RUN = .TRUE.
 ELPH_DRIVER = EL
 
 # use exact diagonalization and compute all the bands
 ELPH_NBANDS = -2
 KPOINTS_OPT_MODE = 2
 
 # compute gap renormalization
 ELPH_SELFEN_DELTA = 0.01
 ELPH_SELFEN_FAN = .TRUE.
 ELPH_SELFEN_DW = .TRUE.
 ELPH_SELFEN_GAPS = .TRUE.

To get an accurate value while using the smallest possible amount of computational resources, we recommend performing a basis set and k-point sampling convergence study. This ensures that the result is precise, provides an error estimate and reveals the computationally most favorable settings.

Basis set convergence

First, we will deal with convergence of the bandgap renormalization with respect to the number of electronic states (NBANDS) and plane-waves (ENCUT). To avoid a more cumbersome double-convergence with ENCUT and ELPH_NBANDS we recommend setting ELPH_NBANDS to be equal to the maximum number of plane-waves. This can be done automatically by setting ELPH_NBANDS = -2.

The derivatives of the electron-phonon potential are contained in the phelel_params.hdf5 file on a pre-selected grid (NGX, NGY, NGZ). This means that we should avoid running the electron-phonon calculation with an ENCUT that would yield a set of NGX, NGY and NGZ that is different from the phelel_params.hdf5 file. We can, however, choose a smaller ENCUT and set NGX, NGY and NGZ manually in the INCAR file to be the same as the one in the phelel_params.hdf5 file. This allows running the calculation with different values of ENCUT and monitoring how that affects the final value of the bandgap renormalization.

Let us consider an example calculation where the electron-phonon potential was generated for Silicon with an ENCUT = 500 which yields NGX=NGY=NGZ=28 in the primitive cell. The values of NGX, NGY and NGZ chosen by VASP can be monitored in the OUTCAR file. A convergence study can be performed by running multiple calculations with ENCUT=200, then 300, then 400 and finally 500. [[{{{1}}}]], [[{{{1}}}]] and [[{{{1}}}]] are set explicitly in the INCAR file. You can verify that the calculations with a lower cutoff run faster, highlighting the importance of convergence tests for reaching a good compromise between accuracy and computational time.

K-point sampling convergence and extrapolation to infinity

Apart from the convergence with the basis set, one should perform a convergence with the k-point sampling. This step simply implies running the calculation for increasingly dense meshes specified in the KPOINTS_DENSE file. The convergence with k-points and basis set are only slightly interdependent, so converging the two parameters separately is a very good starting point. We recommend users to extrapolate the value to infinite k-point density, this is done by plotting the value of the gap renormalization as a function of the inverse k-point density.

Together with the k-point convergence, the broadening parameter ELPH_SELFEN_DELTA should be monitored as well. The usual approach is to also extrapolate the result to zero broadening. This is made easier by the fact that multiple values can be passed on to ELPH_SELFEN_DELTA with vasp computing the self-energy for each of these broadening and reporting the results in the OUTCAR file and to vaspout.h5. For each value of the broadening, a new electron self-energy accumulator is created with the corresponding settings and values reported in the OUTCAR.

Special treatment of the dipole interaction for polar materials

The convergence of the bandgap renormalization for polar materials (i.e. materials with a gap and non-zero born-effective charges) is specially challenging. This is because the electron-phonon potential diverges as . This divergence is due to a long-range electrostatic interaction between the ions that is not screened by the electrons, as it would be in the case of metals. In these cases, VASP can remove this long-range component from the electron-phonon potential in the supercell, Fourier interpolate it and add it back in the primitive cell. The same treatment is done for the inter-atomic force constants. The behavior, of this treatment, is governed by the following INCAR tags

 ENCUTLR = 150
 ELPH_LR = 1
 IFC_LR = 1

Note that the special treatment is automatically activated when the phelel_params.hdf5 file was generated with the dielectric tensor and born effective charges present in it. The value of ENCUTLR should be the smallest possible for efficiency reasons, but large enough such that the final quantity does not depend on it. This value also should not be too large, otherwise the results might become unphysical.