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
   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   : 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.