* hfacH molecule on a nickel surface [#u7088cb3]

This tutorial explains how to perform the crystal orbital overlap population (COOP) analysis by using hfacH/Ni(110)(4x4) surface [Basher et al., Jpn. J. Appl. Phys. 59, 090905 (2020)].

** Preliminary [#v100fd4a]
In the COOP calculation, the wave function of the total system (combined system/adsorption system) is expanded in terms of the subsystem wave functions.
Thus, we need to prepare wave functions for the subsystem.
In the present system, we prepare wave functions of molecular (hfacH) and substrate (Ni(110)(4x4) slab) in the subdirectory HFACH and Ni, respectively, in addition to those in the working directory.

- STATE version
-- 5.6.3

- Pseudopotentials
-- Ni_pbe4 
-- F_pbe1 
-- C_pbe1
-- O_pbe1
-- H_lda1

** SCF calculations [#r2b0be49]
We first relax the system and create a new input file using the optimized geometry.
We also create input files for subsystem using the optimized geometries for the combined system (not further relaxation will not be performed.

The input files for the combined system and subsystems are as follows:
- ./nfinp_1 (combined system)
  0 0 0 0 0 0 : Ni ( 4L + 16L )
      6.0000 20.0000   5   63  63    : gmax, gmaxp, ktyp, katm, katm2
      1    0         : num_space_group, type
 Cartesian
       18.853223409384     0.000000000000      0.000000000000
       0.000000000000     19.996863180000      0.000000000000
       0.000000000000      0.000000000000     47.133058523459
     06   06   01    1    1    1  :  K_mesh
      1    0      : ncord,ninv : iwei,imdtyp,ityp
       3.996033909759      6.423162152279      7.522989404072    1    1    2
       4.633918309151      7.123379460829      5.106013702817    1    1    3
       3.635103884227      5.253332343494      3.146931873829    1    1    3
       4.731721715104      2.690776174457      3.323892246902    1    1    3
       3.200483027950      0.471065818069      3.529029658560    1    1    3
       4.120907476388     -1.686820049470      5.188000704456    1    1    3
       3.410025784713     -1.291010684906      7.648452354530    1    1    2
       3.138910721527     -3.990404972103      4.496409683978    1    1    2
       6.710352133631     -1.907538456185      5.167401775270    1    1    2
       0.630361749489      0.637068850434      3.373843504199    1    1    4
       0.931152312144      5.345290940286      3.264616793801    1    1    4
       3.688095192120      9.504638201919      4.748808431955    1    1    2
       7.235648802353      7.279856147374      5.031162192044    1    1    2
       6.667976160760      2.610581848382      4.039660059301    1    1    5
       0.357655206834      3.440269198314      3.391592209902    1    1    5
      -4.723393044566     -6.659760068776     -0.244176482326    1    1    1
      -4.766966242109     -0.002829325009     -0.237055142658    1    1    1
      -4.743794937018      6.656139747554     -0.235880054434    1    1    1
      -0.011608354807     -6.657491571052     -0.270017269615    1    1    1
      -0.053793076202     -0.046032678740     -0.140472521299    1    1    1
       0.004101946979      6.632961379942     -0.132665384287    1    1    1
       4.698813209313     -6.654695829816     -0.251828880698    1    1    1
       4.685756715949      0.294502803370      0.007103429427    1    1    1
       4.659328430105      6.502758307018     -0.182316365983    1    1    1
       9.406005430046     -6.657768212578     -0.247436999355    1    1    1
       9.413612628005      0.025443431192     -0.235712396452    1    1    1
       9.405185522265      6.655221273086     -0.227420746967    1    1    1
      -2.362387725422     -3.315354047591     -2.385605053225    1    1    1
      -2.372460657256      3.324479261331     -2.406696727513    1    1    1
      -2.353468393749      9.967108679099     -2.351435540207    1    1    1
       2.380240190019     -3.280084445723     -2.392879725017    1    1    1
       2.318083997074      3.323346703637     -2.580038522499    1    1    1
       2.362350188616      9.975604524032     -2.394364577664    1    1    1
       7.032730190885     -3.270921711124     -2.329940471573    1    1    1
       7.102040811859      3.341277167718     -2.476733324667    1    1    1
       7.048003975979      9.969771766060     -2.351946440719    1    1    1
      11.759975516057     -3.327723005070     -2.360523328081    1    1    1
      11.784484202409      3.338143705962     -2.386944035892    1    1    1
      11.771270751385      9.995685282686     -2.350387594640    1    1    1
      -4.713305852300     -6.665621060000     -4.713305852300    1    0    1
      -4.713305852300      0.000000000000     -4.713305852300    1    0    1
      -4.713305852300      6.665621060000     -4.713305852300    1    0    1
       0.000000000000     -6.665621060000     -4.713305852300    1    0    1
       0.000000000000      0.000000000000     -4.713305852300    1    0    1
       0.000000000000      6.665621060000     -4.713305852300    1    0    1
       4.713305852300     -6.665621060000     -4.713305852300    1    0    1
       4.713305852300      0.000000000000     -4.713305852300    1    0    1
       4.713305852300      6.665621060000     -4.713305852300    1    0    1
       9.426611704700     -6.665621060000     -4.713305852300    1    0    1
       9.426611704700      0.000000000000     -4.713305852300    1    0    1
       9.426611704700      6.665621060000     -4.713305852300    1    0    1
      -2.356652926200     -3.332810530000     -7.069958778500    1    0    1
      -2.356652926200      3.332810530000     -7.069958778500    1    0    1
      -2.356652926200      9.998431590000     -7.069958778500    1    0    1
       2.356652926200     -3.332810530000     -7.069958778500    1    0    1
       2.356652926200      3.332810530000     -7.069958778500    1    0    1
       2.356652926200      9.998431590000     -7.069958778500    1    0    1
       7.069958778500     -3.332810530000     -7.069958778500    1    0    1
       7.069958778500      3.332810530000     -7.069958778500    1    0    1
       7.069958778500      9.998431590000     -7.069958778500    1    0    1
      11.783264630900     -3.332810530000     -7.069958778500    1    0    1
      11.783264630900      3.332810530000     -7.069958778500    1    0    1
      11.783264630900      9.998431590000     -7.069958778500    1    0    1
    28  0.5000  58.710   1 1 0.2         : IATOMN ALFA AMION ILOC IVAN
     9  0.5000  18.998   1 1 0.2         : IATOMN ALFA AMION ILOC IVAN
     6  0.5000  12.011   1 1 0.2         : IATOMN ALFA AMION ILOC IVAN
     8  0.5000  15.999   1 1 0.2         : IATOMN ALFA AMION ILOC IVAN
     1  0.5000  12.011   1 1 0.2         : IATOMN ALFA AMION ILOC IVAN
     0 0 0 0 0  : icond, inipos, inivel, ininos, iniacc
      0    1    : ipre, ipri
   0400 1000    0   420000.00    0 : nmd1,nmd2,last_iter,cpumax,ifstop
      6    1         : SIMPLE=1,BROYD1=2,BROYD2=3,DFP=4,PULAY=5
      0   30 0.10    : iter_start, KBXMIX,  MIX_ALPHA
      0.20   0.30   0.20   0.20   0.20   : dtim1,dtim2,dtim3,dtim4,dtim
    200.00   6      1      1.00D-10      : dtio ,imdalg, iexpl, edelta
     -0.0010 1.00D+03      0             : width,forccr,istress
 rev-vdW-DF2       2                     : xctype,kspin
      1.00                               : destm
    101                                  : nbztyp
      4    4    4
      4    4    4
    384         : keg
      1         : nextst(mb)
      0         : 0 random numbers 1: matrix
      2         : imsd  1=MSD, 2=Preconditioned
      0         : evaluate_eko_diff
         0      : npdosao
         0    0.0
     2                                   : mvelsc
   300.0D0   30.0D0    30       1.0D0    : tempw,tolp,nroll,anneal
   500.0D0    8        15       1        : wnosep,nhc,nosy,ndrt
     5.0D-8                              : frict
     0                                   : mcnstr
     DIST    1    3            1.83401
     DIST    2    3            1.83401
     BEND    1    3    2     104.23195
 &ESM
  BOUNDARY_CONDITION BARE
 &END

- HFACH/nfinp_1 (adsorbate)
  0 0 0 0 0 0 : Ni ( 4L + 16L )
      6.0000 20.0000   5   15  15    : gmax, gmaxp, ktyp, katm, katm2
      1    0         : num_space_group, type
 Cartesian
       18.853223409384     0.000000000000      0.000000000000
       0.000000000000     19.996863180000      0.000000000000
       0.000000000000      0.000000000000     47.133058523459
     06   06   01    1    1    1  :  K_mesh
      1    0      : ncord,ninv : iwei,imdtyp,ityp
       3.996033909759      6.423162152279      7.522989404072    1    1    2
       4.633918309151      7.123379460829      5.106013702817    1    1    3
       3.635103884227      5.253332343494      3.146931873829    1    1    3
       4.731721715104      2.690776174457      3.323892246902    1    1    3
       3.200483027950      0.471065818069      3.529029658560    1    1    3
       4.120907476388     -1.686820049470      5.188000704456    1    1    3
       3.410025784713     -1.291010684906      7.648452354530    1    1    2
       3.138910721527     -3.990404972103      4.496409683978    1    1    2
       6.710352133631     -1.907538456185      5.167401775270    1    1    2
       0.630361749489      0.637068850434      3.373843504199    1    1    4
       0.931152312144      5.345290940286      3.264616793801    1    1    4
       3.688095192120      9.504638201919      4.748808431955    1    1    2
       7.235648802353      7.279856147374      5.031162192044    1    1    2
       6.667976160760      2.610581848382      4.039660059301    1    1    5
       0.357655206834      3.440269198314      3.391592209902    1    1    5
    28  0.5000  58.710   1 1 0.2         : IATOMN ALFA AMION ILOC IVAN
     9  0.5000  18.998   1 1 0.2         : IATOMN ALFA AMION ILOC IVAN
     6  0.5000  12.011   1 1 0.2         : IATOMN ALFA AMION ILOC IVAN
     8  0.5000  15.999   1 1 0.2         : IATOMN ALFA AMION ILOC IVAN
     1  0.5000  12.011   1 1 0.2         : IATOMN ALFA AMION ILOC IVAN
     0 0 0 0 0  : icond, inipos, inivel, ininos, iniacc
      0    1    : ipre, ipri
   0400 1000    0   420000.00    0 : nmd1,nmd2,last_iter,cpumax,ifstop
      6    1         : SIMPLE=1,BROYD1=2,BROYD2=3,DFP=4,PULAY=5
      0   30 0.10    : iter_start, KBXMIX,  MIX_ALPHA
      0.20   0.30   0.20   0.20   0.20   : dtim1,dtim2,dtim3,dtim4,dtim
    200.00   6      1      1.00D-10      : dtio ,imdalg, iexpl, edelta
     -0.0010 1.00D+03      0             : width,forccr,istress
 rev-vdW-DF2       2                     : xctype,kspin
      1.00                               : destm
    101                                  : nbztyp
      4    4    4
      4    4    4
     48         : keg
      1         : nextst(mb)
      0         : 0 random numbers 1: matrix
      2         : imsd  1=MSD, 2=Preconditioned
      0         : evaluate_eko_diff
         0      : npdosao
         0    0.0
     2                                   : mvelsc
   300.0D0   30.0D0    30       1.0D0    : tempw,tolp,nroll,anneal
   500.0D0    8        15       1        : wnosep,nhc,nosy,ndrt
     5.0D-8                              : frict
     0                                   : mcnstr
     DIST    1    3            1.83401
     DIST    2    3            1.83401
     BEND    1    3    2     104.23195
 &ESM
  BOUNDARY_CONDITION BARE
 &END

- Ni/nfinp_1 (substrate)
  0 0 0 0 0 0 : Ni ( 4L + 16L )
      6.0000 20.0000   5   48  48    : gmax, gmaxp, ktyp, katm, katm2
      1    0         : num_space_group, type
 Cartesian
       18.853223409384     0.000000000000      0.000000000000
       0.000000000000     19.996863180000      0.000000000000
       0.000000000000      0.000000000000     47.133058523459
     06   06   01    1    1    1  :  K_mesh
      1    0      : ncord,ninv : iwei,imdtyp,ityp
      -4.723393044566     -6.659760068776     -0.244176482326    1    1    1
      -4.766966242109     -0.002829325009     -0.237055142658    1    1    1
      -4.743794937018      6.656139747554     -0.235880054434    1    1    1
      -0.011608354807     -6.657491571052     -0.270017269615    1    1    1
      -0.053793076202     -0.046032678740     -0.140472521299    1    1    1
       0.004101946979      6.632961379942     -0.132665384287    1    1    1
       4.698813209313     -6.654695829816     -0.251828880698    1    1    1
       4.685756715949      0.294502803370      0.007103429427    1    1    1
       4.659328430105      6.502758307018     -0.182316365983    1    1    1
       9.406005430046     -6.657768212578     -0.247436999355    1    1    1
       9.413612628005      0.025443431192     -0.235712396452    1    1    1
       9.405185522265      6.655221273086     -0.227420746967    1    1    1
      -2.362387725422     -3.315354047591     -2.385605053225    1    1    1
      -2.372460657256      3.324479261331     -2.406696727513    1    1    1
      -2.353468393749      9.967108679099     -2.351435540207    1    1    1
       2.380240190019     -3.280084445723     -2.392879725017    1    1    1
       2.318083997074      3.323346703637     -2.580038522499    1    1    1
       2.362350188616      9.975604524032     -2.394364577664    1    1    1
       7.032730190885     -3.270921711124     -2.329940471573    1    1    1
       7.102040811859      3.341277167718     -2.476733324667    1    1    1
       7.048003975979      9.969771766060     -2.351946440719    1    1    1
      11.759975516057     -3.327723005070     -2.360523328081    1    1    1
      11.784484202409      3.338143705962     -2.386944035892    1    1    1
      11.771270751385      9.995685282686     -2.350387594640    1    1    1
      -4.713305852300     -6.665621060000     -4.713305852300    1    0    1
      -4.713305852300      0.000000000000     -4.713305852300    1    0    1
      -4.713305852300      6.665621060000     -4.713305852300    1    0    1
       0.000000000000     -6.665621060000     -4.713305852300    1    0    1
       0.000000000000      0.000000000000     -4.713305852300    1    0    1
       0.000000000000      6.665621060000     -4.713305852300    1    0    1
       4.713305852300     -6.665621060000     -4.713305852300    1    0    1
       4.713305852300      0.000000000000     -4.713305852300    1    0    1
       4.713305852300      6.665621060000     -4.713305852300    1    0    1
       9.426611704700     -6.665621060000     -4.713305852300    1    0    1
       9.426611704700      0.000000000000     -4.713305852300    1    0    1
       9.426611704700      6.665621060000     -4.713305852300    1    0    1
      -2.356652926200     -3.332810530000     -7.069958778500    1    0    1
      -2.356652926200      3.332810530000     -7.069958778500    1    0    1
      -2.356652926200      9.998431590000     -7.069958778500    1    0    1
       2.356652926200     -3.332810530000     -7.069958778500    1    0    1
       2.356652926200      3.332810530000     -7.069958778500    1    0    1
       2.356652926200      9.998431590000     -7.069958778500    1    0    1
       7.069958778500     -3.332810530000     -7.069958778500    1    0    1
       7.069958778500      3.332810530000     -7.069958778500    1    0    1
       7.069958778500      9.998431590000     -7.069958778500    1    0    1
      11.783264630900     -3.332810530000     -7.069958778500    1    0    1
      11.783264630900      3.332810530000     -7.069958778500    1    0    1
      11.783264630900      9.998431590000     -7.069958778500    1    0    1
    28  0.5000  58.710   1 1 0.2         : IATOMN ALFA AMION ILOC IVAN
     9  0.5000  18.998   1 1 0.2         : IATOMN ALFA AMION ILOC IVAN
     6  0.5000  12.011   1 1 0.2         : IATOMN ALFA AMION ILOC IVAN
     8  0.5000  15.999   1 1 0.2         : IATOMN ALFA AMION ILOC IVAN
     1  0.5000  12.011   1 1 0.2         : IATOMN ALFA AMION ILOC IVAN
     0 0 0 0 0  : icond, inipos, inivel, ininos, iniacc
      0    1    : ipre, ipri
   0400 1000    0   420000.00    0 : nmd1,nmd2,last_iter,cpumax,ifstop
      6    1         : SIMPLE=1,BROYD1=2,BROYD2=3,DFP=4,PULAY=5
      0   30 0.10    : iter_start, KBXMIX,  MIX_ALPHA
      0.20   0.30   0.20   0.20   0.20   : dtim1,dtim2,dtim3,dtim4,dtim
    200.00   6      1      1.00D-10      : dtio ,imdalg, iexpl, edelta
     -0.0010 1.00D+03      0             : width,forccr,istress
 rev-vdW-DF2       2                     : xctype,kspin
      1.00                               : destm
    101                                  : nbztyp
      4    4    4
      4    4    4
    336         : keg
      1         : nextst(mb)
      0         : 0 random numbers 1: matrix
      2         : imsd  1=MSD, 2=Preconditioned
      0         : evaluate_eko_diff
         0      : npdosao
         0    0.0
     2                                   : mvelsc
   300.0D0   30.0D0    30       1.0D0    : tempw,tolp,nroll,anneal
   500.0D0    8        15       1        : wnosep,nhc,nosy,ndrt
     5.0D-8                              : frict
     0                                   : mcnstr
     DIST    1    3            1.83401
     DIST    2    3            1.83401
     BEND    1    3    2     104.23195
 &ESM
  BOUNDARY_CONDITION BARE
 &END

In the current working directory, perform the following or alike by using the job script:
- Combined system
 $ mpirun -np 24 < nfinp_1 > nfout_1
 $ mpirun -np 24 ./STATE < nfinp_1 > nfout_1
- Adsorbate
 $ cd HFACH
 $ mpirun -np 24 < nfinp_1 > nfout_1
 $ mpirun -np 24 ./STATE < nfinp_1 > nfout_1
- Substrate
 $ cd ../Ni
 $ mpirun -np 24 < nfinp_1 > nfout_1
 $ mpirun -np 24 ./STATE < nfinp_1 > nfout_1

** Prep of the COOP analysis [#ga0e82af]
After converging all the wave functions (./zaj.data, HFACH/zaj.data, and Ni/zaj.data), we calculate the overlap matrices and prepare for the COOP analysis.
First, create a symbolic links in the current working directory as follows:
 $ ln -s HFACH/zaj.data zak1.data
 $ ln -s Ni/zaj.data zak3.data
and then create a new input file for the preparation.
Let us copy nfinp_1 to nfinp_coop
 $ cp nfinp_1 nfinp_coop
and change ICOND from 0 to 17 in nfinp_coop as
    17 0 0 0 0  : icond, inipos, inivel, ininos, iniacc
Furthermore, we need to create 'nfcoop.data' to set the computational parameters.
'nfcoop.data' may look like:
  2                            : KSPIN    
  40                           : KNV3
  43     48      15      101   : NPDOSMO1 KPDOSMO1 KATM1 KLMTA1
  0      0       0       0     : NPDOSMO2 KPDOSMO2 KATM2 KLMTA2
  336    336     48      864   : NPDOSMO3 KPDOSMO3 KATM3 KLMTA3
  -15.0  5.0     0.5     2001  : EMIN EMAX EWIDTH NPDOSE
Having prepared "nfcoop.data", execute STATE using nfinp_coop as:
 $ mpirun -np 24 < nfinp_coop > nfout_coop
 $ mpirun -np 24 ./STATE < nfinp_coop > nfout_coop

Finally, we need to prepare 'eko.data', a file containing the Kohn-Sham eigenvalues (use stat2eigen.pl attached to this page). Execute the following in the current working directory:
 $ state2eigen.pl nfout_1 > eko.data 

** COOP analysis [#x19d8dda]
When all the preliminary calculations are successfully performed, we may have:
- coop.data
- coop_bij.data
- coop_sij.data
- eko.data
- nfcoop.data

and we are ready to perform COOP analysis!
Assuming the command search path for the COOP program ('coop_analysis") is set, we just execute
 $ coop_analysis > coop.out
and densities of states (DOSs) projected onto the molecular orbitals (MOPDOSs), DOSs weighted with overlap population (COOP), and DOSs weighted with the gross populations (GPOP) are written to "coop.out"

To extract MOPDOSs, type
 $ grep 'PDOS\:' coop.out | awk -F\: '{print $2}' > pdos.dat

To extract COOPs, type
 $ grep 'COOP2\:' coop.out | awk -F\: '{print $2}' > coop2.dat

In the current example, the system is spin polarized, and above files contain both spin-up and spin-down components.
For convenience, we split them as follows:
 $ wc -l pdos.dat

     4006 pdos.dat

 $ split -l 2003 pdos.dat; mv xaa pdos_up.dat; mv xab pdos_dw.dat

 $ wc -l coop2.dat

     4006 coop2.dat

 $ split -l 2003 coop2.dat; mv xaa coop2_up.dat; mv xab coop2_dw.dat

Those files (pdos.dat/coop2.dat) contain energy and DOS data as follows:
- 1st column: energy with respect to the Fermi level (in eV)
- 2nd - NPDOSMO1 column (2nd - 1st MO, 3rd - 2nd MO, 4th - 3rd MO, ...)

Then, spin-up MOPDOS for HOMO, LUMO, and LUMO+1 may be plotted by using gnuplot as:
 > plot 'pdos_up.dat' using ($1):($39) title 'HOMO  ' with lines,\
       ''            using ($1):($40) title 'LUMO  ' with lines,\
       ''            using ($1):($41) title 'LUMO+1' with lines
and spin-up COOP for HOMO (orbital #38), LUMO (orbital #39), and LUMO+1 (orbital #40) may be plotted as:
 > plot 'coop2_up.dat' using ($1):($39) title 'HOMO  ' with lines,\
       ''              using ($1):($40) title 'LUMO  ' with lines,\
       ''              using ($1):($41) title 'LUMO+1' with lines
considering that HOMO is the 38th orbital in the current setting.

** References [#t5c09734]
-R. Hoffmann, Rev. Mod. Phys. 60, 601 (1988).
-H. Aizawa and S. Tsuneyuki, Surf. Sci. 399, L364 (1998).
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS