Graphite TS binding energy: Difference between revisions

From VASP Wiki
No edit summary
 
(27 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Description: determine the interlayer binding energy of graphite in its experimental structure using the method  
{{Template:Bulk_systems - Tutorial}}
 
== Task ==
 
In this example you will determine the interlayer binding energy of graphite in its experimental structure using the method  
of Tchatchenko and Scheffler to account for van der Waals interactions.
of Tchatchenko and Scheffler to account for van der Waals interactions.
Semilocal DFT at the GGA level underestimates long-range dispersion interactions.
In the case of graphite, PBE predicts the interlayer binding energy of ~1 meV/atom which is too small compared to the RPA reference of 0.048 eV/atom <ref name="lebegue"/>.
In this example, the interlayer binding energy of graphite in its experimental structure is determined using the {{TAG|Tkatchenko-Scheffler method}},
which performs well in description of the structure of graphite (see e.g. example [[graphite interlayer distance]]).
----
----


Semilocal DFT at the GGA level underestimates
== Input ==
long-range dispersion interactions.
 
In the case of graphite, PBE predicts the
=== POSCAR ===
interlayer binding energy of ~1 meV/atom
*Graphite:
which is too small compared to the RPA
graphite
reference of 0.048 eV/atom
1.0
(Lebgue et al., PRL 105, 195401 (2010)).
1.22800000 -2.12695839  0.00000000
1.22800000  2.12695839  0.00000000
0.00000000  0.00000000  6.71
4
direct
    0.00000000  0.00000000  0.25000000
    0.00000000  0.00000000  0.75000000
    0.33333333  0.66666667  0.25000000
    0.66666667  0.33333333  0.75000000
   
   
In this example, the interlayer binding energy
*Graphene:
of graphite in its experimental structure is
graphite
determined using the TS method
1.0
of Tchatchenko and Scheffler (PRL 102, 073005 (2009)),
1.22800000 -2.12695839  0.00000000
which performs well in description of the
1.22800000  2.12695839  0.00000000
structure of graphite (see e.g. example
0.00000000  0.00000000  20.
graphiteDistance_ts).
2
direct
    0.00000000  0.00000000  0.25000000
    0.33333333  0.66666667  0.25000000
 
=== INCAR ===
 
{{TAGBL|IVDW}} = 20           
{{TAGBL|LVDW_EWALD}} =.TRUE.
{{TAGBL|NSW}} = 1
{{TAGBL|IBRION}} = 2
{{TAGBL|ISIF}} = 4
{{TAGBL|PREC}} = Accurate
{{TAGBL|EDIFFG}} = 1e-5
{{TAGBL|LWAVE}} = .FALSE.
{{TAGBL|LCHARG}} = .FALSE.
{{TAGBL|ISMEAR}} = -5
{{TAGBL|SIGMA}} = 0.01
{{TAGBL|EDIFF}} = 1e-6
{{TAGBL|ALGO}} = Fast
{{TAGBL|NPAR}} = 2
 
 
=== KPOINTS ===
 
*Graphite:
Monkhorst Pack
0
gamma
16 16 8
0 0 0
 
*Graphene:
Monkhorst Pack
0
gamma
16 16 1
0 0 0
 
There is no interaction of layers in z-direction for graphene so we need only 1 k point in this direction.
 
== Running this example ==
 
To run this example, execute the <code>run.sh</code> bash-script:
<pre>
#
# To run VASP this script calls $vasp_std
# (or posibly $vasp_gam and/or $vasp_ncl).
# These variables can be defined by sourcing vaspcmd
. vaspcmd 2> /dev/null
 
#
# When vaspcmd is not available and $vasp_std,
# $vasp_gam, and/or $vasp_ncl are not set as environment
# variables, you can specify them here
[ -z "`echo $vasp_std`" ] && vasp_std="mpirun -np 8 /path-to-your-vasp/vasp_std"
[ -z "`echo $vasp_gam`" ] && vasp_gam="mpirun -np 8 /path-to-your-vasp/vasp_gam"
[ -z "`echo $vasp_ncl`" ] && vasp_ncl="mpirun -np 8 /path-to-your-vasp/vasp_ncl"


The calculation is performed in two steps (sigle-point
#
calculations) in which the energy for bulk graphite
# The real work starts here
and for graphene are obtained. The binding energy
#
is computed automatically and it is written in the
file results.dat.


Even though the TS method predicts a reasonable geometry
rm results.dat
it overestimates the energetics strongly:
the computed binding energy of -0.083 eV/atom is too
large compared to the RPA reference of 0.048 eV/atom
This overestimation is - at least in part - due to
neglecting the many-body interactions (see example
graphiteBinding_mbd).


Details of implementation of TS in VASP + a number
drct=$(pwd)
of tests:
Bucko et al., PRB 87, 064110 (2013).


== Used INCAR Tags ==
for i in graphene graphite
{{TAG|ALGO}}, {{TAG|EDIFF}}, {{TAG|EDIFFG}}, {{TAG|IBRION}}, {{TAG|ISIF}}, {{TAG|ISMEAR}}, {{TAG|IVDW}}, {{TAG|LCHARG}}, {{TAG|LVDW}}, {{TAG|LWAVE}}, {{TAG|NPAR}}, {{TAG|NSW}}, {{TAG|PREC}}, {{TAG|SIGMA}}
do
  cd $drct/$i
  $vasp_std
done
 
cd $drct
 
# obtain total energy for graphite
en2=$(grep "free  ene" graphite/OUTCAR |tail -1|awk '{print $5}')
 
# obtain total energy for graphene
en1=$(grep "free  ene" graphene/OUTCAR |tail -1|awk '{print $5}')
 
# compute interlayer binding energy (eV/atom)
deltaE=$(echo print $en2/4 - $en1/2 |python)
 
echo "Binding energy (eV/atom): " $deltaE >results.dat
</pre>
 
Note that the calculation is performed in two steps (two separate single-point calculations) in which the energy for bulk graphite and for graphene are obtained.
The binding energy is computed automatically and it is written in the file <code>results.dat</code>.
(N.B.: for the latter ''python'' needs to be available.)
 
Even though the TS method predicts a reasonable geometry (see the [[Graphite interlayer distance]] example) it overestimates the energetics strongly:
the computed binding energy of -0.083 eV/atom is too large compared to the RPA reference of 0.048 eV/atom.
This overestimation is - at least in part - due to neglecting the many-body interactions (see example [[Graphite MBD binding energy]]).


== Download ==
== Download ==
[http://www.vasp.at/vasp-workshop/examples/graphiteBinding_ts.tgz graphiteBinding_ts.tgz]
[[Media:GraphiteBinding ts.tgz| graphiteBinding_ts.tgz]]
----
 
[[VASP_example_calculations|To the list of examples]] or to the [[The_VASP_Manual|main page]]
== References ==
<references>
<ref name="lebegue">[https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.105.196401 S. Lebègue, J. Harl, Tim Gould, J. G. Ángyán, G. Kresse, and J. F. Dobson, Phys. Rev. Lett. 105, 196401 (2010).]</ref>
</references>
{{Template:Bulk_systems}}


[[Category:Examples]]
[[Category:Examples]]

Latest revision as of 13:25, 14 November 2019

Task

In this example you will determine the interlayer binding energy of graphite in its experimental structure using the method of Tchatchenko and Scheffler to account for van der Waals interactions.

Semilocal DFT at the GGA level underestimates long-range dispersion interactions. In the case of graphite, PBE predicts the interlayer binding energy of ~1 meV/atom which is too small compared to the RPA reference of 0.048 eV/atom [1].

In this example, the interlayer binding energy of graphite in its experimental structure is determined using the Tkatchenko-Scheffler method, which performs well in description of the structure of graphite (see e.g. example graphite interlayer distance).


Input

POSCAR

  • Graphite:
graphite
1.0
1.22800000 -2.12695839  0.00000000
1.22800000  2.12695839  0.00000000
0.00000000  0.00000000  6.71
4
direct
   0.00000000  0.00000000  0.25000000
   0.00000000  0.00000000  0.75000000
   0.33333333  0.66666667  0.25000000
   0.66666667  0.33333333  0.75000000

  • Graphene:
graphite
1.0
1.22800000 -2.12695839  0.00000000
1.22800000  2.12695839  0.00000000
0.00000000  0.00000000  20.
2
direct
   0.00000000  0.00000000  0.25000000
   0.33333333  0.66666667  0.25000000

INCAR

IVDW = 20            
LVDW_EWALD =.TRUE. 
NSW = 1 
IBRION = 2
ISIF = 4
PREC = Accurate
EDIFFG = 1e-5
LWAVE = .FALSE.
LCHARG = .FALSE.
ISMEAR = -5
SIGMA = 0.01
EDIFF = 1e-6
ALGO = Fast
NPAR = 2


KPOINTS

  • Graphite:
Monkhorst Pack
0
gamma
16 16 8
0 0 0
  • Graphene:
Monkhorst Pack
0
gamma
16 16 1
0 0 0

There is no interaction of layers in z-direction for graphene so we need only 1 k point in this direction.

Running this example

To run this example, execute the run.sh bash-script:

#
# To run VASP this script calls $vasp_std
# (or posibly $vasp_gam and/or $vasp_ncl).
# These variables can be defined by sourcing vaspcmd
. vaspcmd 2> /dev/null

#
# When vaspcmd is not available and $vasp_std,
# $vasp_gam, and/or $vasp_ncl are not set as environment
# variables, you can specify them here
[ -z "`echo $vasp_std`" ] && vasp_std="mpirun -np 8 /path-to-your-vasp/vasp_std"
[ -z "`echo $vasp_gam`" ] && vasp_gam="mpirun -np 8 /path-to-your-vasp/vasp_gam"
[ -z "`echo $vasp_ncl`" ] && vasp_ncl="mpirun -np 8 /path-to-your-vasp/vasp_ncl"

#
# The real work starts here
#

rm results.dat

drct=$(pwd)

for i in graphene graphite
do
  cd $drct/$i
  $vasp_std
done

cd $drct

# obtain total energy for graphite 
en2=$(grep "free  ene" graphite/OUTCAR |tail -1|awk '{print $5}') 

# obtain total energy for graphene
en1=$(grep "free  ene" graphene/OUTCAR |tail -1|awk '{print $5}')

# compute interlayer binding energy (eV/atom)
deltaE=$(echo print $en2/4 - $en1/2 |python)

echo "Binding energy (eV/atom): " $deltaE >results.dat

Note that the calculation is performed in two steps (two separate single-point calculations) in which the energy for bulk graphite and for graphene are obtained. The binding energy is computed automatically and it is written in the file results.dat. (N.B.: for the latter python needs to be available.)

Even though the TS method predicts a reasonable geometry (see the Graphite interlayer distance example) it overestimates the energetics strongly: the computed binding energy of -0.083 eV/atom is too large compared to the RPA reference of 0.048 eV/atom. This overestimation is - at least in part - due to neglecting the many-body interactions (see example Graphite MBD binding energy).

Download

graphiteBinding_ts.tgz

References