Skip to main content

Dielectric constant

First we perform self consistent field calculation:

mpirun -np 4 pw.x -i pw.scf.silicon_epsilon.in > pw.scf.silicon_epsilon.out
src/silicon/pw.scf.silicon_epsilon.in
&CONTROL
calculation = 'scf',
prefix = 'silicon',
outdir = '/tmp/'
pseudo_dir = '../pseudos/'
verbosity = 'high'
/

&SYSTEM
ibrav = 2,
celldm(1) = 10.26,
nat = 2,
ntyp = 1,
ecutwfc = 40
nbnd = 20
nosym = .TRUE.
noinv = .TRUE.
/

&ELECTRONS
mixing_beta = 0.6
/

ATOMIC_SPECIES
Si 28.086 Si.pz-vbc.UPF

ATOMIC_POSITIONS (alat)
Si 0.0 0.0 0.0
Si 0.25 0.25 0.25

K_POINTS crystal
216
0.00000000 0.00000000 0.00000000 4.629630e-03
0.00000000 0.00000000 0.16666667 4.629630e-03
0.00000000 0.00000000 0.33333333 4.629630e-03
0.00000000 0.00000000 0.50000000 4.629630e-03
0.00000000 0.00000000 0.66666667 4.629630e-03
0.00000000 0.00000000 0.83333333 4.629630e-03
0.00000000 0.16666667 0.00000000 4.629630e-03
0.00000000 0.16666667 0.16666667 4.629630e-03
0.00000000 0.16666667 0.33333333 4.629630e-03
0.00000000 0.16666667 0.50000000 4.629630e-03
0.00000000 0.16666667 0.66666667 4.629630e-03
0.00000000 0.16666667 0.83333333 4.629630e-03
0.00000000 0.33333333 0.00000000 4.629630e-03
0.00000000 0.33333333 0.16666667 4.629630e-03
0.00000000 0.33333333 0.33333333 4.629630e-03
0.00000000 0.33333333 0.50000000 4.629630e-03
0.00000000 0.33333333 0.66666667 4.629630e-03
0.00000000 0.33333333 0.83333333 4.629630e-03
0.00000000 0.50000000 0.00000000 4.629630e-03
0.00000000 0.50000000 0.16666667 4.629630e-03
0.00000000 0.50000000 0.33333333 4.629630e-03
0.00000000 0.50000000 0.50000000 4.629630e-03
0.00000000 0.50000000 0.66666667 4.629630e-03
0.00000000 0.50000000 0.83333333 4.629630e-03
0.00000000 0.66666667 0.00000000 4.629630e-03
0.00000000 0.66666667 0.16666667 4.629630e-03
0.00000000 0.66666667 0.33333333 4.629630e-03
0.00000000 0.66666667 0.50000000 4.629630e-03
0.00000000 0.66666667 0.66666667 4.629630e-03
0.00000000 0.66666667 0.83333333 4.629630e-03
0.00000000 0.83333333 0.00000000 4.629630e-03
0.00000000 0.83333333 0.16666667 4.629630e-03
0.00000000 0.83333333 0.33333333 4.629630e-03
0.00000000 0.83333333 0.50000000 4.629630e-03
0.00000000 0.83333333 0.66666667 4.629630e-03
0.00000000 0.83333333 0.83333333 4.629630e-03
0.16666667 0.00000000 0.00000000 4.629630e-03
0.16666667 0.00000000 0.16666667 4.629630e-03
0.16666667 0.00000000 0.33333333 4.629630e-03
0.16666667 0.00000000 0.50000000 4.629630e-03
0.16666667 0.00000000 0.66666667 4.629630e-03
0.16666667 0.00000000 0.83333333 4.629630e-03
0.16666667 0.16666667 0.00000000 4.629630e-03
0.16666667 0.16666667 0.16666667 4.629630e-03
0.16666667 0.16666667 0.33333333 4.629630e-03
0.16666667 0.16666667 0.50000000 4.629630e-03
0.16666667 0.16666667 0.66666667 4.629630e-03
0.16666667 0.16666667 0.83333333 4.629630e-03
0.16666667 0.33333333 0.00000000 4.629630e-03
0.16666667 0.33333333 0.16666667 4.629630e-03
0.16666667 0.33333333 0.33333333 4.629630e-03
0.16666667 0.33333333 0.50000000 4.629630e-03
0.16666667 0.33333333 0.66666667 4.629630e-03
0.16666667 0.33333333 0.83333333 4.629630e-03
0.16666667 0.50000000 0.00000000 4.629630e-03
0.16666667 0.50000000 0.16666667 4.629630e-03
0.16666667 0.50000000 0.33333333 4.629630e-03
0.16666667 0.50000000 0.50000000 4.629630e-03
0.16666667 0.50000000 0.66666667 4.629630e-03
0.16666667 0.50000000 0.83333333 4.629630e-03
0.16666667 0.66666667 0.00000000 4.629630e-03
0.16666667 0.66666667 0.16666667 4.629630e-03
0.16666667 0.66666667 0.33333333 4.629630e-03
0.16666667 0.66666667 0.50000000 4.629630e-03
0.16666667 0.66666667 0.66666667 4.629630e-03
0.16666667 0.66666667 0.83333333 4.629630e-03
0.16666667 0.83333333 0.00000000 4.629630e-03
0.16666667 0.83333333 0.16666667 4.629630e-03
0.16666667 0.83333333 0.33333333 4.629630e-03
0.16666667 0.83333333 0.50000000 4.629630e-03
0.16666667 0.83333333 0.66666667 4.629630e-03
0.16666667 0.83333333 0.83333333 4.629630e-03
0.33333333 0.00000000 0.00000000 4.629630e-03
0.33333333 0.00000000 0.16666667 4.629630e-03
0.33333333 0.00000000 0.33333333 4.629630e-03
0.33333333 0.00000000 0.50000000 4.629630e-03
0.33333333 0.00000000 0.66666667 4.629630e-03
0.33333333 0.00000000 0.83333333 4.629630e-03
0.33333333 0.16666667 0.00000000 4.629630e-03
0.33333333 0.16666667 0.16666667 4.629630e-03
0.33333333 0.16666667 0.33333333 4.629630e-03
0.33333333 0.16666667 0.50000000 4.629630e-03
0.33333333 0.16666667 0.66666667 4.629630e-03
0.33333333 0.16666667 0.83333333 4.629630e-03
0.33333333 0.33333333 0.00000000 4.629630e-03
0.33333333 0.33333333 0.16666667 4.629630e-03
0.33333333 0.33333333 0.33333333 4.629630e-03
0.33333333 0.33333333 0.50000000 4.629630e-03
0.33333333 0.33333333 0.66666667 4.629630e-03
0.33333333 0.33333333 0.83333333 4.629630e-03
0.33333333 0.50000000 0.00000000 4.629630e-03
0.33333333 0.50000000 0.16666667 4.629630e-03
0.33333333 0.50000000 0.33333333 4.629630e-03
0.33333333 0.50000000 0.50000000 4.629630e-03
0.33333333 0.50000000 0.66666667 4.629630e-03
0.33333333 0.50000000 0.83333333 4.629630e-03
0.33333333 0.66666667 0.00000000 4.629630e-03
0.33333333 0.66666667 0.16666667 4.629630e-03
0.33333333 0.66666667 0.33333333 4.629630e-03
0.33333333 0.66666667 0.50000000 4.629630e-03
0.33333333 0.66666667 0.66666667 4.629630e-03
0.33333333 0.66666667 0.83333333 4.629630e-03
0.33333333 0.83333333 0.00000000 4.629630e-03
0.33333333 0.83333333 0.16666667 4.629630e-03
0.33333333 0.83333333 0.33333333 4.629630e-03
0.33333333 0.83333333 0.50000000 4.629630e-03
0.33333333 0.83333333 0.66666667 4.629630e-03
0.33333333 0.83333333 0.83333333 4.629630e-03
0.50000000 0.00000000 0.00000000 4.629630e-03
0.50000000 0.00000000 0.16666667 4.629630e-03
0.50000000 0.00000000 0.33333333 4.629630e-03
0.50000000 0.00000000 0.50000000 4.629630e-03
0.50000000 0.00000000 0.66666667 4.629630e-03
0.50000000 0.00000000 0.83333333 4.629630e-03
0.50000000 0.16666667 0.00000000 4.629630e-03
0.50000000 0.16666667 0.16666667 4.629630e-03
0.50000000 0.16666667 0.33333333 4.629630e-03
0.50000000 0.16666667 0.50000000 4.629630e-03
0.50000000 0.16666667 0.66666667 4.629630e-03
0.50000000 0.16666667 0.83333333 4.629630e-03
0.50000000 0.33333333 0.00000000 4.629630e-03
0.50000000 0.33333333 0.16666667 4.629630e-03
0.50000000 0.33333333 0.33333333 4.629630e-03
0.50000000 0.33333333 0.50000000 4.629630e-03
0.50000000 0.33333333 0.66666667 4.629630e-03
0.50000000 0.33333333 0.83333333 4.629630e-03
0.50000000 0.50000000 0.00000000 4.629630e-03
0.50000000 0.50000000 0.16666667 4.629630e-03
0.50000000 0.50000000 0.33333333 4.629630e-03
0.50000000 0.50000000 0.50000000 4.629630e-03
0.50000000 0.50000000 0.66666667 4.629630e-03
0.50000000 0.50000000 0.83333333 4.629630e-03
0.50000000 0.66666667 0.00000000 4.629630e-03
0.50000000 0.66666667 0.16666667 4.629630e-03
0.50000000 0.66666667 0.33333333 4.629630e-03
0.50000000 0.66666667 0.50000000 4.629630e-03
0.50000000 0.66666667 0.66666667 4.629630e-03
0.50000000 0.66666667 0.83333333 4.629630e-03
0.50000000 0.83333333 0.00000000 4.629630e-03
0.50000000 0.83333333 0.16666667 4.629630e-03
0.50000000 0.83333333 0.33333333 4.629630e-03
0.50000000 0.83333333 0.50000000 4.629630e-03
0.50000000 0.83333333 0.66666667 4.629630e-03
0.50000000 0.83333333 0.83333333 4.629630e-03
0.66666667 0.00000000 0.00000000 4.629630e-03
0.66666667 0.00000000 0.16666667 4.629630e-03
0.66666667 0.00000000 0.33333333 4.629630e-03
0.66666667 0.00000000 0.50000000 4.629630e-03
0.66666667 0.00000000 0.66666667 4.629630e-03
0.66666667 0.00000000 0.83333333 4.629630e-03
0.66666667 0.16666667 0.00000000 4.629630e-03
0.66666667 0.16666667 0.16666667 4.629630e-03
0.66666667 0.16666667 0.33333333 4.629630e-03
0.66666667 0.16666667 0.50000000 4.629630e-03
0.66666667 0.16666667 0.66666667 4.629630e-03
0.66666667 0.16666667 0.83333333 4.629630e-03
0.66666667 0.33333333 0.00000000 4.629630e-03
0.66666667 0.33333333 0.16666667 4.629630e-03
0.66666667 0.33333333 0.33333333 4.629630e-03
0.66666667 0.33333333 0.50000000 4.629630e-03
0.66666667 0.33333333 0.66666667 4.629630e-03
0.66666667 0.33333333 0.83333333 4.629630e-03
0.66666667 0.50000000 0.00000000 4.629630e-03
0.66666667 0.50000000 0.16666667 4.629630e-03
0.66666667 0.50000000 0.33333333 4.629630e-03
0.66666667 0.50000000 0.50000000 4.629630e-03
0.66666667 0.50000000 0.66666667 4.629630e-03
0.66666667 0.50000000 0.83333333 4.629630e-03
0.66666667 0.66666667 0.00000000 4.629630e-03
0.66666667 0.66666667 0.16666667 4.629630e-03
0.66666667 0.66666667 0.33333333 4.629630e-03
0.66666667 0.66666667 0.50000000 4.629630e-03
0.66666667 0.66666667 0.66666667 4.629630e-03
0.66666667 0.66666667 0.83333333 4.629630e-03
0.66666667 0.83333333 0.00000000 4.629630e-03
0.66666667 0.83333333 0.16666667 4.629630e-03
0.66666667 0.83333333 0.33333333 4.629630e-03
0.66666667 0.83333333 0.50000000 4.629630e-03
0.66666667 0.83333333 0.66666667 4.629630e-03
0.66666667 0.83333333 0.83333333 4.629630e-03
0.83333333 0.00000000 0.00000000 4.629630e-03
0.83333333 0.00000000 0.16666667 4.629630e-03
0.83333333 0.00000000 0.33333333 4.629630e-03
0.83333333 0.00000000 0.50000000 4.629630e-03
0.83333333 0.00000000 0.66666667 4.629630e-03
0.83333333 0.00000000 0.83333333 4.629630e-03
0.83333333 0.16666667 0.00000000 4.629630e-03
0.83333333 0.16666667 0.16666667 4.629630e-03
0.83333333 0.16666667 0.33333333 4.629630e-03
0.83333333 0.16666667 0.50000000 4.629630e-03
0.83333333 0.16666667 0.66666667 4.629630e-03
0.83333333 0.16666667 0.83333333 4.629630e-03
0.83333333 0.33333333 0.00000000 4.629630e-03
0.83333333 0.33333333 0.16666667 4.629630e-03
0.83333333 0.33333333 0.33333333 4.629630e-03
0.83333333 0.33333333 0.50000000 4.629630e-03
0.83333333 0.33333333 0.66666667 4.629630e-03
0.83333333 0.33333333 0.83333333 4.629630e-03
0.83333333 0.50000000 0.00000000 4.629630e-03
0.83333333 0.50000000 0.16666667 4.629630e-03
0.83333333 0.50000000 0.33333333 4.629630e-03
0.83333333 0.50000000 0.50000000 4.629630e-03
0.83333333 0.50000000 0.66666667 4.629630e-03
0.83333333 0.50000000 0.83333333 4.629630e-03
0.83333333 0.66666667 0.00000000 4.629630e-03
0.83333333 0.66666667 0.16666667 4.629630e-03
0.83333333 0.66666667 0.33333333 4.629630e-03
0.83333333 0.66666667 0.50000000 4.629630e-03
0.83333333 0.66666667 0.66666667 4.629630e-03
0.83333333 0.66666667 0.83333333 4.629630e-03
0.83333333 0.83333333 0.00000000 4.629630e-03
0.83333333 0.83333333 0.16666667 4.629630e-03
0.83333333 0.83333333 0.33333333 4.629630e-03
0.83333333 0.83333333 0.50000000 4.629630e-03
0.83333333 0.83333333 0.66666667 4.629630e-03
0.83333333 0.83333333 0.83333333 4.629630e-03

