[go: up one dir, main page]

0% found this document useful (0 votes)
307 views30 pages

Quantum ESPRESSO Post-Processing Guide

This document provides a hands-on tutorial for post-processing data from quantum espresso calculations. It includes exercises on calculating the density of states, projected density of states, charge density, bonding charge density, and simulating STM images. The exercises guide the user through setting up and running the relevant post-processing codes to analyze results and visualize key quantities like charge density. The tutorial also demonstrates using pwgui to conveniently set up and run self-consistent field and post-processing calculations for visualizing charge density with xcrysden.

Uploaded by

arnold
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
307 views30 pages

Quantum ESPRESSO Post-Processing Guide

This document provides a hands-on tutorial for post-processing data from quantum espresso calculations. It includes exercises on calculating the density of states, projected density of states, charge density, bonding charge density, and simulating STM images. The exercises guide the user through setting up and running the relevant post-processing codes to analyze results and visualize key quantities like charge density. The tutorial also demonstrates using pwgui to conveniently set up and run self-consistent field and post-processing calculations for visualizing charge density with xcrysden.

Uploaded by

arnold
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

HANDS-ON TUTORIAL ON THE

QUANTUM-ESPRESSO PACKAGE
POST PROCESSING OF DATA:
Density of states: DOS and PDOS
Charge density and bonding charge
STM image simulation

Cagliari September 2005

Guido Fratesi and Stefano Fabris


Getting started
Move to your own scratch directory:
cd /scratch/XXX/
Download this tutorial and the examples from:
http://[ESPRESSO-TUTORIAL-SITE]/
tutorial_postproc.pdf
http://[ESPRESSO-TUTORIAL-SITE]/
examples_postproc.tgz

Untar the example file and enter in the resulting directory:


tar zxvf examples_postproc.tgz
cd PostProcessing
Edit the environment_variables file:
e.g., TMP_DIR=/scratch/XXX/tmp/
Create the output directory as specified above:
mkdir /scratch/XXX/tmp/
Exercise 1: DOS of bulk Ni
Run the scf calculation for bulk Ni
run-ni.scf
What happens? Why does the program stop? See the output file:
more ni.scf.out
Add the required input
starting_magnetization(1)=0.0
run again the simulation. Copy the output file:
cp ni.scf.out ni.scf.out-0magn
Modify the starting magnetization in run-ni.scf
starting_magnetization(1)=0.7
run again the simulation.
run-ni.scf
Compare the total energies of the two simulations: do they
differ? Why? What about the magnetization?
Exercise 1: DOS
Edit the file run-ni.nscf:
increase the number of bands to 8: nbnd=8
and the set a denser k-point mesh: 12 12 12 0 0 0
Run the nscf calculation for bulk Ni: run-ni.nscf
Have a look at the input file for the DOS calculation:
more run-ni.dos
&inputpp
outdir=$TMP/DIR'
prefix='ni'
fildos='ni.dos'
Emin=5.0, Emax=25.0, DeltaE=0.1 in eV!
/
and run the DOS calculation:
run-ni.dos
Exercise 1: DOS
Have a look at the output file containing the DOS: ni.dos
more ni.dos

# E (eV) dosup(E) dosdw(E) Int dos(E)


5.000 -0.3790E-05 -0.2225E-05 -0.6015E-06
5.100 -0.1772E-04 -0.1149E-04 -0.3523E-05
5.200 -0.5902E-04 -0.4251E-04 -0.1368E-04
5.300 -0.1373E-03 -0.1105E-03 -0.3846E-04
5.400 -0.2211E-03 -0.1989E-03 -0.8046E-04
5.500 -0.2479E-03 -0.2498E-03 -0.1302E-03
5.600 -0.8376E-04 -0.1768E-03 -0.1563E-03
5.700 0.1017E-02 0.4889E-03 -0.5688E-05

Exercise 1: DOS
Plot the total density of states: gnuplot dos.gnu
Exercise 1: DOS
Plot the total density of states: gnuplot dos.gnu
Note difference between spin up and spin down components.

