Time-evolution algorithm
The macroscopic dielectric function, , measures how a given dielectric medium reacts when subject to an external electric field. While VASP possesses several methods to compute this function, here we focus on a strategy, which can be useful when dealing with large systems.
Warning: All features presented in this tag are only available from VASP.6 or higher! |
Macroscopic polarizability as a time-dependent integral
The starting point is that one can re-write as a time-dependent integral[1]
- ,
where is a vector of all dipole moments. The fundamental aspect behind this transformation is that the new, time-dependent vector follows the equation
with the initial vector elements given by .
The level of approximation is controlled by the Hamiltonian chosen in the time-dependent Schrödinger equation. It is worthy to note that is split into two parts, , where is the ground-state Hamiltonian, and is the time-dependent perturbation.
To probe the dielectric response, is set as proportional to a delta-pulse[2], i.e. [3]. With this, all possible transitions between the conduction and valence states included in the INCAR are probed during time-propagation. Control over which valence and conduction states are added in time-dependent run is done with the NBANDSO and NBANDSV flags, respectively.
By propagating the projection of onto at each instant, , VASP can compute the dielectric response along different directions () by evaluating the Fourier transform of each time-dependent coefficient.
With the variable IEPSILON users can control the Cartesian direction along which the Dirac delta pulse is applied. The default value, IEPSILON = 4, performs three independent calculations for an electric field in x, y, and z direction, and thus is the most expensive. The choice of direction is system dependent: while for cubic systems it is enough to compute , for 2D systems such as hexagonal boron nitride it is advisable to compute both and and then analyze their average. This assuming that the direction is perpendicular to the plane in which the atoms are laid.
Users should note that a sufficient large number of such states must be included in a preceding ground-state calculation, where all the energy levels and dipole moments are computed. Note, however, that unoccupied orbitals are not propagated, which saves computational time. Also, if the interest is to compare time-evolution results with data coming from BSE/TDDFT calculations, users should set the same values for NBANDSO and NBANDSV in both calculations.
Finally, to perform this calculation users must set ALGO=TIMEEV in the INCAR file. A small example for bulk silicon is provided in the last section of this page.
Levels of approximation for the exchange-correlation potential
By default, the time propagation code includes the Hartree and local-field effects (LHARTREE=.TRUE. and LFXC=.TRUE.). Results in the independent particle approximation can be calculated by setting both variables to .FALSE.. Please note that setting one variable to .FALSE. and the other to .TRUE. is not currently supported.
LHARTREE: activation of the unscreened Coulomb interaction
With the flag LHARTREE=.TRUE. users can activate the inclusion of direct interaction terms in the Hamiltonian, also known as the bubble diagrams from many-body perturbation theory (MBPT). This is the equivalent of running a BSE calculation in the random phase approximation. Note that at the end, the dielectric function reported in the output files is the macroscopic dielectric function, where no contributions from local fields (i.e. terms with finite ) are included.
LFXC: activation of the exchange-correlation kernel
Setting LFXC=.TRUE. includes the local exchange-correlation kernel, in the time-propagation
where controls the fraction of the exchange energy functional that is included in the kernel (see AEXX). This allows users to perform time-dependent calculations using hybrid functionals.
Choice of time-step
By default, the number of time steps is chosen automatically by VASP and and set to 20000. Alternatively, the number of time steps can be set directly by the tag NELM. In this case, the user-defined number of steps needs to be large than 100. Otherwise, the value of NELM will be discarded and VASP will revert to the default value.
Summary of required INCAR flags
Run-level
ALGO = TIMEEV - sets the calculation type to a time-evolution run.
Choice of bands
NBANDSO - number of occupied (valence) bands to be included.
NBANDSV - number of virtual (conduction) bands to be included.
Approximations to the potential
LHARTREE - include or exclude the Hartree exchange terms (i.e. bubble diagrams) in the Hamiltonian.
LFXC - include or exclude the kernel in the time-propagation.
AEXX - controls the fraction of exchange functional that is included in the .
Time-propagation and spectrum
CSHIFT - controls the broadening of the peaks in the spectra of , while also automatically setting up the maximum time used in the time-propagation algorithm.
IEPSILON - sets up the directions along which the dielectric function is computed.
NELM - sets the number of steps to be used in time-propagation. Users must set this number to be greater than 100 if they want to avoid the default value (20000).
OMEGAMAX - maximum frequency (in eV) for which the dielectric function is computed.
TIMEEV versus TDHF
VASP provides another algorithm with which users can compute the macroscopic dielectric function, TIMEEV. For TDHF, however, the problem is formulated in terms of an eigenvalue decomposition via the Casida equation. Both approaches are equivalent, although TIMEEV is faster for adiabatic LDA and PBE, while TDHF is faster for hybrid functionals.
Example
A typical calculation requires two steps. First, a ground state calculation:
SYSTEM = Si NBANDS = 12 ! even 8 bands suffice for Si ISMEAR = 0 ; SIGMA = 0.05 ALGO = N LOPTICS = .TRUE. KPAR = 4 ! assuming we run on 4 cores, this will be the fastest
Second, the actual time propagation:
SYSTEM = Si NBANDS = 12 ! even 8 bands suffice for Si ISMEAR = 0 ; SIGMA = 0.05 ALGO = TIMEEV IEPSILON = 1 ! cubic system, so response in x direction suffices NBANDSO = 4 ; NBANDSV = 8 ; CSHIFT = 0.1 KPAR = 4 ! assuming we run on 4 cores, this will be the fastest
In this case, OMEGAMAX is set automatically to the maximal transition energy (about 25 eV in this example). Reducing the number of considered transitions, and thus reducing OMEGAMAX will increase both the duration of time steps and their number.
For standard DFT calculations, the time-propagation code is so fast that very dense k-point grids can often be used.
Related Tags and Sections
ALGO, CSHIFT, LHARTREE, LFXC, NBANDSV, NBANDSO, OMEGAMAX
References
- ↑ W. G. Schmidt, S. Glutsch, P. H. Hahn, and F. Bechstedt, Efficient O(N2) method to solve the Bethe-Salpeter equation, Phys. Rev. B 67, 085307 (2003)
- ↑ R. Kubo, Statistical-Mechanical Theory of Irreversible Processes. I. General Theory and Simple Applications to Magnetic and Conduction Problems, J. Phys. Soc. Jpn. 12, 570 (1957).
- ↑ T. Sander, G. Kresse, Macroscopic dielectric function within time-dependent density functional theory—Real time evolution versus the Casida approach , J. Chem. Phys. 146, 064110 (2017)