3.40 Electron-Phonon Coupling and Electronic Friction

This module calculates the electronic friction tensor and/or electron-phonon coupling (EPC) elements. These can be used to evaluate vibrational lifetimes, electron-phonon coupling constants and classical friction forces that can be used in molecular dynamics with electronic friction[129] in a Langevin formalism.

The original implementation references are:

  • Ab-initio tensorial electronic friction for molecules on metal surfaces: nonadiabatic vibrational relaxation R. J. Maurer, M. Askerka, V. S. Batista, J. C. Tully, Phys. Rev. B., 94, 115432 (2016), https://doi.org/10.1103/PhysRevB.94.115432.

  • Role of Tensorial Electronic Friction in Energy Transfer at Metal surfaces M. Askerka, R. J. Maurer, V. S. Batista, J. C. Tully, Phys. Rev. Lett. 116, 217601 (2016), https://doi.org/10.1103/PhysRevLett.116.217601.

The code has since been refactored, as described in the following (please cite this work if the code is used):

  • Ab initio calculation of electron-phonon linewidths and molecular dynamics with electronic friction at metal surfaces with numeric atom-centred orbitals C. L. Box, W. G. Stark, R. J. Maurer, Electron. Struct., 5, 035005 (2023), https://doi.org/10.1088/2516-1075/acf3c4.

The equations given below are reproduced from the above reference, where the interested reader is directed for more details and a benchmark of the code.

For questions please directly contact r.maurer@warwick.ac.uk

Electron-phonon coupling

A common practical expression for the vibrational linewidth of a phonon, γ𝐪ν, of frequency ω𝐪ν, induced by first-order EPC is defined in Eq 3.165:

γ𝐪ν(ω𝐪ν)= 2πσmnd𝐤ΩBZ|gmnν(𝐤,𝐪)|2(fn𝐤fm𝐤+𝐪)δ(ϵm𝐤+𝐪ϵn𝐤ω𝐪ν) (3.165)

This expression can be obtained from the imaginary part of the first-order nonadiabatic phonon self-energy [105, 232] or can be derived from Fermi’s golden rule. [4, 214] The EPC matrix elements, g are electronically screened, see Ref [105] for more information. The Fermi occupation factors for a given state f(ϵn𝐤) (written as fn𝐤) describe the electronic temperature. Eq 3.165 covers only interband excitations for the case of 𝐪=0 (m>n) and interband and direct intraband excitations for the case of 𝐪0 (mn).

The matrix elements that feature in Eq 3.165 have units of energy and are defined as follows:

gmnν(𝐤,𝐪)=(2Mνω𝐪ν)1/2g~mnν(𝐤,𝐪), (3.166)

with

g~mnν(𝐤,𝐪)=m𝐤+𝐪|𝐪νV|n𝐤. (3.167)

The EPC matrix elements in Eq 3.167 have units of energy per length. They describe the excitation of an electron from a state n𝐤 to a state m𝐤+𝐪 by absorption of a phonon 𝐪ν. V in Eq 3.167 is the self-consistent ("screened") effective potential from a Kohn-Sham DFT calculation. Its derivative with respect to atomic displacement 𝐪νV, is defined as

𝐪νV=aκu𝐪νaκR𝐪,aκV(𝐫). (3.168)

Eq 3.168 introduces the elements of the phonon displacement eigenmode u𝐪νaκ associated with phonon 𝐪ν. Here, a is an atom index and κ indicates the 3 Cartesian directions x, y, and z. Note that we do not include mass weighting as it is considered in Eq 3.166 via Mν. By inserting Eq 3.168 into Eq 3.167 we find

g~mnν(𝐤,𝐪)=aκu𝐪νaκm𝐤+𝐪|R𝐪,aκV(𝐫)|n𝐤=𝐮𝐪ν𝐠~mn(𝐤,𝐪). (3.169)

On the right-hand side of Eq 3.169 we introduce a vector notation to denote the multiplication of the normal mode displacement vector 𝐮𝐪ν with the vector of atomic contributions to the perturbation potential 𝐠~mn(𝐤,𝐪).

Molecular dynamics with electronic friction

Typically, for molecular dynamics at ambient conditions, the Born-Oppenheimer approximation is well justified. This means that the time scales of electronic and nuclear motion are well separated. This is the case for most thermal reactions of molecules in gas phase or for insulating or semi-conducting materials. Therefore nuclei can be viewed as moving on a single potential energy surface (PES) given by the ground state electronic structure. However, this is not the case for nuclei moving on or in metal surfaces (see Fig. 3.11).

Refer to caption
Figure 3.11: left: Schematic view of adsorbate vibration (here shown for a CO molecule on a Cu(100) surface) leading to changes in the electronic structure that excite electron-hole pairs from below to above the Fermi level of the metal density-of-states. right: In the Langevin picture of electronic friction, these electron-hole pairs act as energy gain or loss channels on the nuclear motion along a single potential energy surface.

The continuum of electronic states in metals can already be excited by the vibrational motion of the adsorbate atoms due to resonance at similar energy scales. As a result adsorbate atoms exhibit additional frictional forces. Another way to view this is that the vibrations or phonons are being screened by electronic excitations giving them a finite lifetime. Assuming that the ground and excited state PES are parallel and that these adiabatic effects are only weakly perturbing the adsorbate nuclear motion, we can apply perturbation theory to this problem.

The picture in Fig. 3.11 holds if:

  • the coupling is weak compared to the individual contributions of electrons and nuclei, and if

  • electron-hole pair excitations do not lead to a qualitative change in the nuclear dynamics.

One method to go beyond the Born-Oppenheimer approximation is the molecular dynamics with electronic friction (MDEF) method, by including the effect of electron-hole pair excitations on nuclear dynamics through inclusion of a friction force. In practice, MDEF is always employed by taking the Markov limit, where the memory of the system is ignored by assuming instantaneous response, as recited here from Ref [129]:

MR¨aκ=V(𝑹)RaκaκΛaκ,aκR˙aκ+aκ(t). (3.170)

The electronic friction tensor (𝚲) in Eq 3.170 does not have an explicit time dependence, but rather an implicit one. Expressions for the electronic friction tensor are given in the next section. is a force associated with random white noise from the bath of electrons:

aκ(t)aκ(0)=kBTΛaκ,aκδ(tt). (3.171)

Below, we show several further approximations that can be used to evaluate 𝚲 to employ MDEF for gas-surface dynamics with atomistic simulations with electronic structure calculated at the DFT level.

Electronic friction tensor expressions

We find an expression for the Cartesian friction tensor by inserting Eq 3.166 and Eq 3.169 into Eq 3.165 and we bring the normal mode displacement vectors 𝐮𝐪ν outside of the sum over states,

γ𝐪ν=Γ𝐪ν=[𝐮~𝐪ν𝚲𝐪(ω𝐪)𝐮~𝐪νT], (3.172)

and define the mass-weighted normal mode displacement vectors 𝐮~𝐪ν=𝐮𝐪ν/Mν. Herein, we have defined the Cartesian friction tensor [214]

Λaκ,aκ𝐪,Ia(ω𝐪)= πσmnd𝐤ΩBZg~mnaκ(𝐤,𝐪)(g~mnaκ)(𝐤,𝐪) (3.173)
(fn𝐤fm𝐤+𝐪)δ(ϵm𝐤+𝐪ϵn𝐤ω𝐪)ω𝐪.

A similar result for the phonon linewidth can be generated on the basis of atomic response correlation functions. [50, 129] Additionally, we define a related expression for the Cartesian friction tensor by assuming ω𝐪 is equivalent to the eigenvalue energy difference in the denominator of the right hand term:

Λaκ,aκ𝐪,Ib(ω𝐪)= πσmnd𝐤ΩBZg~mnaκ(𝐤,𝐪)(g~mnaκ)(𝐤,𝐪) (3.174)
(fn𝐤fm𝐤+𝐪)δ(ϵm𝐤+𝐪ϵn𝐤ω𝐪)ϵm𝐤+𝐪ϵn𝐤.

This expression is the one employed by default within the code, and was shown to be the most stable and general. [40] We can follow a similar derivation starting from the low temperature double delta expression by Allen [5] and arrive at:

Λaκ,aκ𝐪,II=πσmnd𝐤ΩBZg~mnaκ(𝐤,𝐪)(g~mnaκ)(𝐤,𝐪)δ(ϵn𝐤ϵF)δ(ϵm𝐤+𝐪ϵF). (3.175)

These expressions of electronic friction are generalizations of the expressions defined by Maurer et al [214] for arbitrary 𝐪 values and both have units of [mass/time] or [(energy×time)/length2] or [action/length2].

Evaluation of EPC matrix elements in a local atomic orbital basis

The EPC matrix elements are provided by the following expression in a local orbital basis:

g~mnaκ(𝐤,𝐪)= ij(Cm𝐤+𝐪j)Cn𝐤i (3.176)
(Hijaκ,(1)(𝐤,𝐪)ϵn𝐤Sijaκ,L(𝐤,𝐪)ϵm𝐤+𝐪Sijaκ,R(𝐤,𝐪)).

Comparing with the findings of Maurer et al [214], we can relate the potential derivative (deformation potential matrix elements) and nonadiabatic coupling matrix elements as follows:

ψm𝐤+𝐪|VR𝐪,aκ|ψn,𝐤=(ϵm𝐤+𝐪ϵn𝐤)ψm𝐤+𝐪|R𝐪,aκ|ψn,𝐤. (3.177)

As shorthand, we define a EPC matrix Gijaκ(𝐤,𝐪) (contents of brackets in Eq 3.176) in local orbital representation as

Gmn,ijaκ(𝐤,𝐪)=(Hijaκ,(1)(𝐤,𝐪)ϵn𝐤Sijaκ,L(𝐤,𝐪)ϵm𝐤+𝐪Sijaκ,R(𝐤,𝐪)). (3.178)

In previous works, for computational convenience, approximate versions of these matrix elements have been proposed by Head-Gordon and Tully [129, 214], where the dependence on individual electronic states is dropped and the linear response of the full overlap matrix is used instead:

Gijaκ,HGT(𝐤,𝐪)=(Hijaκ,(1)(𝐤,𝐪)ϵFSijaκ,(1)(𝐤,𝐪)). (3.179)

Maurer et al have assessed the impact of this approximation on vibrational relaxation rates for aperiodic systems and have found it to affect final predictions by only few percentage points. [214] An additional approximate EPC matrix was defined in the same work:

Gmn,ijaκ,AVE(𝐤,𝐪)=(Hijaκ,(1)(𝐤,𝐪)12(ϵn𝐤ϵm𝐤+𝐪)Sijaκ,(1)(𝐤,𝐪)). (3.180)

For lattice periodic (𝐪=0) perturbations in metallic systems (specifically where fractional occupations are present) the response of the Fermi level must additionally be accounted for:

g~mmaκ(𝐤,0)=ij(Cm𝐤j)Cm𝐤i(Hijaκ,(1)(𝐤,0)ϵm𝐤Sijaκ,(1)(𝐤,0))ϵFaκ,(1). (3.181)

This applies only to intraband elements, and thus is only relevant for Allen’s formula (Eq 3.175) where 𝐪=0 intraband elements contribute. Intraband elements do not contribute to the single delta expression of type Eq 3.174 which tends to 0 as ω0.

Evaluation of delta functions

The numerical evaluation of the friction tensor involves either two delta functions (low temperature limit, Eq 3.175) or a single delta function (Eq 3.173). These delta functions cannot be reliably evaluated directly for ab initio calculations due to the discrete nature of the density of states represented on a finite 𝐤-point mesh. Typically the delta function(s) are replaced by a broadening function of finite width, the most common choice is a Gaussian function:

δ^(ϵiϵj)=12πσexp{(ϵiϵj)22σ2}, (3.182)

other choices include a Lorentzian broadening function which can be defined as follows:

δ^Lorentz.(ϵiϵj)=1π12σ(ϵiϵj)2+(12σ)2 (3.183)

An additional normalization technique was previously proposed for single delta function calculations when relatively large smearing widths are applied. [214] This was later found to affect the magnitude of electronic friction without increasing stability and so is no longer recommended. [40]

δ~(ϵiϵj)=δ^(ϵiϵj)0δ^[ϵ(ϵiϵj)]𝑑ϵ=δ^(ϵiϵj)12[1erf(ϵjϵi2σ)]. (3.184)

The choice of smearing parameter can have a large effect on the vibrational linewidths and electronic friction tensor [214, 233], by including contributions from a wider range of electron-hole pair excitations. For the calculation of vibrational linewidths, the delta function(s) are typically evaluated within the weak EPC limit, whereby σ is chosen to be as small as possible whilst being converged with respect to computationally feasible 𝐤-meshes. However, MDEF has been most commonly applied to the simulation of atomic/molecular beam scattering experiments [48, 284], where impinging atoms and molecules with high translational energy and possible high vibrational and rotational excitation are fired at metallic surfaces. For this case, the appropriate choice of σ is unclear, as the coupling can now be much stronger than when calculating vibrational linewidths. A common choice of σ for evaluating electronic friction is within 0.10.6 eV. [300, 214, 284].

Calculation workflow and functionality

The electron-phonon/electronic friction calculation in FHI-aims involves following steps:

  1. 1.

    SCF calculation.

  2. 2.

    Finite-difference or DFPT calculation of electron-phonon coupling matrix elements. Optionally, these matrix elements can be read from files.

  3. 3.

    Calculate the electronic friction tensor from electronic structure data.

The module currently allows to:

  • calculate the nonadiabatic relaxation rate tensor in the quasi-static limit using finite-difference matrix elements for cluster and periodic systems. The latter only works for the Gamma point (𝐪=0).

  • atomwise output of Gamma point (𝐪=0) EPC matrix elements

Tags for general section of control.in

 

Tag: calculate_friction(control.in)

Usage: calculate_friction type
Purpose: Triggers the calculation of the electron-phonon coupling elements and the electronic friction tensor.
type: String that defines the type of calculation to be performed.

  • numerical_friction: Using finite difference to calculate matrix elements. default WARNING: Some erroneously large friction tensor elements may be present if a friction atom lies on a symmetry plane (i.e if the fractional coordinates are within a finite difference displacement length of 0.5.) The user is recommended to DFPT in this case if applicable, this will be addressed in future.

  • DFPT: Using Density Functional Perturbation Theory to calculate matrix elements (Experimental feature, not recommended for metallic systems nor fractional occupations) See 3.36 for more information.

Additionally the keyword empty_states should be set to a large number, or the keyword calculate_all_eigenstates should be used, to make sure the code generates sufficient unoccupied states from the basis set. This number will also be limited automatically by the code to the maximum number that can be generated from the basis set.

 

Tag: friction_coupling_matrix_mode(control.in)

Usage: friction_coupling_matrix_mode integer
Purpose: This keyword sets the expression with which the coupling matrix elements are constructed. There are three different modes (0 = "Head-Gordon-Tully-type" (Eq 3.179), 1="Averaged-type" (Eq 3.180), 2="exact matrix elements" (Eq 3.178 and Eq 3.181)). The default is 0. Type 2 only works in combination with DFPT. Type 0 for large systems can be significantly computationally cheaper.

 

Tag: friction_double_delta(control.in)

Usage: friction_double_delta boolean
Purpose: If set to true, evaluates the friction tensor in the low temperature limit expression given in Eq 3.175, otherwise Eq 3.174 is used. Here the Fermi occupation factor (and thus temperature) is not included, neither is the perturbation energy. Two delta functions are employed with widths controlled by friction_broadening_width.
Default is .false.
boolean: .true. or .false.

 

