Graphite TS binding energy: Difference between revisions

From VASP Wiki
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Template:Bulk_systems}}
{{Template:Bulk_systems - Tutorial}}


== Task ==
== Task ==


Determine the interlayer binding energy of graphite in its experimental structure using the method  
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]]).
----
----


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


== Calculation ==
== 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 real work starts here
#
 
rm results.dat
 
drct=$(pwd)
 
for i in graphene graphite
do
  cd $drct/$i
  $vasp_std
done


Semilocal DFT at the GGA level underestimates
cd $drct
long-range dispersion interactions.
 
In the case of graphite, PBE predicts the
# obtain total energy for graphite  
interlayer binding energy of ~1 meV/atom
en2=$(grep "free  ene" graphite/OUTCAR |tail -1|awk '{print $5}')
which is too small compared to the RPA
 
reference of 0.048 eV/atom
# obtain total energy for graphene
<ref name="lebegue"/>.
en1=$(grep "free  ene" graphene/OUTCAR |tail -1|awk '{print $5}')
 
In this example, the interlayer binding energy  
# compute interlayer binding energy (eV/atom)
of graphite in its experimental structure is
deltaE=$(echo print $en2/4 - $en1/2 |python)
determined using the {{TAG|Tkatchenko-Scheffler method}},
 
which performs well in description of the
echo "Binding energy (eV/atom): " $deltaE >results.dat
structure of graphite (see e.g. example
</pre>
{{TAG|graphite interlayer distance}}).


The calculation is performed in two steps (sigle-point
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.
calculations) in which the energy for bulk graphite  
The binding energy is computed automatically and it is written in the file <code>results.dat</code>.
and for graphene are obtained. The binding energy  
(N.B.: for the latter ''python'' needs to be available.)
is computed automatically and it is written in the  
file results.dat.


Even though the TS method predicts a reasonable geometry
Even though the TS method predicts a reasonable geometry (see the [[Graphite interlayer distance]] example) it overestimates the energetics strongly:
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.
the computed binding energy of -0.083 eV/atom is too  
This overestimation is - at least in part - due to neglecting the many-body interactions (see example [[Graphite MBD binding energy]]).
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  
{{TAG|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]]


== References ==
== References ==
Line 108: Line 138:
<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>
<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>
</references>
----
[[VASP_example_calculations|To the list of examples]] or to the [[The_VASP_Manual|main page]]
{{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