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
&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
:
&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
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
() and imaginary () 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()
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
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.