====== Adsorption on Graphene ======
In this exercise, you will be asked to calculate the adsorption energy of CO molecule on the graphene surface, in an attempt to reproduce a part of the experiments presented in [[https://journals.aps.org/prb/pdf/10.1103/PhysRevB.77.125416|this paper]].
===== Lattice constant optimization =====
As you have seen in earlier exercises, the actual energy -- and therefore also the stress tensor -- depends on many parameters, like the selected functional. This means that geometrical parameters like the lattice constant may also vary and therefore need to be optimized first when building a new geometry. While this could be done using CP2K's ''CELL_OPT'' run type, optimizing both the lattice/cell constants and the geometry simultaneously, we are going to do it manually here, especially since we can assume that only the lattice constant will actually change.
What we are using to determine the center volume (the volume for which the energy is minimal) is the Birch–Murnaghan equation of state (to be precise: the BM equation integrated over pressure), which links the energy and the volume using the minimal energy $E_0$, the center volume $V_0$, the bulk modulus $B_0$ and its derivative $B_1$:
\begin{align*}
E(V) = E_0 + \frac{9 V_0 B_0}{16} \Bigg\{
\left[ \left(\frac{V_0}{V}\right)^{2/3} - 1 \right]^3 B_1 \; + \left[ \left(\frac{V_0}{V}\right)^{2/3} - 1 \right]^2 \left[ 6 - 4 \left(\frac{V_0}{V}\right)^{2/3} \right]
\Bigg\}
\end{align*}
Use the following input file as a starting point, and an adapted version of the script you documented in a [[exercises:2017_uzh_cmest:calculation_pbc|previous exercise]] to generate a number of input files for different lattice constants and run the respective calculation. A good interval for the fraction of the lattice constant is $0.90-1.10$ with a step size of $0.025$.
Extract the energies and fit $E_0$, $V_0$, $B_0$, $B_1$ using the Birch–Murnaghan EOS and using the new $V0$ determine the lattice constant.
&GLOBAL
PROJECT graphene
RUN_TYPE ENERGY
PRINT_LEVEL MEDIUM
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT
POTENTIAL_FILE_NAME POTENTIAL
&POISSON
PERIODIC XYZ
&END POISSON
&SCF
SCF_GUESS ATOMIC
EPS_SCF 1.0E-6
MAX_SCF 300
# The following settings help with convergence:
ADDED_MOS 100
CHOLESKY INVERSE
&SMEAR ON
METHOD FERMI_DIRAC
ELECTRONIC_TEMPERATURE [K] 300
&END SMEAR
&DIAGONALIZATION
ALGORITHM STANDARD
EPS_ADAPT 0.01
&END DIAGONALIZATION
&MIXING
METHOD BROYDEN_MIXING
ALPHA 0.2
BETA 1.5
NBROYDEN 8
&END MIXING
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&PRINT
&PDOS
# print all projected DOS available:
NLUMO -1
# split the density by quantum number:
COMPONENTS
&END
&END
&END DFT
&SUBSYS
&CELL
# create a hexagonal unit cell:
ABC 2.4612 2.4612 15.0
ALPHA_BETA_GAMMA 90. 90. 60.
SYMMETRY HEXAGONAL
PERIODIC XYZ
&END CELL
&COORD
SCALED
C 1./3. 1./3. 0.
C 2./3. 2./3. 0.
&END
&KIND C
ELEMENT C
BASIS_SET DZVP-MOLOPT-GTH
POTENTIAL GTH-PBE
&END KIND
&END SUBSYS
&END FORCE_EVAL
The following commands may be useful.
Doing calculations on the command line using the ''bc'' tool:
bc -l <<< "5.6 * 12.3"
# you can also use variables and capture the output again in a variable:
x=1.025
a=$(bc -l <<< "$x * 2.4612")
Replacing numbers (or any text) inside a file and write the changed file to a new file:
a=3.54
sed -e "s|2.4612|$a|g" graphene.inp > "graphene_V-${x}.inp"
Be careful when fitting values for the Birch-Murnaghan EOS: the volume is usually the volume per atom (and the total volume of the cell you can also get from the CP2K output).
===== CO adsorption on graphene =====
Adsorb one CO molecule on a graphene 6X6X1 supercell at the top (//T//), bridge (//B//) and center (//C//) sites with oxygen atop the carbon (and both perpendicular to the graphene, the //u// orientation) and optimize the geometry. See the paper for the definitions as well as initial values for the distances.
You need change the ''RUN_TYPE'' to ''GEO_OPT'' and also specify the (absolute) coordinates by yourself.
You can get a 6x6x1 unit cell with absolute coordinates by using ''MULTIPLE_UNIT_CELL'' for the original/geometry-optimized input file like shown in a previous examples, run it with CP2K and get the calculated absolute coordinates from the CP2K output (you can interrupt the actual calculation since the coordinates are printed before the actual calculation starts):
[...]
MODULE QUICKSTEP: ATOMIC COORDINATES IN angstrom
Atom Kind Element X Y Z Z(eff) Mass
1 1 C 6 1.267080 0.731549 0.000000 4.00 12.0107
2 1 C 6 2.534160 1.463098 0.000000 4.00 12.0107
3 1 C 6 3.801240 0.731549 0.000000 4.00 12.0107
4 1 C 6 5.068320 1.463098 0.000000 4.00 12.0107
5 1 C 6 6.335400 0.731549 0.000000 4.00 12.0107
[...]
The adsorption energy is given by:$ E_{ad} = E_{CO+graphene} - E_{CO} - E_{graphene}$
This means that you also have to run an auxiliary geometry optimization calculation for CO in vacuum, using the same settings as for the other calculations except for the periodicity. Use a large enough cell (~ 15 Å) and ''[[https://manual.cp2k.org/trunk/CP2K_INPUT/FORCE_EVAL/SUBSYS/TOPOLOGY/CENTER_COORDINATES.html|CENTER_COORDINATES]]'' for this.
Which one is the most stable adsorption site?