# ABINIT, Elphon lesson of the tutorial:

## Electron-Phonon interaction and superconducting properties of Al.

This lesson demonstrates how to obtain the following physical properties, for a metal :

- the phonon linewidths (lifetimes) due to the electron-phonon interaction
- the Eliashberg spectral function
- the coupling strength
- the McMillan critical temperature

This lesson should take about 1 hour.

##### Copyright (C) 2005-2012 ABINIT group (MVer)

This file is distributed under the terms of the GNU General Public License, see
~abinit/COPYING or
http://www.gnu.org/copyleft/gpl.txt .

For the initials of contributors, see ~abinit/doc/developers/contributors.txt .

Goto :

**ABINIT home Page**

**|**

**Suggested acknowledgments**

**|**

**List of input variables**

**|**

**Tutorial home page**

**|**

**Bibliography**

Help files :

**New user's guide**

**|**

**Abinit (main)**

**|**

**Abinit (respfn)**

**|**

**Mrgddb**

**|**

**Anaddb**

**|**

**AIM (Bader)**

**|**

**Cut3D**

**|**

**Optic**

**Content of lesson Elphon**

- 1 Calculation of the ground state and phonon structure of fcc Al.
- 2 Merging of the 2DTE _DDB files using MRGDDB.
- 3 Extraction and merging of the electron-phonon matrix elements using MRGGKK.
- 4 Basic ANADDB calculation of electron-phonon quantities.
- 5 Convergence tests of the integration techniques.
- 6 Transport quantities within Boltzmann theory.

**1. Calculation of the ground state and phonon structure of fcc Al.**

*Before beginning, you might consider making a different subdirectory to
work in.
Why not create "Work_elphon" in ~abinit/tests/tutorespfn/Input ?
*

It is presumed that the user has already followed the Tutorials RF1 and RF2, and understands the calculation of ground state and response function (phonon) properties with ABINIT.

The file ~abinit/tests/tutorespfn/Input/telphon_1.files lists the file names and root names for the first run (GS+perturbations). You can copy it to the working directory. You can also copy the file ~abinit/tests/tutorespfn/Input/telphon_1.in to your working directory. This is your input file.

*cp ../telphon_1.files .*

*cp ../telphon_1.in .*

In order to save time, you should immediately start this run ; the input files will be examined later ...

../../abinit < telphon_1.files > tmp-log &

The calculation is done using minimal values of a number of parameters, in order to make it tractable in a time appropriate for a tutorial. The results will be completely unconverged, but by the end of the lesson you should know how to improve the convergence.

Edit the file telphon_1.in. We now examine several variables. The kinetic energy cutoff ecut is a bit low, and the number of kpoints (determined by ngkpt) is much too low. Electron-phonon calculations require a very precise determination of the Fermi surface of the metal. This implies a very dense kpoint mesh, and the convergence of the grid must be checked. In our case, for Al, we will use a 4x4x4 kpoint grid, but a converged calculation needs more than 16x16x16 points. This will be re-considered in section 5. The qpoint grid will be 2x2x2, must be a sub-grid of the full kpoint grid, and must contain Γ.

The value of acell is fixed to a rounded value from experiment. It too should be converged to get physical results (see Tutorial 3).

Note that the value of 1.0E-14 for tolwfr is tight, and could be even lower (down to 1.0E-20). This is because the wavefunctions determined will be included later explicitly in the matrix elements used in ANADDB (as opposed to only energy values or densities, which are averages of the wavefunctions over kpoints and bands).

Run the first input (a few minutes on a PC), and you should obtain a value of

etotal -2.0828579336121 Hafor the energy at the end of DATASET 1. The following datasets calculate the second order energy variations under atomic displacement in the three reduced directions of the fcc unit cell. This is done for three different phonons, Gamma, (1/2,0,0), and X, which generate the 2x2x2 qpoint grid. The whole calculation follows the same lines as Tutorial RF1. As an example, DATASET 3 calculates the wavefunctions at k+q for k in the ground state kpoint mesh, and q=(1/2,0,0). Then, DATASET 3 calculates

