Electron Phonon Coupling

From The Yambo Project
Revision as of 13:37, 17 December 2020 by Attacc (talk | contribs) (→‎Convergence)
Jump to navigation Jump to search

Here we show step-by-step how to use Quantum Espresso to calculate phonons and electron-phonon matrix-elements on a regular q-grid, with the final aim to allow Yambo to read these databases and calculate the temperature-dependent correction to the electronic states. This tutorial is quite complicated, take your time to follow all the steps

Electron-phonon matrix elements

In this first section we will explain how to generate electron-phonon matrix elements in Quantum-Espresso, and then import them in Yambo. Calculations will be divided in different folders:

  • pseudo the pseudo potential folder
  • scf for the self-consistent calculation
  • nscf for the non-self-consistent calcaultion with a larger number of bands
  • phonon for the phonons calculations
  • dvscf for the calculation of electron-phonon matrix elements

In this tutorial we will show how to calculate electron-phonon induced corrections to the bands and optical properties of 2D hexagonal boron nitride. All input file are availabe in the following tgz file: hBN.epc.tgz

1. In scf we run a standard scf calculation choosing the a large k-grid in such a way to converge density. Do not forget to set force_symmorphic=.true., because not symmorphic symmetries are not supported yet in Yambo. Notice that because the present system is two-dimensional we added the flag assume_isolated="2D" in such a way correct phonons in 2D, remove this flag is you have a system with a different dimensionality (a bulk, a molecule etc...)


2. Go in the nscf folder, and then copy the ${PREFIX}.save folder from scf to nscf, in the present example just do cp -r ../scf/bn.save ./. In the nscf input you have to choose the number of k-points and bands you will use for the electron-phonon coupling and Yambo calculations, in our case we will a 9x9x1 grid and 8 bands.

.....   
 number of k points=    12
                      cart. coord. in units 2pi/alat
       k(    1) = (   0.0000000   0.0000000   0.0000000), wk =   0.0246914
       k(    2) = (   0.0000000   0.1283001   0.0000000), wk =   0.1481481
       k(    3) = (   0.0000000   0.2566001   0.0000000), wk =   0.1481481
       k(    4) = (   0.0000000   0.3849002   0.0000000), wk =   0.1481481
       k(    5) = (   0.0000000   0.5132002   0.0000000), wk =   0.1481481
       k(    6) = (   0.1111111   0.1924501   0.0000000), wk =   0.1481481
       k(    7) = (   0.1111111   0.3207501   0.0000000), wk =   0.2962963
       k(    8) = (   0.1111111   0.4490502   0.0000000), wk =   0.2962963
       k(    9) = (   0.1111111   0.5773503   0.0000000), wk =   0.1481481
       k(   10) = (   0.2222222   0.3849002   0.0000000), wk =   0.1481481
       k(   11) = (   0.2222222   0.5132002   0.0000000), wk =   0.2962963
       k(   12) = (   0.3333333   0.5773503   0.0000000), wk =   0.0493827
.....


3. Go in the phonon directory. You have to copy the k-points list in the 2pi/alat units from the previous nscf run and provide it as q-grid for the phonon calculations. Notice that due to an internal convection of Yambo the q-points have to be multiplied for -1 before add them to the phonons input. Then use the same k-point grid of the nscf calculation for the phonons, the final input will be:

&inputph
           verbosity = 'high'
              tr2_ph = 1e-12
              prefix = 'bn'
            fildvscf = 'bn-dvscf'
              fildyn = 'bn.dyn')
     electron_phonon = 'dvscf',
               epsil = .true.
               trans = .true.
               ldisp = .false.
               qplot = .true.
     nk1=9, nk2=9, nk3 = 1
/
12
   0.0000000    0.0000000   0.0000000  1
   0.0000000   -0.1283001   0.0000000  1
   0.0000000   -0.2566001   0.0000000  1
   0.0000000   -0.3849002   0.0000000  1
   0.0000000   -0.5132002   0.0000000  1
  -0.1111111   -0.1924501   0.0000000  1
  -0.1111111   -0.3207501   0.0000000  1
  -0.1111111   -0.4490502   0.0000000  1
  -0.1111111   -0.5773503   0.0000000  1
  -0.2222222   -0.3849002   0.0000000  1
  -0.2222222   -0.5132002   0.0000000  1
  -0.3333333   -0.5773503   0.0000000  1




3. In nscf folder I run an nscf calculation, setting the number of bands nbnd equal to the desired band number, force_symmorphic=.true. and the same q grid as before. A ${PREFIX}.save folder will be automatically created.

4. In the main directory I copy and then overwrite the previous ${PREFIX}.save directory with the new one. Now I run an elph calculation setting electron_phonon = ‘yambo’, and the q grid.

&inputph
    fildvscf = '6HSiC-dvscf'
    fildyn = '6HSiC.dyn'
           verbosity = 'high'
               epsil = .true.
               ldisp = .true.
              tr2_ph = 1e-16
              prefix = '6HSiC'
     electron_phonon = 'yambo',
               trans = .false.
         nq1=10, nq2 =10, nq3=2
/

Quasi-particle band structure

Optical properties

Convergence

The results of this tutorial are not converged, and if you check output there are also some phonon mode with negative energies. This is due to the poor parameters used in this tutorial. In order to have converged results, first of all be sure to have converged phonons, increase the plane-wave cutoff, the number of k-points and if necessary reduce tr2_ph. Then change the paramters for the Yambo calculations, increasing the number of k and q points and the number of bands. If you want to increase only the number of bands, just repeat the nscf and dvscf calculations without recalculate the phonons.