Especially, notice following changes:

  nbnd = 20
nosym = .true.
noinv = .true.

We turn off the automatic reduction of k-points that pw.x does by using crystal symmetries (nosym = .true. and noinv = .true.). This is because epsilon.x does not recognize crystal symmetries, therefore the entire list of k-points in the grid is needed. Secondly, we calculate a larger number of bands (20), since we are interested in interband transitions. Also, note that epsilon.x doesn't support the reduction of the k-points grid into the irreducible Brillouin zone, so the PW runs must be performed with a uniform k-points grid and all k-points weights must be equal to each other, i.e. in the k-points card the k-points coordinates must be given manually in crystal or alat or bohr, but not with the automatic option. However, the automatic k-points option seems to work. If necessary, we can perform nscf calculation with finer k-grid.

Next step is to prepare the input file for epsilon.x:

src/silicon/epsilon.si.in
&inputpp
outdir = "/tmp/"
prefix = "silicon"
calculation = "eps"
/

&energy_grid
smeartype = "gauss"
intersmear = 0.2
wmin = 0.0
wmax = 30.0
nw = 500
/

The variables smeartype and intersmear define the numerical approximation used to represent the Dirac delta functions in the expression for ϵ2\epsilon_2 given above. The variables wmin, wmax and nw define the energy grid for the dielectric function. All the energy variables are in eV.

