SnO2 is a crystal which have rutile structure.
Original files are in https://gist.github.com/t-nissie/662ce194be356b5456c563195a052427/ .
- Clone files in the gist as
git clone https://gist.github.com/662ce194be356b5456c563195a052427.git SnO2-LDA-vc-relax-03-gist
cd SnO2-LDA-vc-relax-03-gist
.- Get
O.pw-mt_fhi.UPF
andSn.pw-mt_fhi.UPF
form http://www.quantum-espresso.org/pseudopotentials/ . - Make symlinks to
bands.x
,dos.x
,plotband.x
andpw.x
in the current directory, i.e.ln -s /SOMEWHERE/espresso-5.4.0/bin/bands.x
.
Using an input file of rutile.pw.in, we perform optimization of cell parameters and atomic positions. If you have 12 cores in your computer,
$ mpirun -np 12 ./pw.x -in rutile.pw.in | tee rutile.pw.out
$ grep 'unit-cell volume ' rutile.pw.out | tail -1
unit-cell volume = 429.5592 (a.u.)^3
$ grep '! total energy' rutile.pw.out | tail -1
! total energy = -142.69934279 Ry
$ grep -B13 'End final coordinates' rutile.pw.out
CELL_PARAMETERS (alat= 8.84000000)
0.974988481 0.000000000 0.000000000
0.000000000 0.974988481 0.000000000
0.000000000 0.000000000 0.654134780
ATOMIC_POSITIONS (crystal)
Sn 0.000000000 0.000000000 0.000000000
Sn 0.500000000 0.500000000 0.500000000
O 0.305707826 0.305707826 0.000000000
O 0.694292174 0.694292174 0.000000000
O 0.194292174 0.805707826 0.500000000
O 0.805707826 0.194292174 0.500000000
End final coordinates
Convert the unit of bulk modulus by yourself.
$ ./rutile.pw.sh
$ gnuplot eos.gp
:
Final set of parameters Asymptotic Standard Error
======================= ==========================
B0 = 0.01641 +/- 4.396e-06 (0.02679%)
B0p = 4.99822 +/- 0.02974 (0.595%)
V0 = 430.014 +/- 0.004041 (0.0009397%)
Emin = -142.699 +/- 1.232e-06 (8.637e-07%)
$ gv -watch eos.eps &
If you do not have gv(1), you can use evince(1) instead for preview of generated eos.eps
.
Although the last calculation with
rutile.pw.in gives
SCF results in its end, we perform an SCF calculation
with rutile.scf.in.
Optimized cell parameters and atom positions were copied from rutile.pw.out
into rutile.scf.in.
$ mpirun -np 12 ./pw.x -in rutile.scf.in | tee rutile.scf.out
Confirm that stress and forces are small enough.
You will get a directory of rutile.save/
.
In rutile.bands.in, crystal_b is used. How to write input files of rutile.bands.in and bands.in is described around
- http://www.stat.phys.titech.ac.jp/SATL_qe_tutorial/graphene_banddos.html (in Japanese)
- http://www.quantum-espresso.org/wp-content/uploads/Doc/INPUT_PW.html#idm6080432
- http://www.quantum-espresso.org/wp-content/uploads/Doc/INPUT_BANDS.html .
Anyway, we do non-SCF calculations at each k-point along A-M-Gamma-X-M-Gamma-Z-R-A-Z with pw.x
,
and then we execute bands.x
with bands.sh as
$ submit EJCF general -jcf rutile.bands.jcf
$ gv rutile.bands.ps &
If you do not have gv(1), you can use evince(1) instead for preview of generated rutile.bands.ps
.
$ submit EJCF general -jcf rutile.dos.jcf
$ gnuplot
gnuplot> set ytics 2
gnuplot> plot [0:10] [-10:14] 'rutile.dos' u 2:($1-7.2) w l lw 2
Plotted electronic dispersion and DOS of SnO2.
Spikes in the band plot may be due to a bug in pw.x
.
- To check convergence w.r.t. k-points
- To check convergence w.r.t. kinetic energy cutoff
- J. Robertson: J. Phys. C: Solid State Phys. 12, 4767 (1979).
Thank you for your time and thank you especially for the tutorial (very detailed).
I have a question about the level of Fermi:
You had drawn the two graphs "DOS + Bands", with a displacement (with the shifting ) in the graphs with a value equal to the value of Fermi.
I calculated using your INPUT files, I found fremi = ### 9.1874 eV
but I believe that your Fermi value is a little lower. What is the Fermi value of your result ??