Compute electron-phonon matrix elements on a triangulated Fermi surface using induced potential interpolation.
This utility calculates electron-phonon matrix elements interpolated on a Fermi surface triangulation following the method of:
A. Eiguren, C. Ambrosch-Draxl, Phys. Rev. B 78, 045124 (2008)
For that, the induced potentials calculated with QE on the q-grid are read in and interpolated to the non-uniform q-list corresponding to the triangulation (q=k'-k) Needed wavefunctions on the triangulated k-points are calculated on the fly by calling QE and stored. If such calculations preexist, those wavefunctions are read.
1.- From files prefix.N_FS_tri.off, where N is the Fermi surface (FS) sheet, it reads the lists of k-points at the vertices, and the faces, in order to calculate areas.
2.- It writes a prefix-nscf.nscf.in input for pw.x by reading prefix.scf.in and replacing the k-points by the FS triangulation information.
3.- It writes a prefix-nscf.pw2intw.in file, which will convert wfc data from prefix-nscf.save directory.
4.- It sets a directory prefix-nscf.save and initializes it with the scf charge density. It runs pw.x and applies pw2intw.x to the obtained wfcs. In case the prefix-nscf.save/wfc files exist, it skips this and warns the user.
(In the case of using SIESTA step 2 to 4 are done with siesta2intw.x)
Read derivative of local potential (dvq_local) on the real space unit cell for q-vectors of full BZ and Fourier transform to R (Wigner-Seitz) as the first step of the interpolation. The non-local part will be added on the fly when interpolating over the triangulated k-points.
Loop over FS (one loop over irreducible BZ wedge, one loop over full BZ). For each k, k' interpolate the potential for q = k' - k. Read the wave functions for k and k' from their corresponding prefix-nscf.save/wfc files. Calculate electron-phonon matrix elements (local + non-local) as done in ep_melements utility. Finally, interpolated matrix elements are saved to file.
MBR 24/04/2024
&input
outdir = 'directory'
prefix = 'prefix'
TR_symmetry = T or F
use_exclude_bands = 'none', 'wannier' or 'custom'
include_bands_initial = integer
include_bands_final = integer
/
&ph
qlist = 'file'
nq1 = integer
nq2 = integer
nq3 = integer
nqirr = integer
/
&elphon
ep_interp_method = 'dV_interpolate'
ep_interp_bands = 'intw_bands' or 'ef_crossing'
nfs_sheets_initial = integer
nfs_sheets_final = integer
nscf_code = 'QE' or 'SIESTA'
command_pw = 'command'
command_pw2intw = 'command'
file_pw = 'file'
command_siesta2intw = 'command'
file_siesta2intw = 'file'
/
See intw_input_parameters module for the description of each parameter.