#author("2025-01-16T16:30:43+09:00","default:StatE","StatE")
#author("2025-01-16T16:31:00+09:00","default:StatE","StatE")
* CO/Cu(110)界面 [#y2a34dc3]
#Contents
** はじめに [#d2de0cb1]
ここではCu(110)に吸着したCO分子の調和振動数のfinite difference(frozen phono)法計算方法を記述します。
CO分子に加えてCOに結合したCu原子の変位も考慮します。
COと表面第1層、第2層のCu原子は事前に最適化されており、その構造を用いて作成された入力ファイルは以下です。
** 基本となる入力ファイル [#u18a4146]
- 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
** 振動解析 [#t2721a81]
振動解析を実行するためには、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のみを変位することを指示しています。
現在、変位する原子を制限する方法はこれだけですので、このオプションを使用したい場合、特に変位させたい原子位置が離ればなれになっている場合には、入力ファイルの原子位置の順番を変えると良いでしょう。
*** 入力ファイル [#h0c33dd2]
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
COLOR(red){構造最適化の場合とは異なり、原子質量は現実のものを指定するように気をつけて下さい。}
COLOR(red){構造最適化の場合とは異なり、原子質量は現実のものを指定するように気をつけて下さい。}~
質量が異なる場合は''nfforce.data''に記述される質量(atomic unit)を修正することで対応は可能です。
*** リスタート [#pc525998]
スーパーコンピュータ等、実行時間に制限がある場合、振動計算(原子変位を与える計算)がすべて完了しない場合があります。
その場合には以下のキーワードを指定すると良いでしょう。
 RESTART
あるいは
 TASK RESTART_VIB
を使用しても良いでしょう。
再計算を行う際、''nfforce.data''が存在すると計算された原子変位と原子にかかる力が追加されます。''nfforce.data''が正しく継続して書き込まれているか注意深く確認して計算を進めて下さい(また計算をスクラッチから開始するときに''nfforce.data''がワーキングディレクトリに存在しないことを確認しておきましょう)。
*** GiFによる振動数の計算 [#fed150f7]
考慮したい原子変位を与えた計算が全て終了したら振動数の計算が可能になります。
振動解析には''gif''というプログラムと''nfforce.data``を以下のように利用します。
 gif -f nfforce.data
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS