This repository provides a simple function to perform the Kramers-Kronig transformation on the frequency-dependant imaginary dielectric function, to obtain the real part of the dielectric function. The transformation is defined as: [1]
Where εαβ(1)(ω) is the real part of the dielectric constant at energy, ω. P is the principle value, εαβ(2)(ω') is the imaginary part of the dielectric constant and η is a small complex shift. A larger η results in a slight smoothing of the real dielectric function.
The dielectric constant can be used to calculate the optical absorption via the complex refractive index.
[1] M. Gajdoš, K. Hummer, G. Kresse, J. Furthmüller, and F. Bechstedt, "Linear optical properties in the PAW methodology", Phys. Rev. B 73, 045112 (2006) DOI: 10.1103/PhysRevB.73.045112
The kkr.py
contains the function to perform the Kramers-Kronig transformation.
The kkr
function expects the dielectric function, eps_imag
, to be provided
as a nx3x3
numpy array, containing the dielectric tensor on a regular energy
(photon frequency) grid.
The energy grid spacing, de
, is also required.
A jupyter notebook has been provided, which gives a tutorial on how the script should be used.
This script is currently compatible with Python 2.7 and Python 3.4. Numpy is required for matrix operations.
This script is made available under the MIT License.