We will do calculations for 3 non bulk structures: graphene, graphane and graphene oxide
1. Graphene
a. Presentation
• Graphene has a 2-atom hexagonal unit cell in the xy plane:
ibrav=4, celldm(1)=4.6542890,
celldm(3)=some suitably large value, e.g. 3.0)
(remember: celldm(1) in Bohr radii, celldm(3)=c/a;
alternatively: A=2.463, C=7.389, in Å)
• Atomic positions:
ATOMIC POSITIONS (alat)
C 0.000000 0.000000 0.000000
C 0.000000 0.5773503 0.000000
or, equivalently:
ATOMIC POSITIONS (crystal)
C 0.000000 0.000000 0.000000
C 0.333333 0.6666666 0.000000
• K-points: use a dense grid in the xy plane only, e.g.
K POINTS (automatic)
9 9 1 0 0 0
(a uniform 9×9×1 grid, centered on k = (0, 0, 0) )
• Run the scf calculation for graphene, file graphene.in (or graphene-alt.in), analyze
the output.
We need 2 files
graphene.in
&control
calculation='scf',
prefix='Graphene_1x1_PBE',
pseudo_dir = './',
outdir='./OUT_GRAPHENE',
/
&system
ibrav= 4, celldm(1) =4.6542890, celldm(3)=3.0, nat= 2, ntyp= 1,
ecutwfc =20, ecutrho =200,
occupations='smearing', smearing='gaussian', degauss=0.01,
/
&electrons
conv_thr = 1.0d-8
/
ATOMIC_SPECIES
C 12.0107 C.pbe-rrkjus.UPF
ATOMIC_POSITIONS {alat}
C 0.000000 0.000000 0.000000
C 0.000000 0.5773503 0.000000
K_POINTS {automatic}
9 9 1 0 0 0
or graphene-alt.in
&control
calculation='scf',
prefix='Graphene_1x1_PBE',
pseudo_dir = './',
outdir='./OUT_GRAPHENE',
/
&system
ibrav= 4, a=2.463, c=7.389, celldm(3)=3.0, nat= 2, ntyp= 1,
ecutwfc =20, ecutrho =200,
occupations='smearing', smearing='gaussian', degauss=0.01,
/
&electrons
conv_thr = 1.0d-8
/
ATOMIC_SPECIES
C 12.0107 C.pbe-rrkjus.UPF
ATOMIC_POSITIONS {crystal}
C 0.0000000 0.0000000 0.000000
C 0.3333333 0.6666666 0.000000
K_POINTS {automatic}
9 9 1 0 0 0
C.pbe-rrkjus.UPF
You can download the file using the following command
$ wget https://www.quantum-espresso.org/upf_files/C.pbe-rrkjus.UPF --no-check-certificate
b. SCF calculation
algerien1970@linux-wipm:~/abinitio/QE-tutorials/Graphene> pw.x < graphene.in |tee graphene.out
.
the Fermi energy is 0.9191 ev
! total energy = -22.76551949 Ry
estimated scf accuracy < 4.3E-10 Ry
smearing contrib. (-TS) = -0.00027861 Ry
internal energy E=F+TS = -22.76524088 Ry
The total energy is F=E-TS. E is the sum of the following terms:
one-electron contribution = -56.38824991 Ry
hartree contribution = 30.33115909 Ry
xc contribution = -7.01815938 Ry
ewald contribution = 10.31000931 Ry
convergence has been achieved in 6 iterations
Writing output data file ./OUT_GRAPHENE/Graphene_1x1_PBE.save/
init_run : 0.16s CPU 1.17s WALL ( 1 calls)
electrons : 0.80s CPU 0.94s WALL ( 1 calls)
Called by init_run:
wfcinit : 0.04s CPU 0.34s WALL ( 1 calls)
potinit : 0.04s CPU 0.25s WALL ( 1 calls)
hinit0 : 0.07s CPU 0.49s WALL ( 1 calls)
Called by electrons:
c_bands : 0.48s CPU 0.59s WALL ( 6 calls)
sum_band : 0.13s CPU 0.14s WALL ( 6 calls)
v_of_rho : 0.15s CPU 0.32s WALL ( 7 calls)
newd : 0.06s CPU 0.08s WALL ( 7 calls)
mix_rho : 0.01s CPU 0.01s WALL ( 6 calls)
Called by c_bands:
init_us_2 : 0.02s CPU 0.02s WALL ( 156 calls)
cegterg : 0.45s CPU 0.56s WALL ( 72 calls)
Called by *egterg:
cdiaghg : 0.04s CPU 0.40s WALL ( 343 calls)
h_psi : 0.39s CPU 0.41s WALL ( 355 calls)
s_psi : 0.01s CPU 0.01s WALL ( 355 calls)
g_psi : 0.01s CPU 0.01s WALL ( 271 calls)
Called by h_psi:
h_psi:calbec : 0.01s CPU 0.02s WALL ( 355 calls)
vloc_psi : 0.37s CPU 0.37s WALL ( 355 calls)
add_vuspsi : 0.01s CPU 0.01s WALL ( 355 calls)
General routines
calbec : 0.01s CPU 0.03s WALL ( 427 calls)
fft : 0.05s CPU 0.62s WALL ( 88 calls)
ffts : 0.00s CPU 0.04s WALL ( 13 calls)
fftw : 0.38s CPU 0.39s WALL ( 3992 calls)
interpolate : 0.01s CPU 0.05s WALL ( 7 calls)
Parallel routines
PWSCF : 1.03s CPU 2.85s WALL
This run was terminated on: 19:39: 3 27Dec2021
=------------------------------------------------------------------------------=
JOB DONE.
=------------------------------------------------------------------------------=
c. Band calculation
Can you reproduce the “cones” of the band structure at the Fermi surface? The most difficult (?) part is to figure out a suitable path of k-points.
You may either use the “k-path selection” tool of xcrysden ...
.... or the SeeK-path web site at http://materialscloud.org/tools/seekpath:
We have used the site https://www.materialscloud.org/work/tools/seekpath
Click on browse and the input file graphene.in and click on calculate my structure.
We will get the following picture
From the picture we can choose the suitable path and the coordinates of points of high symmetry
We have chosen the following path
0.0000000000 0.0000000000 0.0000000000 G
0.3333333333 0.3333333333 0.0000000000 K
0.5000000000 0.3333333333 0.0000000000 M
0.0000000000 0.0000000000 0.0000000000 G
and we have the graphene.bands.in file for bands calculation
graphene.bands.in
&CONTROL
calculation='bands',
prefix='Graphene_1x1_PBE',
pseudo_dir = './',
outdir='./OUT_GRAPHENE',
/
&SYSTEM
ibrav= 4, celldm(1) =4.6542890, celldm(3)=3.0, nat= 2, ntyp= 1,
ecutwfc =20, ecutrho =200,
occupations='smearing', smearing='gaussian', degauss=0.01,
/
&ELECTRONS
conv_thr = 1.0d-8
/
ATOMIC_SPECIES
C 12.0107 C.pbe-rrkjus.UPF
ATOMIC_POSITIONS {alat}
C 0.000000 0.000000 0.000000
C 0.000000 0.5773503 0.000000
K_POINTS {crystal_b}
4
# Gamma-K-M-Gamma
0.0000000000 0.0000000000 0.0000000000 20 ! G
0.3333333333 0.3333333333 0.0000000000 10 ! K
0.0000000000 0.5000000000 0.0000000000 17 ! M
0.0000000000 0.0000000000 0.0000000000 0 ! G
algerien1970@linux-wipm:~/abinitio/QE-tutorials/Graphene> pw.x < graphene.bands.in |tee graphene.bands.out
.
Writing output data file ./OUT_GRAPHENE/Graphene_1x1_PBE.save/
init_run : 0.10s CPU 0.56s WALL ( 1 calls)
electrons : 0.23s CPU 0.72s WALL ( 1 calls)
Called by init_run:
wfcinit : 0.00s CPU 0.00s WALL ( 1 calls)
potinit : 0.03s CPU 0.11s WALL ( 1 calls)
hinit0 : 0.06s CPU 0.32s WALL ( 1 calls)
Called by electrons:
c_bands : 0.23s CPU 0.72s WALL ( 1 calls)
v_of_rho : 0.02s CPU 0.03s WALL ( 1 calls)
newd : 0.01s CPU 0.04s WALL ( 1 calls)
Called by c_bands:
init_us_2 : 0.00s CPU 0.00s WALL ( 5 calls)
cegterg : 0.21s CPU 0.32s WALL ( 7 calls)
Called by *egterg:
cdiaghg : 0.02s CPU 0.44s WALL ( 111 calls)
h_psi : 0.17s CPU 0.22s WALL ( 118 calls)
s_psi : 0.00s CPU 0.00s WALL ( 118 calls)
g_psi : 0.00s CPU 0.00s WALL ( 106 calls)
Called by h_psi:
h_psi:calbec : 0.01s CPU 0.05s WALL ( 118 calls)
vloc_psi : 0.16s CPU 0.16s WALL ( 118 calls)
add_vuspsi : 0.00s CPU 0.00s WALL ( 118 calls)
General routines
calbec : 0.00s CPU 0.05s WALL ( 118 calls)
fft : 0.01s CPU 0.24s WALL ( 12 calls)
ffts : 0.00s CPU 0.03s WALL ( 1 calls)
fftw : 0.14s CPU 0.15s WALL ( 1202 calls)
interpolate : 0.00s CPU 0.03s WALL ( 1 calls)
davcio : 0.00s CPU 0.00s WALL ( 10 calls)
Parallel routines
PWSCF : 0.48s CPU 2.30s WALL
This run was terminated on: 20:41: 4 28Dec2021
=------------------------------------------------------------------------------=
JOB DONE.
=------------------------------------------------------------------------------=
Now we plot the band structure using the following input file
graphene.band2.in
&bands
! prefix must be the same as in the band calculation
prefix = 'Graphene_1x1_PBE'
! outdir must be the same as in the band calculation
outdir='OUT_GRAPHENE/'
filband = 'graphene-bands.dat'
lsym=.true.
/
algerien1970@linux-wipm:~/abinitio/QE-tutorials/Graphene> bands.x < graphene.band2.in |tee graphene.band2.out
.
.
the symmetry operations in each class and the name of the first element:
E 1
2C6 5 6
2C3 7 8
C2 2
3C2' 4 12 11
3C2'' 3 9 10
i 13
2S3 17 18
2S6 19 20
s_h 14
3s_d 16 24 23
3s_v 15 21 22
Band symmetry, D_6h(6/mmm) point group:
e( 1 - 1) = -18.66768 eV 1 --> A_1g
e( 2 - 2) = -6.72117 eV 1 --> A_2u
e( 3 - 4) = -2.15231 eV 2 --> E_2g
e( 5 - 5) = 3.76534 eV 1 --> A_1g
e( 6 - 6) = 7.13200 eV 1 --> A_2u
e( 7 - 8) = 9.25251 eV 2 --> E_1u
**************************************************************************
BANDS : 0.86s CPU 1.10s WALL
This run was terminated on: 20:58:45 28Dec2021
=------------------------------------------------------------------------------=
JOB DONE.
=------------------------------------------------------------------------------=
algerien1970@linux-wipm:~/abinitio/QE-tutorials/Graphene> plotband.x
Input file > graphene-bands.dat
Reading 8 bands at 5 k-points
Range: -18.6690 13.6490eV Emin, Emax, [firstk, lastk] > -18.6690 13.6490
high-symmetry point: 0.0000 0.0000 0.1667 x coordinate 0.0000
high-symmetry point: 0.0000 0.0000 0.0000 x coordinate 0.1667
high-symmetry point: 0.3333 0.5774 0.0000 x coordinate 0.8333
high-symmetry point: 0.5000 0.6736 0.0000 x coordinate 1.0258
high-symmetry point: 0.0000 0.0000 0.0000 x coordinate 1.8647
output file (gnuplot/xmgr) > graphene-bands.plot
bands in gnuplot/xmgr format written to file graphene-bands.plot
output file (ps) >
stopping ...
gnuplot> plot "graphene-bands.dat.gnu" using 1:2 with lines
d. Graphene (3×3 supercell)
• The previous calculation is periodic in the xy plane, has a slab geometry in the z direction, with a large vacuum space separating layers and a fictitious periodicity (no crystalline states). We want now to build a supercell in the xy plane.
• Let us build a 3 × 3 supercell in the xy, file graphene3x3.in:
– Primitive lattice vectors a and b are multiplied by 3: celldm(1)=13.9628670
– Primitive lattice vector c remains the same, so: celldm(3)=1.0. If you want the same k-point grid, just use K POINTS (automatic) with 3 3 1 0 0 0 grid
– Reciprocal lattice vectors in the xy plane are divided by 3 (look at the output)
– There are 9 times the atoms of the original unit cell (that is, 18 atoms)
– There are ∼ 9 times more Kohn-Sham energies per k-point
• Provided that the two k-point grids are equivalent (please check!):
– The energy of the supercell E SC = 9E U C almost exactly (UC=unit cell)
– all SC (ki ) are (almost) equal to some U C (kj ) if kj refolds into ki
graphene3x3.in
&control
calculation='scf',
restart_mode='from_scratch',
prefix='Graphene_3x3_PBE',
tprnfor =.t.,
pseudo_dir = '../pseudo',
outdir='../tmp',
/
&system
ibrav= 4, celldm(1) =13.9628670, celldm(3)=1.0, nat=18, ntyp= 1,
ecutwfc =20, ecutrho =200 ,
occupations='smearing', smearing='gaussian', degauss=0.01,
/
&electrons
conv_thr = 1.0d-8
/
ATOMIC_SPECIES
C 12.0107 C.pbe-rrkjus.UPF
ATOMIC_POSITIONS {angstrom}
C 0.0000000000 0.0000000000 0.0
C -1.2314742556 2.1329759788 0.0
C -2.4629485111 4.2659519577 0.0
C 2.4629485111 0.0000000000 0.0
C 1.2314742556 2.1329759788 0.0
C 0.0000000000 4.2659519577 0.0
C 4.9258970222 0.0000000000 0.0
C 3.6944227666 2.1329759788 0.0
C 2.4629485111 4.2659519577 0.0
C 0.0000000000 1.4219840618 0.0
C -1.2314742556 3.5549600406 0.0
C -2.4629485111 5.6879360194 0.0
C 2.4629485111 1.4219840618 0.0
C 1.2314742556 3.5549600406 0.0
C 0.0000000000 5.6879360194 0.0
C 4.9258970222 1.4219840618 0.0
C 3.6944227666 3.5549600406 0.0
C 2.4629485111 5.6879360194 0.0
K_POINTS {automatic}
3 3 1 0 0 0
2. Graphane
• Graphane is like graphene, with a H atom bound to each C atom, on opposite sides. You need to optimize atomic positions, i.e. find the minimum-energy structure (zero forces).
• File graphane.in is a modified version of graphene.in, with
– calculation=’relax’ for structural optimization, new namelist IONS
– ntyp=2 (2 types of atoms), nat=4 (4 atoms in the cell)
– ATOMIC POSITION card with 4 initial positions (C-H distance ∼ 1 Å)
– ATOMIC SPECIES card with 2 species of atoms and pseudopotentials
• Run the structural optimization, analyze the output: it consists of several scf steps,
followed by calculation of forces and generation of new positions
Geometrical optimization
graphane.in
&control
calculation='relax',
restart_mode='from_scratch',
prefix='Graphane_1x1_PBE',
pseudo_dir = './',
outdir='./OUT_GRAPHANE',
/
&system
ibrav= 4, celldm(1) =4.6542890, celldm(3)=3, nat= 4, ntyp= 2,
ecutwfc =20, ecutrho =200 ,
occupations='smearing', smearing='gaussian', degauss=0.01,
/
&electrons
conv_thr = 1.0d-8
/
&ions
/
ATOMIC_SPECIES
C 12.0107 C.pbe-rrkjus.UPF
H 1.00007 H.pbe-rrkjus.UPF
ATOMIC_POSITIONS {crystal}
C 0.000000 0.000000 0.500000
C 0.333333 0.666667 0.500000
H 0.000000 0.000000 0.900000
H 0.333333 0.666667 0.900000
K_POINTS {automatic}
9 9 1 0 0 0
H.pbe-rrkjus.UPF
You can download the file using the following command
$ wget https://www.quantum-espresso.org/upf_files/H.pbe-rrkjus.UPF --no-check-certificate
algerien1970@linux-wipm:~/abinitio/QE-tutorials/Graphene> pw.x < graphane.in |tee graphane.out
.
Final energy = -24.9710814357 Ry
File ./OUT_GRAPHANE/Graphane_1x1_PBE.bfgs deleted, as requested
Begin final coordinates
ATOMIC_POSITIONS (crystal)
C -0.0000000000 -0.0000000000 0.4776008843
C 0.3333330000 0.6666670000 0.4776008843
H 0.0000000000 0.0000000000 0.9223991157
H 0.3333330000 0.6666670000 0.9223991157
End final coordinates
In the picture, the final structure of graphane, exhibiting “buckling”
3. Graphene oxide
• The first stage of graphene oxidation is the formation of an epoxy bridge. Let us add an O atom on a 3 × 3 supercell of graphene
• File graphene3x3-O.in is a modified version of graphene3x3.in, with
– calculation=’relax’ for structural optimization, new namelist IONS
– ntyp=2 (2 types of atoms), nat=19 (19 atoms in the cell)
– ATOMIC POSITION card with 19 initial positions (C-O distance ∼ 1.5 Å)
– ATOMIC SPECIES card with 2 species of atoms and pseudopotentials
graphene3x3-O.in
&control
calculation='relax',
restart_mode='from_scratch',
prefix='Graphene_3x3_PBE',
pseudo_dir = './',
outdir='./OUT_GRAPHENE-OXIDE',
/
&system
ibrav= 4, celldm(1) =13.9628670, celldm(3)=1.0, nat=19, ntyp= 2,
ecutwfc =20, ecutrho =200 ,
occupations='smearing', smearing='gaussian', degauss=0.01,
/
&electrons
conv_thr = 1.0d-8
/
&ions
/
ATOMIC_SPECIES
C 12.0107 C.pbe-rrkjus.UPF
O 16.0 O.pbe-rrkjus.UPF
ATOMIC_POSITIONS {angstrom}
C 0.0000000000 0.0000000000 0.0
C -1.2314742556 2.1329759788 0.0
C -2.4629485111 4.2659519577 0.0
C 2.4629485111 0.0000000000 0.0
C 1.2314742556 2.1329759788 0.0
C 0.0000000000 4.2659519577 0.0
C 4.9258970222 0.0000000000 0.0
C 3.6944227666 2.1329759788 0.0
C 2.4629485111 4.2659519577 0.0
C 0.0000000000 1.4219840618 0.0
C -1.2314742556 3.5549600406 0.0
C -2.4629485111 5.6879360194 0.0
C 2.4629485111 1.4219840618 0.0
C 1.2314742556 3.5549600406 0.0
C 0.0000000000 5.6879360194 0.0
C 4.9258970222 1.4219840618 0.0
C 3.6944227666 3.5549600406 0.0
C 2.4629485111 5.6879360194 0.0
O 1.2314738 2.843966 1.305583
K_POINTS {gamma}
#K_POINTS {gamma}
# 3 3 1 0 0 0
O.pbe-rrkjus.UPF
You can download the file using the following command
$ wget https://www.quantum-espresso.org/upf_files/O.pbe-rrkjus.UPF --no-check-certificate
Optimization
algerien1970@linux-wipm:~/abinitio/QE-tutorials/Graphene> pw.x < graphene3x3-O.in |tee graphene3x3-O.out
End of BFGS Geometry Optimization
Final energy = -236.2942145486 Ry
File ./OUT_GRAPHENE-OXIDE/Graphene_3x3_PBE.bfgs deleted, as requested
Begin final coordinates
ATOMIC_POSITIONS (angstrom)
C -0.0141387556 -0.0147731860 -0.0282360482
C -1.2089532079 2.1119416582 -0.1131024095
C -2.4629485111 4.2844743445 -0.1739825240
C 2.4770872667 -0.0147731860 -0.0282360482
C 1.2314742556 2.1166372843 0.3097931951
C -0.0340310026 4.2619688384 0.0323396303
C 4.9258970222 0.0137360254 -0.0761888673
C 3.6719017189 2.1119416582 -0.1131024095
C 2.4969795137 4.2619688384 0.0323396303
C -0.0339942675 1.4258090758 0.0330698138
C -1.2089169528 3.5759082378 -0.1133471861
C -2.4629485111 5.6741593929 -0.0758605109
C 2.4969427786 1.4258090758 0.0330698138
C 1.2314742556 3.5712391458 0.3092911292
C -0.0141346412 5.7027097089 -0.0286293425
C 4.9258970222 1.4034582642 -0.1738379771
C 3.6718654638 3.5759082378 -0.1133471861
C 2.4770831523 5.7027097089 -0.0286293425
O 1.2314738000 2.8445570516 1.6221796395
End final coordinates
Reference: Using PWscf: basics (write-up, exercises, March 2018)
For more information check the following links;
https://q-espresso-algerien1970.blogspot.com/p/dos-and-bandstructure-of-graphene.html
https://github.com/pranabdas/espresso/tree/master/src/graphene
https://github.com/28shambhavi/Quantum-Espresso-DOP/tree/master/Graphene
https://www.cp2k.org/exercises:2014_ethz_mmm:bs
https://lists.quantum-espresso.org/pipermail/users/2016-November/036994.html
https://github.com/giovannipizzi/seekpath
0 Comments