# Example: CO absorption on a Cu slab: fragment option and densityplot¶

Download Frags_COCu.run

This example illustrates the usage of fragments in a BAND calculation for analysis purposes. It takes two runs to do the DOS analysis in a fragment basis, and an extra two runs to get the deformation density with respect to the fragment densities.

The setup involves first the computation of the free CO overlayer, which is to be adsorbed on a Cu surface. To suppress (most of the) interactions between the CO molecules, i.e. to effectively get the molecular CO, the KSpace parameter is set to 1 (= no dispersion), and the lattice parameters are set so large that the CO molecules are far apart. The standard result file RUNKF is saved under the name ‘CO.runkf’.

# ----------------------------- CO molecule --------------------------

$ADFBIN/band << eor DefaultsConvention pre2014 Title The CO fragment Comment Technical Zero order k space integration Good real space integration accuracy Definitions of variables Features Lattice : 2D, large lattice vectors Unit cell : 2 atoms, 1x1, quasi molecular Basis : NO+STO w/ core End PRINT EIGENS Kspace 1 ! neglect dispersion Accuracy 4 Define bond=2.18 far=25 End Lattice ! CO molecules far apart far 0.0 0.0 far End Atoms C 0 0 0 O 0 0 bond End BasisDefaults BasisType DZ Core Large End End Input eor mv RUNKF CO.runkf  Now we can use the result file to do a DOS analysis for CO on a copper surface treating the molecule as a fragment. With Fragment%Labels we assign names to the different symmetry orbitals. The Density-of-States analysis details are given with the keys DOS (energy grid, result file with DOS data) and, optionally, GrossPopulations and OverlapPopulations. # ----------------------------- CO + Cu slab --------------------------$ADFBIN/band << eor
DefaultsConvention pre2014

Title Cu slab with CO adsorbed

Comment
Technical
Good real space integration accuracy
Definitions of variables
Features
Lattice   : 2D
Unit cell : 3 atoms, 1x1
Basis     : NO+STO w/ core
Options   : Molecular fragment
Analysis: DOS, PDOS, COOP
End

KSpace 3
Accuracy 4

! fragment specification

Fragment CO.runkf
1 1
2 2
Labels ! let us give them some labels
2Sigma
2Sigma*
1Pi_x
1Pi_y
3Sigma
1Pi_x*
1Pi_y*
3Sigma*
SubEnd
End

! use fragment basis in dos
DosBas
Fragment 1
End

DOS   ! Analysis
File  pdos.CO_Cu
Energies 500
Min -0.750
Max 0.300
End

GrossPopulations
3 2    ! All metal d states
Sum     ! ALl metal sp states
3 0
3 1
EndSum

Frag 1   ! All CO states
Sum   ! CO 1pi
FragFun 1 5
FragFun 1 6
EndSum
FragFun 1 7  ! CO 5-sigma
End

OverlapPopulations
Left   ! Metal d with CO
3 2
Right
Frag 1
End

Define
dist=3.44
bond=2.18
End

Lattice
4.822 0.0
0.0   4.822
End

Atoms
C   0 0 dist
O   0 0 dist+bond
Cu  0.0   0.0   0.0
End

BasisDefaults
BasisType DZ
Core Large
End

End Input
eor


After this run we copy the computed DOS data from the DOS result file to standard output. We also save the restart file for later use.

echo Contents of DOS file
cat pdos.CO_Cu

mv RUNKF COCu.runkf


Next we want to know the deformation density with respect to the two fragments: 1) The CO molecule and 2) the bare Cu surface. We haven’t done the bare Cu surface yet, so that is what happens next.

# ----------------------------- Cu slab --------------------------

$ADFBIN/band << eor DefaultsConvention pre2014 Title Cu slab Comment Technical Quadratic K space integration (low) Good real space integration accuracy Definitions of variables Features Lattice : 2D Unit cell : 3 atoms, 1x1 Basis : NO+STO w/ core Options : End Kspace 3 Accuracy 4 Define dist=3.44 bond=2.18 End Lattice 4.822 0.0 0.0 4.822 End Atoms Cu 0.0 0.0 0.0 End BasisDefaults BasisType DZ Core Large End End Input eor mv RUNKF Cu.runkf  Now we are all set to do our final calculation. We have the two fragment files CO.runkf and Cu.runkf, and the restart file COCu.runkf. Next we want to know the deformation density with respect to the two fragments: 1) The CO molecule and 2) the bare Cu surface. The visualization options like OrbitalPlot and Densityplot require a regular set of points (a grid). Here is how it works # ----------------------------- CO + Cu slab restart --------------------------$ADFBIN/band -n 1 << eor
DefaultsConvention pre2014

Title Cu slab with CO adsorbed (restart density plot)

Kspace 3
Accuracy 4

Restart
File COCu.runkf
DensityPlot
End

Grid
Type Coarse
End

DensityPlot
rho(deformation/fit)
End

! fragment specification

Fragment CO.runkf
1 1
2 2
End

Fragment Cu.runkf
1 3
End

Define
dist=3.44
bond=2.18
End

Lattice
4.822 0.0
0.0   4.822
End

Atoms
C   0 0 dist
O   0 0 dist+bond
Cu  0.0   0.0   0.0
End

BasisDefaults
BasisType DZ
Core Large
End

End Input
eor


This particular restart options does not work in parallel, hence the “-n 1” on the first line.The result of the last run is a file named TAPE41. Normally you would save that to COCu.t41

mv TAPE41 COCu.t41


and view it with ADFview. On the TAPE41 file are now three fields shown in ADFview as

• FITDENSITY_deformation_scf
• FITDENSITY_deformation_scf_frag1
• FITDENSITY_deformation_scf_frag2

being the deformation density of CO+Cu with respect to the atoms, and the same for the two fragments CO and the Cu slab. In ADFview you can add the fields of the two fragments, and then create another field that holds the difference.