Quantum ESPRESSO入力ファイル作成手順１２．NEB法

クロスアビリティ Winmostarサポートチームです。
WinmostarはQuautum ESPRESSOを簡単かつ高度に利用するための統合GUI環境となっています。学生は無料で利用でき、学生以外も無料トライアルを入手することができますので、是非 [WinmostarのWebサイト](https://winmostar.com/jp/) をご覧ください。

#0. はじめに
第一原理計算ソフトQuantunm ESPRESSO <https://www.quantum-espresso.org> の入力ファイルの書き方について、複数回にわたって解説していきます。今回は第１２回目です。NEB法について解説します。

> この記事では、初歩的な内容しか紹介しません。
> 入力ファイルの詳細について知りたい方は、マニュアル http://www.quantum-espresso.org/Doc/INPUT_NEB.html をご参照下さい。


#1. Nudged Elastic Band法
Nudged Elastic Band(NEB)法は、化学反応の反応経路を決定する。具体的には、化学反応における初期構造(反応物)と最終構造(生成物)を入力データとして与えて、両構造をつなぎ合わせる多数の中間構造を生成する。つまり、初期構造→中間構造１→中間構造２→・・・→中間構造N→最終構造という、連続的な原子座標の変化で化学反応を表現するのである。中間構造は、隣接する２つの別の構造と「バネ」でつなぎ合わされている。中間構造に含まれる原子には、DFTで計算された力に加え、当該のバネによる力が働く。この力に沿って、全ての中間構造に含まれる全ての原子の座標を最適化する。最適化が完了すると、反応経路における原子座標およびエネルギーが得られる。エネルギーが最大となる中間構造が、化学反応における遷移状態である。


#2. 計算手順
NEB法は、以下の手順で計算する。

  1. 初期構造の構造最適化
  2. 最終構造の構造最適化
  3. NEB計算の実行

1.および2.の計算では、pw.xにて実行する。両計算で最適化された構造を入力として、3.のNEB計算を実行する。NEB計算には、neb.xという実行モジュールを使用する。また、一連の計算を通して、波動関数カットオフやk点サンプリングなどのSCFにおける計算条件を統一しておく必要がある。ATOMIC_POSITIONSにおける原子の順番も合致するように設定する。周期境界条件による原子座標の１周期分のズレにも、留意が必要である。


#3. 入力ファイル
NEB計算(neb.x)の入力ファイルは、以下の通りである。

```
BEGIN
BEGIN_PATH_INPUT
&PATH
    string_method  = "neb"
    opt_scheme     = "broyden"
    ci_scheme      = "no-CI"
    nstep_path     =  250
    path_thr       =  0.1
    ds             =  1.0
    k_max          =  0.6
    k_min          =  0.4
    num_of_images  =  6
/
END_PATH_INPUT

BEGIN_ENGINE_INPUT
&CONTROL
/

&SYSTEM
    ibrav       =  4
    a           =  5.71
    c           =  20.0
    ntyp        =  2
    nat         =  5
    ecutwfc     =  25.0
    ecutrho     =  100.0
    occupations = "smearing"
    smearing    = "gaussian"
    degauss     =  0.01
/

&ELECTRONS
    conv_thr = 1.0E-6
/

K_POINTS {automatic}
 2  2  1  0 0 0

ATOMIC_SPECIES
Al     26.98154  Al.pbe-rrkj.UPF
H       1.00794  H.pbe-rrkjus.UPF

BEGIN_POSITIONS
FIRST_IMAGE
ATOMIC_POSITIONS {angstrom}
Al      1.427977   0.824443  10.000000  0 0 0
Al      4.283932   0.824443  10.000000  0 0 0
Al      0.000000   3.297772  10.000000  0 0 0
Al      2.855955   3.297772  10.000000  0 0 0
H       1.299617   2.399220  10.000000
INTERMEDIATE_IMAGE
ATOMIC_POSITIONS {angstrom}
Al      1.427977   0.824443  10.000000
Al      4.283932   0.824443  10.000000
Al      0.000000   3.297772  10.000000
Al      2.855955   3.297772  10.000000
H       1.688701   2.174582  10.000000
INTERMEDIATE_IMAGE
ATOMIC_POSITIONS {angstrom}
Al      1.427977   0.824443  10.000000
Al      4.283932   0.824443  10.000000
Al      0.000000   3.297772  10.000000
Al      2.855955   3.297772  10.000000
H       2.077786   1.949944  10.000000
INTERMEDIATE_IMAGE
ATOMIC_POSITIONS {angstrom}
Al      1.427977   0.824443  10.000000
Al      4.283932   0.824443  10.000000
Al      0.000000   3.297772  10.000000
Al      2.855955   3.297772  10.000000
H       2.466870   1.725306  10.000000
LAST_IMAGE
ATOMIC_POSITIONS {angstrom}
Al      1.427977   0.824443  10.000000
Al      4.283932   0.824443  10.000000
Al      0.000000   3.297772  10.000000
Al      2.855955   3.297772  10.000000
H       2.855955   1.500668  10.000000
END_POSITIONS

END_ENGINE_INPUT
END
```


##3-1. NEB法の設定
入力ファイルにおいて、BEGIN_PATH_INPUT ～ END_PATH_INPUTの範囲に NEB法の詳細を設定する。

```
BEGIN_PATH_INPUT
&PATH
    string_method  = "neb"
    opt_scheme     = "broyden"
    nstep_path     =  200
    path_thr       =  0.1
    ds             =  1.0
    k_max          =  0.6
    k_min          =  0.4
    num_of_images  =  6
/
END_PATH_INPUT
```

NEB法を実行する際には、string_method  = "neb" の行は必須である。opt_schemeは最適化のアルゴリズムである。いくつかのアルゴリズムが容易されているが、大抵の場合には"broyden"を選択していれば問題なく収束に至る。nstep_pathはNEB計算のステップ数であり、数十～数百程度の値を設定すればよい。path_thrは収束閾値(eV/Angstrom単位)。0.05 ～ 0.1程度としていれば、十分な精度が得られる。dsはステップ幅(bohr単位)。k_maxおよびk_minは、バネ定数の最大値および最小値である。特段の事由がない限り、ds, k_max, k_minは、それぞれ、1.0, 0.6, 0.4 に固定でよい。収束性が極度に悪い場合などには、dsの値を少し小さくすると収束性が改善される場合がある。num_of_imagesは計算に用いる構造(イメージ)の数である。当該値には、初期構造および最終構造も含まれている。NEB法では少なくとも一つの中間構造が必要であるため、num_of_imagesには3以上の整数を設定する必要がある。中間構造の数は多ければ多いほど、反応経路および遷移状態の精度が向上する。ただし、構造数が多ければ計算コストも増大する。精度と計算コストのバランスを鑑みると、構造間の距離が概ね0.5Å程度となるようにnum_of_imagesを設定するのが良い。構造間の距離は、計算実行時の標準出力における「inter-image distance」という行に表示される。


##3-2. SCFの設定
SCFに関する設定項目は、入力ファイルにおける BEGIN_ENGINE_INPUT ～ END_ENGINE_INPUT に記述する。

```
BEGIN_ENGINE_INPUT
&CONTROL
  ・・・・・・
/

&SYSTEM
  ・・・・・・
/

&ELECTRONS
  ・・・・・・
/

K_POINTS
  ・・・・・・

ATOMIC_SPECIES
  ・・・・・・

BEGIN_POSITIONS
  ・・・・・・
END_POSITIONS

END_ENGINE_INPUT
```

設定内容は、通常のSCF計算の場合と同様である。ただし、&IONS や &CELL の設定は出来ない。また、NEB法においては、全ての構造においてユニットセルは固定される。このため、vc-relaxや関連する項目の設定は不可である。


##3-3. 構造の設定
構造に関する情報は、入力ファイルにおける BEGIN_POSITIONS ～ END_POSITIONS に設定する。

```
BEGIN_POSITIONS
FIRST_IMAGE
ATOMIC_POSITIONS {angstrom}
Al      1.427977   0.824443  10.000000  0 0 0
Al      4.283932   0.824443  10.000000  0 0 0
Al      0.000000   3.297772  10.000000  0 0 0
Al      2.855955   3.297772  10.000000  0 0 0
H       1.299617   2.399220  10.000000
INTERMEDIATE_IMAGE
ATOMIC_POSITIONS {angstrom}
Al      1.427977   0.824443  10.000000
Al      4.283932   0.824443  10.000000
Al      0.000000   3.297772  10.000000
Al      2.855955   3.297772  10.000000
H       1.688701   2.174582  10.000000
INTERMEDIATE_IMAGE
ATOMIC_POSITIONS {angstrom}
Al      1.427977   0.824443  10.000000
Al      4.283932   0.824443  10.000000
Al      0.000000   3.297772  10.000000
Al      2.855955   3.297772  10.000000
H       2.077786   1.949944  10.000000
INTERMEDIATE_IMAGE
ATOMIC_POSITIONS {angstrom}
Al      1.427977   0.824443  10.000000
Al      4.283932   0.824443  10.000000
Al      0.000000   3.297772  10.000000
Al      2.855955   3.297772  10.000000
H       2.466870   1.725306  10.000000
LAST_IMAGE
ATOMIC_POSITIONS {angstrom}
Al      1.427977   0.824443  10.000000
Al      4.283932   0.824443  10.000000
Al      0.000000   3.297772  10.000000
Al      2.855955   3.297772  10.000000
H       2.855955   1.500668  10.000000
END_POSITIONS
```

初期構造はFIRST_IMAGE、最終構造はLAS_IMAGE、中間構造はINTERMEDIATE_IMAGEに記述する。中間構造については、複数設定可能である。XYZ座標の後ろに記載する座標可動有無フラグは、初期構造に対してのみ設定すれば十分である。初期構造にて設定した当該フラグは、中間構造および最終構造に対しても自動的に反映される。また、ここで設定した構造の総数は、num_of_imagesにて設定したものに合致しなくてよい。合致していない場合には、プログラムが不足している中間構造を自動的に補間して、構造数がnum_of_imagesになるように調整される。

NEB法において、初期構造および最終構造は入力データである。一方、中間構造は本来的には出力データ(計算結果)である。ここで設定している中間構造というのは、NEB法における最適化計算の初期推定として利用される。つまり、中間構造の入力は補助的なデータであり、省略も可能である。中間構造を省略する場合には、

```
BEGIN_POSITIONS
FIRST_IMAGE
ATOMIC_POSITIONS {angstrom}
Al      1.427977   0.824443  10.000000  0 0 0
Al      4.283932   0.824443  10.000000  0 0 0
Al      0.000000   3.297772  10.000000  0 0 0
Al      2.855955   3.297772  10.000000  0 0 0
H       1.299617   2.399220  10.000000
LAST_IMAGE
ATOMIC_POSITIONS {angstrom}
Al      1.427977   0.824443  10.000000
Al      4.283932   0.824443  10.000000
Al      0.000000   3.297772  10.000000
Al      2.855955   3.297772  10.000000
H       2.855955   1.500668  10.000000
END_POSITIONS
```

とすればよい。ただし、計算の効率性や収束性を考慮すると、物理的・化学的知見に基づいて妥当な中間構造を予め用意するのが良い。

---------------------------------------
なお、Winmostarを利用するとQuautum ESPRESSOをGUI上から簡単かつ高度に活用することができます。学生は無料で利用でき、学生以外も無料トライアルを入手することができますので、是非 [WinmostarのWebサイト](https://winmostar.com/jp/) をご覧ください。

Quantum ESPRESSO入力ファイル作成手順シリーズ
[１．結晶構造の作成](https://qiita.com/xa_member/items/727c1a62930611babaf7) 
[２．SCF計算の設定](https://qiita.com/xa_member/items/a098e94d633a1d29f1c0) 
[３．擬ポテンシャルファイルの選択方法](https://qiita.com/xa_member/items/006d9dd44c662a17903d) 
[４．原子座標のみの最適化](https://qiita.com/xa_member/items/dc860b1656f7dfe93c8a)
[５．格子ベクトル及び格子内部の原子座標の最適化](https://qiita.com/xa_member/items/4c667817e50facd8a770)
[６．状態密度の計算](https://qiita.com/xa_member/items/7aa75304b2ce7f90c8d4)
[７．局所状態密度の計算](https://qiita.com/xa_member/items/95c7bd64981f7329b94b)
[８．バンド構造の計算](https://qiita.com/xa_member/items/a519c53b63df75a68894)
[９．バンド数の設定](https://qiita.com/xa_member/items/d923ea537328cdba8b10)
[１０．van der Waals相互作用](https://qiita.com/xa_member/items/bd64362329c7235bf248)
[１１．LDA+U法](https://qiita.com/xa_member/items/ab3e1333e92bc424f5a7)
[１２．NEB法](https://qiita.com/xa_member/items/e3b63a1fdca12f95e8cb)
[１３．Phonon計算（特定q点）](https://qiita.com/xa_member/items/77e464c01c5db1e847ea)
[１４．Phonon計算（バンド構造）](https://qiita.com/xa_member/items/5c02fcae08431588659d)
[１５．擬ポテンシャルの作成](https://qiita.com/xa_member/items/5feb8f432170141c89cd)
[１６．擬ポテンシャルのテスト](https://qiita.com/xa_member/items/3902c1660fb7064a4c34)
[１７．SCF計算の入力ファイルの実例](https://qiita.com/xa_member/items/febde40c8a17b7b83cc5)