2DTE 0.80951882353353for the second-order energy variation for movement of the (unique) atom along the first reduced direction for q=(1/2,0,0). The main differences with Tutorial RF1 are that

- 1) given we are dealing with a metal, no perturbation wrt electric fields is considered ;
- 2) all of the perturbations in the three directions (for each atom) must be done explicitly. This is enforced with the prepgkk input variable

You are now the proud owner of 9 first-order matrix element files (suffixed _GKKx), corresponding to the three directional perturbations of the atom at each of the three qpoints. The _GKK files contain the matrix elements of the electron-phonon interaction, which we will extract and use in the following. Besides the _GKK files there are the _DDB files for each perturbation which contain the 2DTE for the different phonons wavevectors q.

**2. Merging of the 2DTE _DDB files using MRGDDB.**

You can copy the following content to a file telphon_2.in within your working directory:

telphon_2.ddb.out Total ddb for Al FCC system 3 telphon_1o_DS2_DDB telphon_1o_DS3_DDB telphon_1o_DS4_DDB

This is your input file for the MRGDDB utility, which will take the different _DDB files and merge them into a single one which ANADDB will use to determine the phonon frequencies and eigenvectors. telphon_2.in contains the name of the final file, a comment line, then the number of _DDB files to be merged and their names.

MRGDDB is run with the commandmrgddb < telphon_2.inIt runs in a few seconds.

**3. Extraction and merging of the electron-phonon matrix elements using MRGGKK.**

A merge similar to that in the last section must be carried out for the electron-phonon matrix elements. This is done using the MRGGKK utility, and its input file is ~abinit/tests/tutorespfn/Input/telphon_3.in, shown below

telphon_3o_GKK.bin # Name of output file 0 # binary (0) or ascii (1) output telphon_1o_DS1_WFK # GS wavefunction file 0 9 9 # number of 1WF files, of GKK files, and of perturbations in the GKK files telphon_1o_DS2_GKK1 # names of the 1WF then the (eventual) GKK files telphon_1o_DS2_GKK2 ...The matrix element sections of all the _GKK files will be extracted and concatenated into one (binary) file, here named telphon_3o_GKK.bin. The following lines in telphon_3.in give the output format (0 for binary), then the name of the ground state wavefunction file. The fourth line contains 3 integers, which give the number of _1WF files (which can also be used to salvage the GKK), the number of _GKK files, and the number of perturbations in the _GKK files. Thus, MRGGKK functions like MRGDDB, and can merge _GKK files which already contain several perturbations (qpoints or atomic displacements). Finally, the names of the different _1WF and _GKK files are listed.

MRGGKK will run on this example in a few seconds. In more general cases, the runtime will depend on the size of the system, and for a large number of bands or kpoints can extend up to 20 minutes or more.

**4. Basic ANADDB calculation of electron-phonon quantities.**

The general theory of electron-phonon coupling and Eliashberg
superconductivity is reviewed in *Theory of Superconducting Tc, P.B. Allen
and B. Mitrovic in Sol. State Phys. 37 (1982) ed. Ehrenreich,
Seitz, and Turnbull*. The first implementations similar to that in
ABINIT are those in

*S.Y. Savrasov and D.Y. Savrasov, Phys. Rev. B*and

**54**16487 (1996)*A.Y. Liu and A.A. Quong, Phys. Rev. B*.

**53**R7575-R7579 (1996)File ~abinit/tests/tutorespfn/Input/telphon_4.in contains the input needed by ANADDB to carry out the calculation of the electron-phonon quantities. ANADDB takes a files file, just like ABINIT, which tells it where to find the input, ddb, and gkk files, and what to name the output, thermodynamical output, and electron phonon output files. ~abinit/tests/tutorespfn/Input/telphon_4.files is your files file for ANADDB. You can edit it now.

