#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