Plot the integrated charge


Exercise 1: DOS
Plot the integrated charge
Exercise 1: DOS
More input variables:
&inputpp
outdir=$TMP/DIR'
prefix='ni
ngauss= 0,1,-1,99
degauss= xx in Ry!
fildos='ni.dos'
Emin=5.0, Emax=25.0, DeltaE=0.1 in eV!
/
Exercise 2: PDOS of bulk Ni
Have a look at the input file for the PDOS calculation:
more run-pdos.in

&inputpp
outdir=$TMP_DIR/'
prefix='ni'
io_choice='both
Emin=5.0, Emax=25.0, DeltaE=0.1
ngauss=1, degauss=0.02
/
and run the PDOS calculation (projwfc.x):
run-ni.pdos
Exercise 2: PDOS
Have a look at the output file ni.pdos.out:
more ni.pdos.out

Lowdin Charges:

Atom # 1: total charge = 9.881


spin up = 5.239
spin down = 4.6426
polarization = 0.5965
Spilling Parameter: 0.0118
Exercise 2: PDOS
Have a look at the output files containing the s and d
components of the PDOS:
more ni.pdos_atm#1(Ni)_wfc#1(s)
more ni.pdos_atm#1(Ni)_wfc#2(d)

# E (eV) ldosup(E) ldosdw(E) pdosup(E) pdosdw(E)


5.000 -0.378E-05 -0.222E-05 -0.378E-05 -0.222E-05
5.100 -0.177E-04 -0.115E-04 -0.177E-04 -0.115E-04
5.200 -0.589E-04 -0.425E-04 -0.589E-04 -0.425E-04
5.300 -0.137E-03 -0.110E-03 -0.137E-03 -0.110E-03
5.400 -0.221E-03 -0.199E-03 -0.221E-03 -0.199E-03
5.500 -0.247E-03 -0.249E-03 -0.247E-03 -0.249E-03
5.600 -0.831E-04 -0.176E-03 -0.831E-04 -0.176E-03
5.700 0.102E-02 0.489E-03 0.102E-02 0.489E-03
5.800 0.491E-02 0.331E-02 0.491E-02 0.331E-02
5.900 0.126E-01 0.996E-02 0.126E-01 0.996E-02
Exercise 2: PDOS
Plot the s and d components of the DOS: gnuplot
dos.gnu
Exercise 3: Charge density of Si
Run the scf calculation for bulk Si:
run-si.scf
Modify the input file for the post processing run-si.pp for
calculating the total charge density. First modify the inputpp
namelist:
&inputpp
prefix = 'si'
outdir = '/tmp/',
filplot = 'si.charge'
plot_num= XXX
/
see espresso/Docs/INPUT_PP for the value of plot_num
corresponding to the charge density.
Exercise 3: Charge density of Si
Then modify the plot namelist to convert data in a format
compatible with the selected visualization packages (plotrho,
gnuplot, XCrysDen... Now use plotrho):
vi run-si.pp
&plot
nfile=1
filepp(1)='si.charge'
iflag=XXX 2D plot
output_format=XXX plotrho format
e1(1)=1.0, e1(2)=0.0, e1(3)=0.0,
e2(1)=0.0, e2(2)=1.0, e2(3)=0.0,
x0(1)=0.0, x0(2)=0.0, x0(3)=0.0,
nx=40, ny=40
fileout='si.charge001.dat'
/ 001 plane
Run the calculation: run-si.pp
Exercise 3: Charge density of Si
Then modify the plot namelist to convert data in a format
compatible with the selected visualization packages (plotrho,
gnuplot, XCrysDen... Now use plotrho):
vi run-si.pp
&plot
nfile=1
filepp(1)='si.charge'
iflag=2 2D plot
output_format=2 plotrho format
e1(1)=1.0, e1(2)=0.0, e1(3)=0.0,
e2(1)=0.0, e2(2)=1.0, e2(3)=0.0,
x0(1)=0.0, x0(2)=0.0, x0(3)=0.0,
nx=40, ny=40
fileout='si.charge001.dat'
/ 001 plane
Run the calculation: run-si.pp
Exercise 3: Charge density of Si
Visualize the charge on the (001) plane by using the program
plotrho.x (included in espresso):
run-si.plot
input file > si.charge001.dat
output file > si.charge001.ps
Logarithmic scale (y/n)? > n
min, max, # of levels > 0.01 0.08 8
gv si.charge001.ps
Exercise 3: Charge density of Si
Calculate and plot the charge density of Si on the (110) plane:
cp run-si.pp to run-si.pp110
Modify the input file so that to define the (110) plane
e1(1)=?, e1(2)=?, e1(3)=?,
e2(1)=?, e2(2)=?, e2(3)=?,

