LoginSignup
5
3

Quantum ESPRESSO入力ファイル作成手順12.NEB法

Last updated at Posted at 2019-10-08

クロスアビリティ 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法は、以下の手順で計算する。

  1. 初期構造の構造最適化
  2. 最終構造の構造最適化
  3. 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計算の入力ファイルの実例

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3