Header Ads Widget

Ab initio Calculations Using Q-Espresso Code

Last Posts

10/recent/ticker-posts

How to calculate the Band Structure of Silicon

 We need 4 files

algerien1970@linux-wipm:~/abinitio/QE-tutorials/Si-bands> ls
si.band2.in  si.bands.in  Si.pz-vbc.UPF  si.scf.in

si.scf.in

 &control
    prefix='silicon',
    ! this is a comment: you can comment out variables
    ! set pseudo_dir and outdir to suitable directories
    pseudo_dir = './',
    outdir='Si_OUT/'
 /
 &system   
    ibrav=  2, celldm(1) =10.2, nat=  2, ntyp= 1,
    ecutwfc = 12.0,
 /
 &electrons
 /
ATOMIC_SPECIES
 Si  28.086  Si.pz-vbc.UPF
ATOMIC_POSITIONS alat
 Si 0.00 0.00 0.00
 Si 0.25 0.25 0.25
! this is a comment
K_POINTS tpiba
# this is also a comment: next line, number of k-points
 2
 0.25 0.25 0.25  1.0
 0.25 0.25 0.75  3.0
# K_POINTS automatic
#   2 2 2 1 1 1

si.bands.in

 &control
calculation='bands'
prefix='silicon',
pseudo_dir = './',
outdir='Si_OUT/'
/
&system
ibrav= 2, celldm(1) =10.7, nat= 2, ntyp= 1,
ecutwfc = 20.0,
nbnd = 8
/
&electrons
/
ATOMIC_SPECIES
Si 28.086 Si.pz-vbc.UPF
ATOMIC_POSITIONS alat
Si 0.00 0.00 0.00
Si 0.25 0.25 0.25
K_POINTS tpiba
# tpiba = k-points in units of 2pi/a
# number of k-points
36
# kx, ky, kz, wk (wk=symmetry weight is ignored in bands calculations)
0.5 0.5 0.5 1
0.4 0.4 0.4 2
0.3 0.3 0.3 3
0.2 0.2 0.2 4
0.1 0.1 0.1 5
0.0 0.0 0.0 6
0.0 0.0 0.1 7
0.0 0.0 0.2 8
0.0 0.0 0.3 9
0.0 0.0 0.4 10
0.0 0.0 0.5 11
0.0 0.0 0.6 12
0.0 0.0 0.7 13
0.0 0.0 0.8 14
0.0 0.0 0.9 15
0.0 0.0 1.0 16
0.0 0.1 1.0 17
0.0 0.2 1.0 18
0.0 0.3 1.0 19
0.0 0.4 1.0 20
0.0 0.5 1.0 21
0.0 0.6 1.0 22
0.0 0.7 1.0 23
0.0 0.8 1.0 24
0.0 0.9 1.0 25
0.0 1.0 1.0 26
0.0 0.9 0.9 27
0.0 0.8 0.8 28
0.0 0.7 0.7 29
0.0 0.6 0.6 30
0.0 0.5 0.5 31
0.0 0.4 0.4 32
0.0 0.3 0.3 33
0.0 0.2 0.2 34
0.0 0.1 0.1 35
0.0 0.0 0.0 36
 
si.band2.in
&bands
    ! prefix must be the same as in the band calculation
    prefix  = 'silicon'
    ! outdir must be the same as in the band calculation
    outdir='Si_OUT/'
    filband = 'sibands.dat'
    lsym=.true.
 /

Si.pz-vbc.UPF

You can download the file using the following command
$ wget https://www.quantum-espresso.org/upf_files/Si.pz-vbc.UPF --no-check-certificate


1- Doing SCF calculation

 Before we can run bands calculation, we need to perform single-point self consistent field calculation.

algerien1970@linux-wipm:~/abinitio/QE-tutorials/Si-bands> pw.x < si.scf.in |tee si.scf.out     

.

.

The total energy is the sum of the following terms:
one-electron contribution = 4.83341232 Ry
hartree contribution = 1.08489849 Ry
xc contribution = -4.81304671 Ry
ewald contribution = -16.89975858 Ry

convergence has been achieved in 4 iterations

Writing output data file OUT_SCF/silicon.save/

init_run : 0.03s CPU 0.62s WALL ( 1 calls)
electrons : 0.03s CPU 0.11s WALL ( 1 calls)

Called by init_run:
wfcinit : 0.00s CPU 0.30s WALL ( 1 calls)
potinit : 0.00s CPU 0.00s WALL ( 1 calls)
hinit0 : 0.02s CPU 0.25s WALL ( 1 calls)

Called by electrons:
c_bands : 0.02s CPU 0.04s WALL ( 5 calls)
sum_band : 0.01s CPU 0.02s WALL ( 5 calls)
v_of_rho : 0.00s CPU 0.00s WALL ( 5 calls)
mix_rho : 0.00s CPU 0.00s WALL ( 5 calls)

Called by c_bands:
init_us_2 : 0.00s CPU 0.00s WALL ( 22 calls)
cegterg : 0.02s CPU 0.04s WALL ( 10 calls)

Called by *egterg:
cdiaghg : 0.00s CPU 0.29s WALL ( 26 calls)
h_psi : 0.02s CPU 0.03s WALL ( 30 calls)
g_psi : 0.00s CPU 0.00s WALL ( 18 calls)

