#author("2025-09-02T13:11:23+09:00","default:StatE","StatE")
#author("2025-09-02T14:03:28+09:00","default:StatE","StatE")
* CO/Cu(110)Interface [#x577f6fb]
#Contents
** Introduction [#z3a5c3bb]
In this document, how to perform the vibrational analysis of atoms and molecules adsorbed on a surface using the finite difference (frozen phonon) method, by taking CO adsorbed on Cu(110).
Here, in addition to the adsorbed CO molecule, the Cu atom underneath is also taken into account.
The system is modeled using a 4-layer Cu(110) slab.
Below is the input file of a CO adsorbed Cu(110) surface, which is already optimized.
CO molecule and Cu atoms in the first and second layers of the slab was optimized.
** Input file [#l3f09e64]
- ''nfinp.data''
 WF_OPT       DAV
 NTYP         3
 NATM         32
 GMAX         6.00
 GMAXP        20.00
 KPOINT_MESH  4   4   1
 KPOINT_SHIFT 1   1   0
 NSTEP        200
 MIX_ALPHA    0.30
 SMEARING     MP
 WIDTH        0.010
 EDELTA       1.D-10
 NEG          196
 XCTYPE       vdW-DF2
 ESM_BC       BC1
 CPUMAX       1600.0
 &CELL
      15.098909039006      0.000000000000      0.000000000000
       0.000000000000     14.235387960000      0.000000000000
       0.000000000000      0.000000000000     50.329696796687
 &END
 &ATOMIC_SPECIES
  Cu  63.54000 pot.Cu_pbe1
  C   12.01115 pot.C_pbe1
  O   15.99940 pot.O_pbe1
 &END
 &ATOMIC_COORDINATES CARTESIAN
       0.000003823996     -0.000001138123      3.702323615193    1    1    2
       0.000010283052     -0.000006912305      5.897216927318    1    1    3
       0.000000351042     -0.000002382316      0.053467056659    1    1    1
       5.089242487895     -0.000001108633     -0.208242367820    1    1    1
      10.009661676277      0.000001103467     -0.208241073609    1    1    1
       0.000001196465      7.117696353327     -0.191027901816    1    1    1
       5.012492707154      7.117697566474     -0.167155951780    1    1    1
      10.086413584750      7.117696561458     -0.167155627900    1    1    1
       2.507494428154      3.538363991660     -2.421985716480    1    1    1
       7.549453707970      3.590875576905     -2.405963340815    1    1    1
      12.591415007976      3.538365483794     -2.421988185457    1    1    1
       2.507492583039     10.697023879015     -2.421990853447    1    1    1
       7.549453621923     10.644515276442     -2.405964405967    1    1    1
      12.591413959874     10.697024958358     -2.421982246650    1    1    1
       0.000000000000      0.000000000000     -5.032969700311    1    0    1
       5.032969700311      0.000000000000     -5.032969700311    1    0    1
      10.065939338757      0.000000000000     -5.032969700311    1    0    1
       0.000000000000      7.117693980003     -5.032969700311    1    0    1
       5.032969700311      7.117693980003     -5.032969700311    1    0    1
      10.065939338757      7.117693980003     -5.032969700311    1    0    1
       2.516484819239      3.558846990002     -7.549454519543    1    0    1
       7.549454519543      3.558846990002     -7.549454519543    1    0    1
      12.582424219851      3.558846990002     -7.549454519543    1    0    1
       2.516484819239     10.676540969990     -7.549454519543    1    0    1
       7.549454519543     10.676540969990     -7.549454519543    1    0    1
      12.582424219851     10.676540969990     -7.549454519543    1    0    1
       0.000000000000      0.000000000000    -10.065939338757    1    0    1
       5.032969700311      0.000000000000    -10.065939338757    1    0    1
      10.065939338757      0.000000000000    -10.065939338757    1    0    1
       0.000000000000      7.117693980003    -10.065939338757    1    0    1
       5.032969700311      7.117693980003    -10.065939338757    1    0    1
      10.065939338757      7.117693980003    -10.065939338757    1    0    1
 &END
** Vibrational analysis [#l50a32b0]
For the vibrational analysis, we need to construct a dynamical matrix and diagonalize it.

In the STATE run, we add the following line to perform the vibrational mode analysis.
 TASK VIB
In addition, we need to create a file called `nfvibrate.data`.
-- Example of ''nfvibrate.data'' #1
     1  0.10D+01   1
  
       1   0.0200000000   0.0000000000   0.0000000000
 
     1 -0.10D+01   1
  
       1   0.0200000000   0.0000000000   0.0000000000
--- line #1
     1  0.10D+01   1
Column #1: index of atom to be displaced
Column #2: factor (magnitude) for the displacement
Column #1: number of atoms to be displaced~
Column #2: factor (magnitude) for the displacement~
Column #3: dummy variable
--- line #2
       1   0.0200000000   0.0000000000   0.0000000000
Column #1:atom index
Column #1:atom index~
Column #2-4 displacement vector in the cartesian coordinate. Actual displacement is  the vector multiplied by the factor (magnitude) specified in the line #1
...~
All the necessary displacement vectors should be given in `nfvibrate.data`.
Usually, we give a pair of plus and minus displacements.
-- Example of ''nfvibrate.data'' #2
     3  0.10D+01   1
  
       1   0.0018516229  -0.1016200502  -0.0086543879
       2   0.0042681410  -0.2329208549  -0.0086375658
       3   0.0003210803   0.0063360252  -0.0068488877
 
     3 -0.10D+01   1
  
       1   0.0018516229  -0.1016200502  -0.0086543879
       2   0.0042681410  -0.2329208549  -0.0086375658
       3   0.0003210803   0.0063360252  -0.0068488877

If ''nfvibrate.data'' is not found, `STATE` assumes that all the atoms are displaced, generates `nfvibrate.data`, and run the vibrational analysis.
If you want to limit the number of displaced atoms, following option can be used:
 &VIBRATION
  ATOM 1-3
 &END
In this example, atoms #1, #2, and #3 are displaced.
Currently, it is possible to specify the consecutive atoms, and therefore, if you want to displace a certain atoms, it is better to reorder the atomic positions, or otherwise you have to generate `nfvibrate.data` by yourself.
*** Input file for the vibrational analysis. [#y00e141f]
Below is an input file for the vibrational analysis, in which CO and Cu atom underneath is considered.
- ''nfinp_vib''
 TASK         VIB
 WF_OPT       DAV
 NTYP         3
 NATM         32
 GMAX         6.00
 GMAXP        20.00
 KPOINT_MESH  4   4   1
 KPOINT_SHIFT 1   1   0
 NSTEP        200
 MIX_ALPHA    0.30
 SMEARING     MP
 WIDTH        0.010
 EDELTA       1.D-10
 NEG          196
 XCTYPE       vdW-DF2
 ESM_BC       BC1
 CPUMAX       1600.0
 &VIBRATION
  ATOM 1-3
 &END
 &CELL
      15.098909039006      0.000000000000      0.000000000000
       0.000000000000     14.235387960000      0.000000000000
       0.000000000000      0.000000000000     50.329696796687
 &END
 &ATOMIC_SPECIES
  Cu  63.54000 pot.Cu_pbe1
  C   12.01115 pot.C_pbe1
  O   15.99940 pot.O_pbe1
 &END
 &ATOMIC_COORDINATES CARTESIAN
       0.000003823996     -0.000001138123      3.702323615193    1    1    2
       0.000010283052     -0.000006912305      5.897216927318    1    1    3
       0.000000351042     -0.000002382316      0.053467056659    1    1    1
       5.089242487895     -0.000001108633     -0.208242367820    1    1    1
      10.009661676277      0.000001103467     -0.208241073609    1    1    1
       0.000001196465      7.117696353327     -0.191027901816    1    1    1
       5.012492707154      7.117697566474     -0.167155951780    1    1    1
      10.086413584750      7.117696561458     -0.167155627900    1    1    1
       2.507494428154      3.538363991660     -2.421985716480    1    1    1
       7.549453707970      3.590875576905     -2.405963340815    1    1    1
      12.591415007976      3.538365483794     -2.421988185457    1    1    1
       2.507492583039     10.697023879015     -2.421990853447    1    1    1
       7.549453621923     10.644515276442     -2.405964405967    1    1    1
      12.591413959874     10.697024958358     -2.421982246650    1    1    1
       0.000000000000      0.000000000000     -5.032969700311    1    0    1
       5.032969700311      0.000000000000     -5.032969700311    1    0    1
      10.065939338757      0.000000000000     -5.032969700311    1    0    1
       0.000000000000      7.117693980003     -5.032969700311    1    0    1
       5.032969700311      7.117693980003     -5.032969700311    1    0    1
      10.065939338757      7.117693980003     -5.032969700311    1    0    1
       2.516484819239      3.558846990002     -7.549454519543    1    0    1
       7.549454519543      3.558846990002     -7.549454519543    1    0    1
      12.582424219851      3.558846990002     -7.549454519543    1    0    1
       2.516484819239     10.676540969990     -7.549454519543    1    0    1
       7.549454519543     10.676540969990     -7.549454519543    1    0    1
      12.582424219851     10.676540969990     -7.549454519543    1    0    1
       0.000000000000      0.000000000000    -10.065939338757    1    0    1
       5.032969700311      0.000000000000    -10.065939338757    1    0    1
      10.065939338757      0.000000000000    -10.065939338757    1    0    1
       0.000000000000      7.117693980003    -10.065939338757    1    0    1
       5.032969700311      7.117693980003    -10.065939338757    1    0    1
      10.065939338757      7.117693980003    -10.065939338757    1    0    1
 &END
COLOR(red){Note that you have to set the actual atomic mass for the vibrational analysis. This is different from the geometry optimization, in which we sometimes use artifical atomic masses.}

*** Restart [#n51b8c96]
In case all the calculations are not finished within the defined time, we need to restart the calculation.
In such a case, use the keyword
 RESTART
Or
 TASK RESTART_VIB
When you restart the calculation, new data (forces) will be appended to the exsisting ''nfforce.data''. Please carefully check if the data `nfforce.data` is OK or not.
Also, please make sure ''nfforce.data'' does not exist, when you start the vibrational analysis from scratch.
*** Calculation of the vibrational frequencies using the ''GiF'' program [#fed150f7]
Once all the calculations are done, it is possible to calculate the vibrational frequencies using the ''GiF'' program as follows.
 gif -f nfforce.data
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS