For materials with strong lattice anharmonicity, it is critical to incorporate anharmonic phonons in electron-phonon calculations, take SrTiO3 for example (see this paper). PERTURBO provide interface to the TDEP package for finite temperature lattice dynamics.

Compilation

To turn on TDEP interface in PERTURBO, one needs to compile PERTURBO with a flag -D__TDEP and link with the TDEP library, which can be done by adding the following lines to make.sys of PERTURBO.

#For TDEP interface 
TDEP_root= ## top directory of TDEP ##
FFLAGS  += -D__TDEP
IFLAGS  += -I${TDEP_root}/inc/libolle
LIBOBJS += ${TDEP_root}/lib/libolle.a

Usage

To incorporate TDEP interatomic force constants in PERTURBO, one needs to prepare two key files from TDEP, namely infile.ucposcar and infile.forceconstant, and set tdep = .true. in qe2pert.in (the main input file for qe2pert.x).

Here is an example of the input file for qe2pert.x with the TDEP force constants:

&qe2pert
 prefix = 'sto'
 outdir = './tmp'
 phdir = './phonon/References/save'
 nk1 = 4
 nk2 = 4
 nk3 = 4
 num_wann = 3
 dft_band_min = 21
 dft_band_max = 23
 lwannier = .true.
 tdep = .true.  ! flag to turn on tdep
/

Once the TDEP force constants are employed in ‘prefix’_ephwan.h5, perturbo.x will use them automatically, there is no need to modify the input file for perturbo.x.

In the PERTURBO-TDEP interface, qe2pert.x reads data from infile.ucposcar and infile.forceconstant, maps the TDEP force contants to the Wigner Seitz Supercell (WS) generated by PERTURBO, and then writes them to ‘prefix’_ephwan.h5. If any pair of force constants in infile.forceconstant cannot be mapped to WS, qe2pert.x will issue a runtime error. To solve this issue, one needs to either increase the coarse \(\mathbf{q}\)-grid or decrease the rc2 parameter (the cutoff for the 2nd force constants) in TDEP.

Technical details

Treatment of long-range dipole-dipole corrections in TDEP and PERTURBO

For more details of the dipole-dipole corrections for polar materials, we refer the users to this paper and its Supplemental Material.

In both TDEP and PERTURBO, only the short-ranged forceconstants are stored in the form of interatomic force constants (IFC) for polar materials, while the long-ranged dipole-dipole contributions to the dynamical matrices are computed on the fly, using the dielectric tensor, Born effective charges, and Ewald parameters.

There are several types of dipole-dipole corrections implemeneted in TDEP. PERTURBO uses the polar correction method proposed in this paper, which is implemented in TDEP as the correction type 3.

Here is an example to run TDEP:

extract_forceconstants -rc2 5 --polar -pc 3

Here, --polar means the dipole-dipole correction is on for polar materials, and -pc 3 indicates using the polar correction scheme introduced in our 2018 PRL paper.

The infile.forceconstant file from TDEP contains the short-ranged forceconstants extracted by fitting the displacement and subtracted forces and the quantities to compute the long-ranged (dipole-dipole) forceconstant, such as the polar correction type, dielectric tensor, the Born effective charges, and so on.

This is an example of the infile.forceconstant file:

           3 # This is a forceconstant for a polar material.
       6.255018086086       0.000000000000       0.000000000000 Dielectric tensor xx xy xz
       0.000000000000       6.255018086086       0.000000000000 Dielectric tensor yx yy yz
       0.000000000000       0.000000000000       6.255018086086 Dielectric tensor zx zy zz
  0.99826965332031237       # Coupling parameter in Ewald summation
           4  # number of irreducible components in the Born charges

The number 3 in the first line indicates the polar correction type. The fifth line shows the Ewald summation parameters.

qe2pert.x will check the polar correction type. If PC is 0, then the polar correction is turned off. If the correction type is 3, polar correction is turned on, otherwise, qe2pert.x will issue a runtime error. If correction type is 3, dielectric tensor, Born effective charnges, and Ewald parameter will be written to the ‘prefix’_ephwan.h5 file.

For more details, including running TDEP with VASP and Quantum Espresso, the issue with Born effective charge, etc., please refer to this document.