mpirun -np 4 epsilon.x -i epsilon.si.in > epsilon.si.out

We will see the results are saved in separate .dat files. We can plot the real (ϵ1\epsilon_1) and imaginary (ϵ2\epsilon_2) parts of dielectric constants:

import matplotlib.pyplot as plt
from matplotlib import rcParamsDefault
import numpy as np
%matplotlib inline
plt.rcParams["figure.dpi"]=150
plt.rcParams["figure.facecolor"]="white"

data_r = np.loadtxt('../src/silicon/epsr_silicon.dat')
data_i = np.loadtxt('../src/silicon/epsi_silicon.dat')
energy_r, epsilon_r = data_r[:, 0], data_r[:, 2]
energy_i, epsilon_i = data_i[:, 0], data_i[:, 2]

plt.plot(energy_r, epsilon_r, lw=1, label="$\\epsilon_1$")
plt.plot(energy_i, epsilon_i, lw=1, label="$\\epsilon_2$")
plt.xlim(0, 15)
plt.xlabel("Energy (eV)")
plt.ylabel("$\\epsilon_1~/~\\epsilon_2$")
plt.legend(frameon=False)
plt.show()
silicon-epsilon
warning

Ultra-soft pseudopotentials do not work with epsilon.x. Also note that the above example is not tested against the k-mesh. We usually need finer k-mesh for ϵ\epsilon to converge. By default the maximum number of k-points is set to 40000 in Quantum Espresso, if we need more k-points, we can change Modules/parameters.f90 and recompile Quantum Espresso.

Resources