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.
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
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`.
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 0.10D+01 11列目:明示的に変位を与える原子の数
1 0.0200000000 0.0000000000 0.00000000001列目:変位を与える原子の指標(index) 2-3列目:変位ベクトル(x, y, z)実際の変位ベクトルは (x*fac, y*fac, z*fac)となります。
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の三つの原子の変位を考慮して振動計算を行う場合の入力ファイルは以下のようになります。
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構造最適化の場合とは異なり、原子質量は現実のものを指定するように気をつけて下さい。
スーパーコンピュータ等、実行時間に制限がある場合、振動計算(原子変位を与える計算)がすべて完了しない場合があります。 その場合には以下のキーワードを指定すると良いでしょう。
RESTART
あるいは
TASK RESTART_VIB
を使用しても良いでしょう。 再計算を行う際、nfforce.dataが存在すると計算された原子変位と原子にかかる力が追加されます。nfforce.dataが正しく継続して書き込まれているか注意深く確認して計算を進めて下さい(また計算をスクラッチから開始するときにnfforce.dataがワーキングディレクトリに存在しないことを確認しておきましょう)。
考慮したい原子変位を与えた計算が全て終了したら振動数の計算が可能になります。 振動解析にはgifというプログラムと''nfforce.data``を以下のように利用します。
gif -f nfforce.data