Infrared and Raman cross sections, electron-phonon coefficients

These examples illustrate a few specialized applications of linear-response techniques, i.e. the calculation of

Getting ready

  1. A short reminder of the relevant theory can be found here
  2. Download the exercise file examples_advph.tgz in a directory of your choice. Uncompress and unpack the file and enter in the resulting directory:
            tar -zxvf examples_advph.tgz
            cd examples_advph
            
  3. The following "make" targets (or equivalents) must have been executed:
    make ph gamma tools
    
In the following, $espresso_dir stands for the root directory of the Quantum ESPRESSO distribution.

Infrared and Raman cross section

The calculation of the effective charges and of (non-resonant!) Raman coefficients is performed by code ph.x. The subsequent calculation of Infrared and Raman cross sections is performed by auxiliary code dynmat.x . In this example the silane molecule SiH4 is used. The needed steps are:
  1. make a structural optimization for SiH4 in a suitable supercell. Sample input file:
    $espresso_dir/bin/pw.x < sih4.scf.in > sih4.scf.out
    
    The optimization proceeds quite quickly. Note that the supercell used is quite small, that the chosen cutoff may be insufficient for H, that LDA is not the best functional for this kind of calculations, ...
  2. calculate phonons, effective charges, and Raman coefficients at wavevector q=(0,0,0). To this end we have to set "epsil=.true." and "lraman=.true." (the latter option does not work for ultrasoft pseudopotentials). Sample input file: "sih4.nm.in"
    $espresso_dir/bin/ph.x < sih4.nm.in > sih4.nm.out
    
    The calculations contains 3 steps:
    • linear response to an external electric field (dielectric response)
    • second-order response to an external electric field
    • linear response to lattice perturbations
    Step 1 and 3 are actually independent; step2 requires step 1. The resulting data:
    • effective charges and dielectric tensor
    • Raman tensors
    • dynamical matrix
    is written to the file specified in variable "fildyn"
  3. calculate the cross sections. The auxiliary program "dynmat.x" reads the file produced by ph.x, applies various forms of Acoustic Sum Rule (ASR), applies the TO-LO splitting (if required: in this case it is not), calculates Infrared and Raman cross sections (for a typical experimental configuration)
    Sample input file: "sih4.ir.in"
    $espresso_dir/bin/dynmat.x < sih4.ir.in > sih4.ir.out
    
    The 'zero-dim' kind of ASR forces both translational and rotational modes to zero frequency.

Normal modes

In systems where the sum over the Brillouin Zone is well represented by k=0 only, the algorithm used to reach self-consistency and to calculate linear-response properties can be simplified and made more efficient (namely, one can keep only half of the PW coefficients and perform two FFT's at the same time). For q=0 phonon modes, these and other algorithmic tricks are exploited by a specialized code "phcg.x" (does not work for ultrasoft pseudopotentials). Steps:
  1. make a structural optimization for SiH4 in a suitable supercell. In order to use the various Gamma-specific tricks to speed up the calculation, the keyword
    K_POINTS (gamma)
    
    must be used to specify that the Gamma point, k=(0,0,0) is used. Note that any other equivalent specification, such as for instance
    K_POINTS (crystal)
     1
     0.0 0.0 0.0  1.0
    
    will use the same k=(0,0,0) as above but not the same algorithm: Gamma-specific tricks are not used. So one has to copy the sample input file for the previous calculation: "sih4.scf.in", for instance into "sih4.scf.gamma.in", modify it accordingly, and to re-run the structural optimization:
    $espresso_dir/bin/pw.x < sih4.scf.gamma.in > sih4.scf.gamma.out
    
  2. calculate phonons at wavevector q=(0,0,0) (i.e. normal modes). Notice that we set "epsil=.true.", meaning that dielectric properties, including effective charges, have to be calculated. Both the Acoustic Sum Rule and symmetry are used to reduce the number of calculations to the strict minimum (notice that the symmetry of a molecule in a supercell is necessarily a subgroup of the lattice symmetry and may be for this reason lower than the true molecular symmetry).
    Sample input file: "sih4.nm.in"
    $espresso_dir/bin/phcg.x < sih4.nm.in > sih4.nm.out
  3. calculate the Infrared cross section. The same "dynmat.x" program can be used as in the previous example. Since Raman tensors cannot be calculated by phcg.x, they are not present in the data file. The results for Infrared cross sections are of course very similar to those previously obtained.
    $espresso_dir/bin/dynmat.x < sih4.cs.in > sih4.cs.out
    

Electron-phonon interaction coefficients

The specific case chosen is the electron-phonon interaction coefficient at X=(1,0,0) for fcc Al.
The calculation requires four steps:
  1. a self-consistent calculation with a dense k-point grid. The dense grid must contain all k and k+q grid points used in the subsequent electron-phonon calculation and should be dense enough to produce accurate electron-phonon coefficients (in particular the double-delta integral at Ef is very critical). This example uses a (32 32 32) Monkhorst-Pack grid. Note that even such a large grid may not be dense enough for a serious calculation!
    Sample input file: "al.scf.fit.in"
    $espresso_dir/bin/pw.x < al.scf.fit.in > al.scf.fit.out
    
  2. The option "la2F=.true." instructs the code to save data into a file that is subsequently read during the electron-phonon calculation
  3. a self-consistent calculation using a grid of k points and a value of the gaussian broadening that is suitable for good self-consistency and for the phonon calculation. This example uses a (16 16 16) Monkhorst-Pack grid
    Sample input file: "al.scf.in"
    $espresso_dir/bin/pw.x < al.scf.in > al.scf.out
    
  4. a non-self-consistent calculation that prepares the needed k and k+q wavefunctions for a phonon run. You have to supply the q vector (X in this case) in variable "xq" and use the keyword "calculation='phonon'".
    Sample input file: "al.nscfX.in"
    $espresso_dir/bin/pw.x < al.nscfX.in > al.nscfX.out
    
  5. make the phonon and electron-phonon calculation for the specified q vector. Specify "elph=.true." and the name of a file where the derivative of the potential is stored, "fildvscf".
    Sample input file: "al.elphX.in"
    $espresso_dir/bin/ph.x < al.elphX.in > al.elphX.out
    
  6. The output contains the results for the electron-phonon coefficients lambda(X), gamma(X), and the double-delta integral at several values of the gaussian broadening (this is set in file PH/elphon.f90). These are useful for convergence testing.
Notice that the gaussian broadening used to calculate the integrals over the double delta has no relation with the one used in the scf calculation to describe the Fermi surface! In order to better verify the convergence, the integral is calculated for ten different values of the gaussian broadening (the computational cost is negligible). Plots of a selected coefficient or of the double-delta integral vs the gaussian broadening for different interpolation grids help in judging the quality of the calculation. A converged calculation can be obtained only with very dense grids.
Once a suitable set of parameters has been determined, steps 2) and 3) can be collapsed into a single step: a phonon calculation for the entire grid of q vectors.