* 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).