The new variables are at the head of the file:

# turn on calculation of the electron-phonon quantities elphflag 1 # Path in reciprocal space along which the phonon linewidths # and band structure will be calculated nqpath 7 qpath 0.0 0.0 0.0 1/2 1/2 0.0 1 1 1 1/2 1/2 1/2 1/2 1/2 0.0 1/2 3/4 1/4 1/2 1/2 1/2 # Coulomb pseudopotential parameter mustar 0.136elphflag is a flag to turn on the calculation of the electron-phonon quantities. The first quantities which will be calculated are the phonon linewidths along a path in reciprocal space (exactly like the band structure in Lesson 3.5). The path is specified by the variable qpath giving the apexes of the path in reciprocal space, which are usually special points of high symmetry. The number of points is given by nqpath. The phonon linewidths are printed to a file suffixed _LWD.

The phonon linewidths are proportional to the electron phonon coupling, and
still depend on the phonon wavevector q. The other electron-phonon calculations
which are presently implemented in ANADDB, in particular for superconductivity,
determine isotropic quantities, which are averaged over the Fermi surface.
Integrating the coupling over reciprocal space, but keeping the resolution in
the phonon mode's energy, one calculates the Eliashberg spectral function
α²F. The α²F function is similar to the density of states
of the phonons, but is weighted according to the coupling of the phonons to the
electrons. It is output to a file with suffix _A2F, which is ready to be
represented using any graphical software (Xmgr, matlab, OpenDX...). The first
inverse moment of α²F gives the global coupling strength, or mass
renormalization factor, λ. From λ, using the McMillan formula
(*Phys. Rev. 167 331-344 (1968)*),
ANADDB calculates the critical temperature for superconductivity. The formula
contains an adjustable parameter μ which approximates the effect of Coulomb
interactions, and is given by the input variable mustar. For Al with the kpoint grid given and a
value of μ=0.136 the ANADDB output file shows the following values of

mka2f: isotropic lambda = 9.899302E+00 mka2f: lambda = 8.890935E-07 mka2f: lambda = 7.278158E-10 mka2f: lambda = 7.839382E-13 mka2f: lambda = 9.515804E-16 mka2f: omegalog = 1.735213E-04 (Ha) 5.479363E+01 (Kelvin) mka2f: input mustar = 1.360000E-01 mka2f: MacMillan Tc = 4.062693E-05 (Ha) 1.282896E+01 (Kelvin)As expected, this is a fairly bad estimation of the experimental value of 1.2 K. The coupling strength is severely overestimated (experiment gives 0.44), and the logarithmic average frequency is too low, but not nearly enough to compensate λ. Aluminum is a good case in which things can be improved, because its Fermi surface is isotropic (adapted to the approximations in the present version of ABINIT) and the coupling is weak.

**5. Convergence tests of the integration techniques.**

In section 4, we used the default method for integration on the Fermi surface, which employs a smearing of the DOS and attributes Gaussian weights to each kpoint as a function of its distance from the Fermi surface. Another popular method of integration in k-space is the tetrahedron method, which is also implemented in ANADDB, and can be used by setting telphint = 0. In this case the kpoint grid must be specified explicitly in the input, repeating the variable kptrlatt from the ABINIT output, so that ANADDB can re-construct the different tetrahedra which fill the reciprocal unit cell. In the Gaussian case, the width of the smearing can be controlled using the input variable elphsmear.

To test our calculations, they should be re-done with a denser kpoint grid and a denser qpoint grid, until the results (α²F or λ) are converged. The value of elphsmear should also be checked, to make sure that it does not affect results. Normally, the limit for a very small elphsmear and a very dense kpoint grid is the same as the value obtained with the tetrahedron method (usually converged with a sparser kpoint grid).

Edit input file ~abinit/tests/tutorespfn/Input/telphon_5.in and you will see the main difference with telphon_4.in is the choice of the tetrahedron integration method. If you are patient, save the output _LWD and _A2F files and run the full lesson again with a denser kpoint grid (say, 6x6x6) and you will be able to observe the differences in convergence.

