CO/Cu(110)Interface

Introduction

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

  • 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

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

  • 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
    • 1行目
          1  0.10D+01   1
      1列目:明示的に変位を与える原子の数
      2列目:変位ベクトルにかける因子(fac)
      3列目:ダミー変数
    • 2行目
            1   0.0200000000   0.0000000000   0.0000000000
      1列目:変位を与える原子の指標(index) 2-3列目:変位ベクトル(x, y, z)実際の変位ベクトルは (x*fac, y*fac, z*fac)となります。
      ...
      与えたい変位をnfvibrate.dataに繰り返し入力しておきます。 通常は生の変位と負の変位を与えます。
  • 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

nfvibrate.dataが存在しない場合、STATEはすべての原子を変位させると仮定してnfvibrate.dataを生成して振動解析を実行します。
変位を与える原子を制限したい場合は以下のオプションを使用することも可能です。

&VIBRATION
 ATOM 1-3
&END

この例では原子1から3のみを変位することを指示しています。 現在、変位する原子を制限する方法はこれだけですので、このオプションを使用したい場合、特に変位させたい原子位置が離ればなれになっている場合には、入力ファイルの原子位置の順番を変えると良いでしょう。

入力ファイル

COとCuの三つの原子の変位を考慮して振動計算を行う場合の入力ファイルは以下のようになります。

  • 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
    構造最適化の場合とは異なり、原子質量は現実のものを指定するように気をつけて下さい。
    質量が異なる場合はnfforce.dataに記述される質量(atomic unit)を修正することで対応は可能です。

リスタート

スーパーコンピュータ等、実行時間に制限がある場合、振動計算(原子変位を与える計算)がすべて完了しない場合があります。 その場合には以下のキーワードを指定すると良いでしょう。

RESTART

あるいは

TASK RESTART_VIB

を使用しても良いでしょう。 再計算を行う際、nfforce.dataが存在すると計算された原子変位と原子にかかる力が追加されます。nfforce.dataが正しく継続して書き込まれているか注意深く確認して計算を進めて下さい(また計算をスクラッチから開始するときにnfforce.dataがワーキングディレクトリに存在しないことを確認しておきましょう)。

GiFによる振動数の計算

考慮したい原子変位を与えた計算が全て終了したら振動数の計算が可能になります。 振動解析にはgifというプログラムと''nfforce.data``を以下のように利用します。

gif -f nfforce.data
トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS