Graphite TS binding energy: Difference between revisions

From VASP Wiki
No edit summary
Line 3: Line 3:
== 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
 
cd $drct


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


The calculation is performed in two steps (single-point
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 results.dat.
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
Even though the TS method predicts a reasonable geometry 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 ==

Revision as of 21:01, 24 June 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

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.

Even though the TS method predicts a reasonable geometry 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

Back to the main page.