B-doped Diamond
Warning
The following example aims at providing physically meaningful results. Calculations can therefore take a significant amount of time. For quick calculations, look at the EPW/tests/
folder.
Running EPW to calculate electron and phonon linewidths and the Eliashberg spectral function of B-doped diamond
The B-doped diamond example is located inside the EPW/examples/diamond/
directory. Within this directory there are three sub-directories: pp/
contains the C pseudopotential; phonon/
contains the input files to calculate phonons for B-doped diamond; epw/
contains the inputs to run epw.x
on B-doped diamond.
Once pw.x
, ph.x
and epw.x
have been compiled, we are ready to run this example.
The first step is to calculate phonons in the irreducible wedge. For this example we use a 6x6x6
coarse grid of phonon wavevectors. First go inside the phonon directory:
cd phonons
The phonon code from QE requires a ground-state self-consistent run
../../../../bin/pw.x < scf.in > scf.out
Note that all the calculations can also be performed in parallel using MPI, by issuing the following command:
mpirun -np N ../../../../bin/pw.x -npool N < scf.in > scf.out
where N must be replaced by the number of cores on which you wish run EPW. Since the current version of EPW does not support parallelization over planewaves G, N must be the same number in the specifications of -np and -npool. If you are using a HPC running a job scheduler, then you can embed the line above in your batch job script. If you are running pw.x
, ph.x
, and epw.x
in parallel, please make sure to use the same number of cores in all calculations.
The electronic band structure of B-doped diamond is shown in Figure 1.
Calculating phonons
We now continue with a sequential run. Let us compute the dynamical matrix, the phonon frequencies and the variations of the self-consistent potential using the ph.x
code from QE. We issue the following command:
../../../../bin/ph.x < ph.in > ph.out
This provides us with the phonon frequencies and dynamical matrices at 16 irreducible q-points. You can now check that your results are consistent with the phonon dispersion relations shown in Figure 2.
Now we need to copy the .dyn
, .dvscf
, and .phsave
files which have been produced by QE inside the save
folder. The files corresponding to the various q-points need to be relabelled by appending the q-point number in the list. This operation is performed by a small python script. You simply need to issue the following command from within the folder phonons/
:
python pp.py
The script will ask you the prefix used for the QE calculations, as well as the number of irreducible q-points computed. The script will place all the files in the save/
folder. We can now move to the epw
folder.
In preparation of the EPW run we need to compute the Kohn-Sham wavefunctions and eigenvalues on a coarse Brillouin zone grid. For this we perform first a scf calculation and then an nscf calculation. We move into the epw/
directory and issue:
../../../../bin/pw.x < scf.in > scf.out
mpirun -np N ../../../../bin/pw.x -npool N < nscf.in > nscf.out
Now we have all the information needed to run EPW.
Calculating electron and phonon linewidths using EPW
We start by computing the phonon linewidths,
that is the imaginary part of the phonon self-energy. This is achieved by using the setting phonselfen = .true.
in the epw.in
input file. The phonon linewidths are calculated for ‘’’q’’’-points included in the filed specified by the key filqf = 'meshes/path.dat'
inside epw.in
. In this example the wavevectors specified by the meshes/path.dat
file are along the \(L \Gamma X\) lines of the diamond Brillouin zone.
If you want to generate alternative paths, you will find a python script called kgen.py
inside the
folder meshes/
. This script can be adapted to generate any path that you might need.
At this point we can run EPW:
mpirun -np N ../../../bin/epw.x -npool N < epw.in > epw.out
This run will create a number of files. Let us focus for now on the file linewidth.phself
. This file contains the phonon linewidths (arising the electron-phonon interaction), along the high symmetry lines \(L \Gamma X\).
If you plot the last column, which corresponds to the highest-energy optical mode, you should obtain something very similar to Figure 3.
The plots shown in Figure 3 were performed by using randomly-shifted grids. This choice makes all the k-points inequivalent. In the file epw.in
we are specifying a homogeneous and unshifted k-grid with 50x50x50 points, which corresponds to 3107 inequivalent points. Using this choice we obtain the following plot:
Reference output files can be found in the folder ref.out
.
We now move to the ‘’’electron linewidths’’’.
In this case we must integrate over the phonon q-points. We therefore have to change the fine grid nqf1
and specify the file that contains the k-points for which we want to compute the linewidths, filkf
. Additionally, since we are now considering only a subset of the k-points in the Brillouin zone, we cannot determine the Fermi level automatically, but we need to give this parameter in input. In this example we use the Fermi level obtained in the output file epw.out
which we obtained above when computing the phonon linewidths. In pratctice we set the following input parameters in the file epw2.in
:
efermi_read = .true.
fermi_energy = 13.209862
We then run EPW by issuing:
mpirun -np 4 ../../../bin/epw.x -npool 4 < epw2.in > epw2.out
Note that Fig. 9 of Giustino et al, Phys. Rev. B 76, 165108 (2007) corresponds to the electron linewidths evaluated for undoped diamond, hence they differ from the above result.
We can now compute the spectral function as the real and imaginary part of the electron self-energy arising from electron-phonon interactions:
In this expression we are taking \(\hbar=1\). In order to calculated the spectral function we issue the command:
../../../bin/epw.x < epw3.in > epw3.out
At the end of the run you should obtain the following spectral function, where the red lines are the Kohn-Sham eigenenergies.
Technical note The real part of the self-energy requires also the calculation of the so-called Debye-Waller term, see for example Poncé et al, Phys. Rev. B 90, 214304 (2014). The current version of EPW only computes the Fan-Migdal self-energy. In the case of metals and doped semiconductors, the Debye-Waller term can be, in good approximation, be considered as a state-dependent constant, since it is real and frequency-independent..
In order to account for the Debye-Waller shift of the real part of the self-energy, as well as corrections beyond one-phonon processes, the EPW code enforces a sum rule to conserve the electron number (you can verify that the integral of the spectral function yields approximately 8, i.e. the number of electrons in this example):
The sum rule corresponds to requiring that the real part of the self-energy vanishes at the Fermi energy, and is enforced by default in EPW. The resulting spectral function is:
We can also zoom closer to the Fermi level and see the narrowing of the linewidth, in agreement with Figure 5:
By increasing the k- and q-point resolution near the Fermi level it is also possible to observe the well-known band structure kinks.