CO/Cu(110)界面

はじめに

ここではCu(110)に吸着したCO分子の調和振動数のfinite difference(frozen phono)法計算方法を記述します。 CO分子に加えてCOに結合したCu原子の変位も考慮します。 COと表面第1層、第2層のCu原子は事前に最適化されており、その構造を用いて作成された入力ファイルは以下です。

基本となる入力ファイル

  • 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

振動解析

振動解析を実行するためには、dynamical matrixの計算に必要な、原子に微小変位を与えた時、原子にかかる力の計算を行います。
そのためには入力ファイルに以下のキーワードで振動計算の指示する必要があります。

TASK VIB

それに加えて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
Last-modified: 2025-01-16 (木) 16:31:00 (488d)