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)].
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.
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:
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
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
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:
$ mpirun -np 24 < nfinp_1 > nfout_1
$ cd HFACH $ $ mpirun -np 24 < nfinp_1 > nfout_1
$ cd ../Ni $ $ mpirun -np 24 < nfinp_1 > nfout_1
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
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
When all the preliminary calculations are successfully performed, we may have:
$ coop_analysis > coop.outand 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"