Infrared and Raman cross sections,
These examples illustrate a few specialized applications of linear-response
techniques, i.e. the calculation of
- Infrared and Raman cross sections
- Normal modes in isolated systems
- Electron-phonon interaction coefficients
In the following, $espresso_dir stands for the root directory of
the Quantum ESPRESSO distribution.
- A short reminder of the relevant theory can be found
- Download the exercise file
in a directory of your choice. Uncompress and unpack
the file and enter in the resulting directory:
tar -zxvf examples_advph.tgz
- The following "make" targets (or equivalents) must have been
make ph gamma tools
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:
- 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, ...
- 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:
Step 1 and 3 are actually independent; step2 requires step 1.
The resulting data:
- linear response to an external electric field
- second-order response to an external electric field
- linear response to lattice perturbations
is written to the file specified in variable "fildyn"
- effective charges and dielectric tensor
- Raman tensors
- dynamical matrix
- 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
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.
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:
- 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
must be used to specify that the Gamma point, k=(0,0,0)
is used. Note that any other equivalent specification, such as
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
- 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
- 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:
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.
- 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!
The option "la2F=.true." instructs the code to save data into a
file that is subsequently read during the electron-phonon calculation
Sample input file: "al.scf.fit.in"
$espresso_dir/bin/pw.x < al.scf.fit.in > al.scf.fit.out
- 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
- 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
Sample input file: "al.nscfX.in"
$espresso_dir/bin/pw.x < al.nscfX.in > al.nscfX.out
- 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".
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.
Sample input file: "al.elphX.in"
$espresso_dir/bin/ph.x < al.elphX.in > al.elphX.out
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.