Called by h_psi:
h_psi:calbec : 0.00s CPU 0.01s WALL ( 30 calls)
vloc_psi : 0.01s CPU 0.02s WALL ( 30 calls)
add_vuspsi : 0.00s CPU 0.00s WALL ( 30 calls)

General routines
calbec : 0.00s CPU 0.01s WALL ( 30 calls)
fft : 0.00s CPU 0.21s WALL ( 15 calls)
ffts : 0.00s CPU 0.00s WALL ( 5 calls)
fftw : 0.02s CPU 0.02s WALL ( 284 calls)

Parallel routines

PWSCF : 0.11s CPU 1.32s WALL


This run was terminated on: 15:25: 6 25Dec2021

=------------------------------------------------------------------------------=
JOB DONE.
=------------------------------------------------------------------------------=

2- Doing Band Structure Calculation

Next step is our band calculation (non-self consistent field) calculation. Now we can specify nbnd and denser k-points grid.  


algerien1970@linux-wipm:~/abinitio/QE-tutorials/Si-bands> pw.x < si.bands.in |tee si.bands.out

.

.

Writing output data file Si_OUT/silicon.save/

init_run : 0.02s CPU 0.13s WALL ( 1 calls)
electrons : 1.98s CPU 2.10s WALL ( 1 calls)

Called by init_run:
wfcinit : 0.00s CPU 0.00s WALL ( 1 calls)
potinit : 0.00s CPU 0.00s WALL ( 1 calls)
hinit0 : 0.02s CPU 0.13s WALL ( 1 calls)

Called by electrons:
c_bands : 1.98s CPU 2.10s WALL ( 1 calls)
v_of_rho : 0.00s CPU 0.00s WALL ( 1 calls)

Called by c_bands:
init_us_2 : 0.00s CPU 0.00s WALL ( 36 calls)
cegterg : 1.83s CPU 1.86s WALL ( 42 calls)

Called by *egterg:
cdiaghg : 0.09s CPU 0.10s WALL ( 683 calls)
h_psi : 1.71s CPU 1.82s WALL ( 725 calls)
g_psi : 0.02s CPU 0.02s WALL ( 647 calls)

Called by h_psi:
h_psi:calbec : 0.02s CPU 0.03s WALL ( 725 calls)
vloc_psi : 1.66s CPU 1.77s WALL ( 725 calls)
add_vuspsi : 0.02s CPU 0.02s WALL ( 725 calls)

General routines
calbec : 0.02s CPU 0.02s WALL ( 725 calls)
fft : 0.00s CPU 0.11s WALL ( 3 calls)
fftw : 1.52s CPU 1.63s WALL ( 7908 calls)
davcio : 0.00s CPU 0.00s WALL ( 72 calls)

Parallel routines

PWSCF : 2.14s CPU 2.76s WALL


This run was terminated on: 15:38:12 25Dec2021

=------------------------------------------------------------------------------=
JOB DONE.
=------------------------------------------------------------------------------=

3. Plotting Band Structure

The bands are now calculated. We need some post processing in order to obtain the data in more usable manner.

There are various ways to plot the band structure. The simplest: use command bands.x with the following input (outdir and prefix as in previous steps):
&bands
prefix=’...’, outdir=’...’, filband = ’sibands.dat’, lsym=.true.
/

algerien1970@linux-wipm:~/abinitio/QE-tutorials/Si-bands> bands.x < si.band2.in |tee si.band2.out   
.

.

Band symmetry, O_h (m-3m) point group:

e( 1 - 1) = -5.80076 eV 1 --> A_1g G_1 G_1+
e( 2 - 4) = 6.26585 eV 3 --> T_2g G_25' G_5+
e( 5 - 7) = 8.82196 eV 3 --> T_1u G_15 G_4-
e( 8 - 8) = 9.73799 eV 1 --> A_2u G_2' G_2-

**************************************************************************

BANDS : 0.89s CPU 1.29s WALL


This run was terminated on: 16: 8: 4 25Dec2021

=------------------------------------------------------------------------------=
JOB DONE.
=------------------------------------------------------------------------------=

Two files are produced: sibands.dat.gnu, directly plottable with gnuplot, and sibands.dat, for further processing by auxiliary command plotband.x.


If option lsym=.true, bands.x performs a symmetry analysis. An additional file sibands.dat.rep is generated, containing information on symmetry labels of the various bands.
If option lsym=.true, bands.x does not perform the symmetry analysis.

algerien1970@linux-wipm:~/abinitio/QE-tutorials/Si-bands> plotband.x
 
 Input file > sibands.dat
Reading 8 bands at 36 k-points
Range: -5.8010 16.4170eV Emin, Emax, [firstk, lastk] > -6.30 10.30
high-symmetry point: 0.5000 0.5000 0.5000 x coordinate 0.0000
high-symmetry point: 0.0000 0.0000 0.0000 x coordinate 0.8660
high-symmetry point: 0.0000 0.0000 1.0000 x coordinate 1.8660
high-symmetry point: 0.0000 0.5000 1.0000 x coordinate 2.3660
high-symmetry point: 0.0000 1.0000 1.0000 x coordinate 2.8660
high-symmetry point: 0.0000 0.0000 0.0000 x coordinate 4.2802
output file (gnuplot/xmgr) > sibands.plot
bands in gnuplot/xmgr format written to file sibands.plot
output file (ps) >
stopping ...

 
gnuplot> plot "sibands.dat.gnu" using 1:2 with lines



 Reference: Using PWscf: basics (write-up, exercises, March 2018)

Post a Comment

0 Comments