fileout='si.charge110.dat'
Run the pp.x calculation: run-si.pp110
Run the plotrho.x program and visualize the result: run-si.plot
Exercise 4: Bonding charge density
Bonding charge density of an O atom on the Al (001) surface

Run the following script: run-Al-O-OAl-scf-pp &


It follows the step seen in Ex 3 to calculate the charge densities of:
1) an O atom adsorbed on an Al(001) slab,
2) an Al(001) slab,
3) an O atom.

Compare the atomic coordinates


of the O atom in the file
O.scf.out with those in
OAl.scf.out. What do you
notice? Why are they so?
Exercise 4: Bonding charge density
Use the program chdens.x to subtract the charge densities of the Al
(001) slab and of the O atom from the that one of the complete
system O/Al(001): (file: run-OAl.chdiff)
&input
nfile=3
filepp(1)='???', weight(1)=??? The first file is
filepp(2)='???', weight(2)=??? the one for the
filepp(3)='???', weight(3)=??? O/Al(001) system
iflag=?? 3D
output_format=?? XCrySDen
fileout='OAl.chdensDIFF.xsf'
/
Run the calculation: run-chdens.diff
Exercise 4: Bonding charge density
Visualizing the output file with XCrysDen:
xcrysden --xsf OAl.chdensDIFF.xsf

Hint: see the isosurfaces by selecting: tools - datagrid - ok


- isovalue=0.003 - render+/-isovalue - submit
Exercise 5: STM simulation
Simulating the STM image of the AlAs (110) surface

Run the scf calculation for the AlAs (110) surface


run-AlAs.scf
Run the non scf calculation for the AlAs (110) surface:
run-AlAs.nscf
Exercise 5: STM simulation
Set up the input file for the post processing; inputpp namelist
(see run-AlAs.stm):
&inputpp
prefix = 'AlAs110'
outdir='$TMP_DIR/',
filplot = 'AlAs-1.0'
sample_bias=-0.0735d0, in Ry!
stm_wfc_matching=.false.,
plot_num= XXX
/
see O-sesame/pwdocs/INPUT_PP

How to choose the sample_bias?


Exercise 5: STM simulation

How to choose the sample_bias? What is the DOS?

Fermi energy

Exercise: image empty states


Exercise 5: STM simulation
Set plot namelist to produce a 3D file comptatible with the
XCrySDen package:
vi run-AlAs.stm
...
&plot
nfile=1
filepp(1)='AlAs-1.0'
weight(1)=1.0
iflag=3 3D plot
output_format=5 XCrysDen format
fileout='AlAs110-1.0.xsf'
/
Exercise 5: STM simulation
Run the post-processing simulation:
run-AlAs.stm

Visualize the output file with the XCrysDen package:


xcrysden xsf AlAs110-1.0.xsf
Exercise 6: Si charge (using PWgui)

from SCF calculation of Si bulk to visualization of its charge


density with xcrysden. Use pwgui to construct
appropriate input files and run the necessary calculations:
SCF calculation: use pw.x program
post-processing: use pp.x program (select the charge-
density, and transform the charge-density to XSF format,
suitable for xcrysden)
visualize the calculated charge density stored in file.xsf
with xcrysden
Input for pw.x: SCF calculation
Input for pp.x: extract the charge density
Input for pp.x: generate file for XCrySDen

You might also like