クロスアビリティ Winmostarサポートチームです。
WinmostarはQuautum ESPRESSOを簡単かつ高度に利用するための統合GUI環境となっています。学生は無料で利用でき、学生以外も無料トライアルを入手することができますので、是非 WinmostarのWebサイト をご覧ください。
#0. はじめに
第一原理計算ソフトQuantunm ESPRESSO https://www.quantum-espresso.org の入力ファイルの書き方について、複数回にわたって解説していきます。今回は第12回目です。NEB法について解説します。
この記事では、初歩的な内容しか紹介しません。
入力ファイルの詳細について知りたい方は、マニュアル http://www.quantum-espresso.org/Doc/INPUT_NEB.html をご参照下さい。
#1. Nudged Elastic Band法
Nudged Elastic Band(NEB)法は、化学反応の反応経路を決定する。具体的には、化学反応における初期構造(反応物)と最終構造(生成物)を入力データとして与えて、両構造をつなぎ合わせる多数の中間構造を生成する。つまり、初期構造→中間構造1→中間構造2→・・・→中間構造N→最終構造という、連続的な原子座標の変化で化学反応を表現するのである。中間構造は、隣接する2つの別の構造と「バネ」でつなぎ合わされている。中間構造に含まれる原子には、DFTで計算された力に加え、当該のバネによる力が働く。この力に沿って、全ての中間構造に含まれる全ての原子の座標を最適化する。最適化が完了すると、反応経路における原子座標およびエネルギーが得られる。エネルギーが最大となる中間構造が、化学反応における遷移状態である。
#2. 計算手順
NEB法は、以下の手順で計算する。
- 初期構造の構造最適化
- 最終構造の構造最適化
- NEB計算の実行
1.および2.の計算では、pw.xにて実行する。両計算で最適化された構造を入力として、3.のNEB計算を実行する。NEB計算には、neb.xという実行モジュールを使用する。また、一連の計算を通して、波動関数カットオフやk点サンプリングなどのSCFにおける計算条件を統一しておく必要がある。ATOMIC_POSITIONSにおける原子の順番も合致するように設定する。周期境界条件による原子座標の1周期分のズレにも、留意が必要である。
#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サイト をご覧ください。
Quantum ESPRESSO入力ファイル作成手順シリーズ
1.結晶構造の作成
2.SCF計算の設定
3.擬ポテンシャルファイルの選択方法
4.原子座標のみの最適化
5.格子ベクトル及び格子内部の原子座標の最適化
6.状態密度の計算
7.局所状態密度の計算
8.バンド構造の計算
9.バンド数の設定
10.van der Waals相互作用
11.LDA+U法
12.NEB法
13.Phonon計算(特定q点)
14.Phonon計算(バンド構造)
15.擬ポテンシャルの作成
16.擬ポテンシャルのテスト
17.SCF計算の入力ファイルの実例