3.38 Response to homogenous electric fields using DFPT for polarizability and dieletric constant calculations

This code has recently been reorganised by Connor Box, the original DFPT implementation in FHI-aims was written by Honghui Shang and coworkers at FHI. Please contact mariana.rossi@mpsd.mpg.de for any questions related to the response of homogenous electric fields using DFPT in FHI-aims.

The implementation is described in the following reference:

  1. 1.

    All-Electron, Real-Space Perturbation Theory for Homogeneous Electric Fields: Theory, Implementation, and Application within DFT
    Honghui Shang, Nathaniel Raimbault, Patrick Rinke, Matthias Scheffler, Mariana Rossi, Christian Carbogno
    New J. Phys., 20, 073040 (2018)

Homogeneous Electric Fields

Suppose we have an external electrical field ξ, the Hamitonian is changed by adding the following term:

HE=𝐫ξ (3.157)

and the induced total energy becomes:

Etot=Etot0I=x,y,zμIξI12I,JαIJξIξJ (3.158)

Here μI label the dipole moment,

μI=n(𝐫)rI𝑑𝐫 (3.159)

and the corresponding polarizability is defined as the first order derivative of dipole moment with respect to external electrical field:

αI,J=μIξJ=rIn(𝐫)ξJ𝑑𝐫 (3.160)

The polarizability for cluster system can be calculated using 3.160. For extended systems, the position operator is unbounded, in order to deal with it, we use:

ψi(𝐤)|𝐫|ψj(𝐤)=ψi(𝐤)||ψj(𝐤)(εi(𝐤)εj(𝐤)), (3.161)

so we can rewrite the polarizability (Eq.3.160) for extended system as:

αI,J =ucrIn(𝐫)ξJ𝑑𝐫 (3.162)
=4Nki,j,𝐤ψi(𝐤)|I|ψj(𝐤)ucψj(𝐤)|H(1)|ψi(𝐤)uc(εj(𝐤)εi(𝐤))2 (3.163)

and the corresponding dielectric constant is:

ϵIJ=δIJ+4πVucαIJ (3.164)

Similar to the lattice dynamic case, calculating the first-order density matrix Pμν𝐑J requires a DFPT calculation. The flowchart of our DFPT calculation for response to an electric field is illustrated in Fig. 3.9.

Refer to caption
Figure 3.9: Flowchart of DFPT cycle for electric field response

The electric field response calculation is triggered by setting the electric_field_response keyword to DFPT in the control.in file. The electric_field_serial keyword can be used to determine whether the DFPT cycle is carried out for each Cartesian coordinate in serial, or for all 3 Cartesian coordinates at the same time.

Tags for general section of control.in

 

Tag: electric_field_response(control.in)

Usage: electric_field_response type
Purpose:
type specifies the method to calculate response to electric fields and triggers such a calculation.
Currently, only DFPT is a valid option.
Default: DFPT.

 

Tag: electric_field_serial(control.in)

Usage: electric_field_serial boolean
Purpose:
Determines whether the DFPT cycle is carried out for each Cartesian coordinate in serial, or for all 3 Cartesian coordinates at the same time. Not much difference between the two. Generally no need to alter this.
Default: .true..