Tag: friction_delta_type(control.in)

Usage: friction_delta_type type
Purpose: This keyword specifies the shape of the broadening function that is used to generate a converged electron-phonon spectral function and electronic friction tensor. The default type is a Gaussan function. Choices include a Gaussian function (gaussian, a square window (square), a squashed Fermi function (squashed_fermi), a Lorentzian (lorentzian), and a sine function (sine).

 

Tag: friction_delta_normalisation(control.in)

Usage: friction_delta_normalisation boolean
Purpose: If set to true, applies an additional normalisation to the delta function for the evaluation of the electronic friction tensor, (Eq 3.184)
Is is recommended now to keep this as false (See Ref [40]), this option is included as a legacy feature.
Default is now .false. (as of 2023)
boolean: .true. or .false.

 

Tag: friction_broadening_width(control.in)

Usage: friction_broadening_width width
or
Usage: friction_broadening_width start_width end_width n_steps

Purpose: This keyword specifies the width (σ) of the broadening function used to average over the spectral function and facilitate Brillouin zone integration. A range of widths can be specified by providing a start value, end value, and number of steps. In this case, the code will calculate the electronic friction tensor for each value in the range.

This parameter affects only the friction tensor (e.g., it does not affect friction_output_tensor_grid). The value should be chosen carefully, as it can significantly influence the magnitude of the electronic friction tensor.

For vibrational lifetimes and electronic friction forces, the width should be as small as feasible. However, larger values may be required to achieve convergence with respect to system size and the number of 𝐤-points (in periodic systems).

The typical range is 0.01 to 0.6 eV. The default value is 0.3 eV.

 

Tag: friction_temperature(control.in)

Usage: friction_temperature T
or
Usage: friction_temperature T_start T_end n_steps
Purpose: Electronic temperature in Kelvin entering state occupations in Fermi’s golden-rule expressions. Ignored when friction_double_delta is enabled.
If three values are provided, a linear scan in temperature is constructed from T_start to T_end with n_steps points.
Restriction: friction_coupling_matrix_mode 2 supports only a single temperature (no temperature scan).
Default: 300 K (single value).

 

Tag: friction_perturbation(control.in)

Usage: friction_perturbation energy
Purpose: This keyword sets the perturbing energy (ω) in eV that enters the electronic friction expression (e.g. Eq 3.174). Ignored when friction_double_delta is enabled. Default is 0 eV.

 

Tag: friction_max_energy(control.in)

Usage: friction_max_energy energy
Purpose: This keyword sets the maximum excitation energy in eV for which electronic excitations will be included. The safe default is 4 times the value of friction_broadening_width, and typically 2 eV is a safe choice.

Finite difference settings

 

Tag: friction_numeric_disp(control.in)

Usage: friction_numeric_disp disp
Purpose: This keyword provides the finite difference displacement stencil disp in Å for numerical calculation of the friction tensor. Only relevant for calculate_friction numerical_friction. The default is 0.0025 Å.

 

Tag: friction_iter_limit(control.in)

Usage: friction_iter_limit integer
Purpose: This keyword specifies the maximum number of iterations in the finite-difference SCF. The default value is 20.

 

Tag: friction_accuracy_rho(control.in)

Usage: friction_accuracy_rho float
Purpose: This keyword specifies the accuracy to which the electronic density is converged in the finite difference calculation. The default is 1d-5 e/a03.

 

Tag: friction_accuracy_etot(control.in)

Usage: friction_accuracy_etot float
Purpose: This keyword specifies the accuracy to which the electronic energy is converged in the finite difference calculation. The default is 1d-5 eV.

 

Tag: friction_accuracy_eev(control.in)

Usage: friction_accuracy_eev float
Purpose: This keyword specifies the accuracy to which the sum of Kohn-Sham eigen energies is converged in the finite difference calculation. The default is 0.01 eV.

 

Tag: friction_accuracy_potjump(control.in)

Usage: friction_accuracy_potjump float
Purpose: This keyword specifies the accuracy to which the potential is converged in the finite difference calculation. The default is 1.01 eV.

Output of spectral function

 

Tag: friction_output_tensor_grid(control.in)

Usage: friction_output_tensor_grid boolean
Purpose: This keyword controls the output of the electronic friction tensor / ps-1 as a function of perturbing energy (ω) / eV (i.e Eq 3.174). The electronic friction is printed on a discrete grid of perturbing energy values, controlled by friction_discretization_length and friction_max_energy. Excitations are collected and smeared using gaussian broadening, width controlled by friction_window_size.
Default is .false.
boolean: .true. or .false.

 

Tag: friction_window_size(control.in)

Usage: friction_window_size width
Purpose: Legacy keyword (currently defunct in the present implementation). It is parsed for backward compatibility but does not affect the active friction/superconductivity workflows.
Default input value is 0.01 eV.

 

Tag: friction_discretization_length(control.in)

Usage: friction_discretization_length width
Purpose: This keyword sets the discretization of the grid on which the electron-phonon response will be printed with keyword friction_output_tensor_grid. The default value is 0.01 eV.

Input and Output of matrix elements and vectors

 

Tag: friction_elsi_epc_write(control.in)

Usage: friction_elsi_epc_write boolean
Purpose: Triggers writing of electron-phonon matrix elements (g~mnaκ(𝐤,𝐪)) using the ELSI I/O of matrices, in atomic units.
boolean: .true. or .false.

 

Tag: friction_output_eigenvalues(control.in)

Usage: friction_output_eigenvalues boolean
Purpose: Currently this keyword controls the output of the KS eigenvalues and first order KS eigenvalues (with respect to atomic coordinate perturbation ). The latter is calculated using finite difference (and thus is only functional for calculate_friction numerical_friction). First column is the k-point index, remaining columns are the eigenvalues in eV, or first eigenvalues in eV Å1.
Default is .false.
boolean: .true. or .false.

 

Tag: friction_elsi_restart_write(control.in)

Usage: friction_elsi_restart_write boolean
Purpose: Triggers writing of restart files using the ELSI I/O of matrices. Recommended way of restarting calculations.
boolean: .true. or .false.

 

Tag: friction_elsi_restart_read(control.in)

Usage: friction_elsi_restart_read boolean
Purpose: Triggers reading of restart files using the ELSI I/O of matrices.
boolean: .true. or .false.

 

Tag: output friction_eigenvectors(control.in)

Usage: output friction_eigenvectors
Purpose: Prints friction eigenvectors in a JMOL-readable file format. This is an output switch (no boolean argument).

 

Tag: friction_output_vibrations(control.in)

Usage: friction_output_vibrations boolean
Purpose: Enables output/analysis of vibrational normal modes and Hessian information within the friction workflow (and for superconductivity post-processing based on friction linewidths).
Default is .false.
boolean: .true. or .false.

 

Tag: friction_mode_tolerance(control.in)

Usage: friction_mode_tolerance float
Purpose: Sets the tolerance (in eV) for grouping near-degenerate vibrational mode energies in friction-mode analysis.
For modes whose perturbation energies differ by less than this tolerance, the code can reuse previously evaluated quantities instead of recomputing the full tensor contribution.
Larger values may reduce cost for systems with many near-degenerate modes.
Default value: 1.0d-4 eV.

 

Tag: friction_print_tensors(control.in)

Usage: friction_print_tensors boolean
Purpose: Controls printing of Cartesian friction tensors (and normal-mode tensors when available) to standard output.
Default: .false.
boolean: .true. or .false.

 

Tag: friction_apply_asr(control.in)

Usage: friction_apply_asr boolean
Purpose: Applies the acoustic sum rule (ASR) to the Hessian used in friction/vibrational analysis.
Default: .false.
boolean: .true. or .false.

Tags for geometry.in

 

Tag: calculate_friction(geometry.in)

Usage: calculate_friction boolean
Purpose: In geometry.in, includes the last specified atom into the calculation of the friction tensor.
boolean is .true. or .false., Default: .false.