**6. Transport quantities within Boltzmann theory.**

The electron-phonon interaction is also responsible for the resistivity of normal metals and related phenomena. Even in a perfect crystal, interaction with phonons will limit electron life times (and vice versa). This can be calculated fairly simply using Boltzmann theory of transport with first order scattering by phonons (see, e.g., "Electrons and Phonons" by Ziman).

The additional ingredient needed to calculate transport quantities (electrical resistivity, heat conductivity limited by electron-phonon coupling) is the Fermi velocity, ie the group velocity of a wavepacket of electrons placed at the Fermi surface. This is the "true" velocity the charge will move at, once you have displaced the Fermi sphere a little bit in k space (see, e.g. Ashcroft and Mermin as well). The velocity can be related simply to a commutator of the position, which is also used for dielectric response, using a DDK calculation (see the Gamma point phonon tutorial). The phonon calculation at Gamma need not include the electric field (this is a metal after all, so the effect on the phonons should be negligible), but we need an additional dataset to calculate the 3 DDK files along the 3 primitive directions of the unit cell. To be more precise, just as for the el-ph matrix elements, we do not need the perturbed wavefunctions, only the perturbed eigenvalues. Calculating the DDK derivatives with prtgkk set to 1 will output files named _GKKxx (xx=3*natom+1 to 3*natom+3) containing the matrix elements of the ddk perturbation (these are basically the first part of the normal DDK files for E field perturbation, without the wave function coefficients).

The anaddb "files" file must specify where the ddk files are, so anaddb can calculate the Fermi velocities. It actually reads:

telphon_6.in telphon_6.out telphon_2.ddb.out moldyn telphon_3o_GKK.bin telphon.ep telphon_6.ddkwhere the last line is the name of a small file listing the 3 DDK files to be used:

telphon_1_DS5_GKK4 telphon_1_DS5_GKK5 telphon_1_DS5_GKK6The abinit input file telphon_1.in already obtained the DDK files from an additional dataset, DS5, with the following lines of telphon_1.in:

tolwfr5 1.0d-14 qpt5 0 0 0 rfphon5 0 rfelfd5 2Copy the additional .ddk file from the tutorespfn/Inputs directory, and run anaddb with the new "files" file. The input for telphon_6 has added to telphon_5.in the following 2 lines:

ifltransport 1 ep_keepbands 1and has produced a number of additional files:

- *_A2F_TR* contain the equivalent Eliashberg spectral functions with Fermi speed factors. Integrating with appropriate functions of the phonon energy, one gets:
- the resistivity as a function of temperature (telphon_6.out_ep_RHO and figure) and
- the thermal conductivity as a function of temperature (telphon_6.out_ep_WTH) but ONLY the electronic contribution. For T > 100 K or even less, the phononic contribution to the thermal conductivity is by far the largest.

The high T behavior is necessarily linear if you include only first order e-p coupling, and the inset shows the low T behavior, which is not a simple polynomial (with simple models it should be T^3 or T^5 - see Ashcroft and Mermin). See the Savrasov paper above for reference values in simple metals with converged k- and q- point grids.

Finally, note that the _RHO and _WTH files contain a series of tensor components, for the resistivity tensor (2 1 = y x or the resisitivity along y when you apply an electric field along x). This is still in beta phase (as of May 2011) and only the diagonal terms should be taken seriously.

Goto :

**ABINIT home Page**

**|**

**Suggested acknowledgments**

**|**

**List of input variables**

**|**

**Tutorial home page**

**|**

**Bibliography**

Help files :

**New user's guide**

**|**

**Abinit (main)**

**|**

**Abinit (respfn)**

**|**

**Mrgddb**

**|**

**Anaddb**

**|**

**AIM (Bader)**

**|**

**Cut3D**

**|**

**Optic**