Quantum ESPRESSO入力ファイル作成手順１０．van der Waals相互作用

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

#0. はじめに
第一原理計算ソフトQuantunm ESPRESSO <https://www.quantum-espresso.org> の入力ファイルの書き方について、複数回にわたって解説していきます。今回は第１０回目です。van der Waals相互作用を考慮したいくつかの計算手法について、その使い方を解説します。

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


#1. DFTにおけるvan der Waals相互作用の取り扱い
密度汎関数理論(DFT)は本来、厳密な理論であり 全ての物理的な相互作用を表現可能です。しかしながら、実際のDFTの運用においては、交換相関汎関数をLDAまたはGGAにて近似します。その結果、いくつかの種類の相互作用を表現しきれないことが知られています。van der Waals(vdW)相互作用はその一つです。vdW相互作用は誘起双極子モーメント間の引力相互作用であり、電子密度間にオーバーラップが無くても働く長距離力です。vdWエネルギーは相関汎関数の中に含まれるべきものであるのですが、電子密度のオーバーラップを前提としたLDAおよびGGA近似では 当該のエネルギーを記述できません。そこで、この問題を解決するためにいくつかの手法が考案されています。大別すると、

 - 古典的分散力場
 - 準古典的分散力場
 - 非局所相関汎関数

の３つの手法があります。いずれも、LDAまたはGGA近似で計算された全エネルギーに、vdWエネルギーを加算するというものです。各手法は、vdWエネルギーの計算の仕方に違いがあります。各手法の詳細は、次項の通りです。


#2. 古典的分散力場
vdWエネルギーは、1/r^6に比例する相互作用であることが経験的に知られています。そこで、原子間距離rを用いて、古典的力場にてvdWエネルギーを計算します。力場パラメータには、各元素に対して事前に用意されたセットを利用します。Quantum ESPRESSOには古典的分散力場法として、DFT-D2およびDFT-D3が実装されています。いずれも、Grimmeによって考案された手法であり、有機分子系に対して最適化されています。DFT-D2については、以下の設定で利用できます。

```
&SYSTEM
  vdw_corr = "DFT-D3"
  dftd3_version = 2
/
```

vdw_corrに"DFT-D2"ではなく、"DFT-D3"を設定することに注意してください。「dftd3_version = 2」にて、DFT-D2を使うことを指示しています。DFT-D3を使う場合の設定は、

```
&SYSTEM
  vdw_corr = "DFT-D3"
  dftd3_version = 3
/
```

です。DFT-D2では各元素のパラメータは完全に固定されているのですが、DFT-D3では原子の結合次数や配位状況に応じてパラメータが変化するように設計されています。このため、DFT-D3はDFT-D2の上位互換です。特段の目的がない限り、DFT-D3を使うことをお勧めします。また、これらの手法はあくまで古典的力場であるがゆえに汎用性に乏しく、有機分子系以外には適用できない可能性があります。


#3. 準古典的分散力場
古典的分散力場法では事前に用意された力場パラメータを用いるため、汎用的な運用ができないという欠点があります。これを改善したのが、準古典的分散力場です。具体的には、SCF計算完了後の電荷密度から力場パラメータを算定します。力場パラメータが事後的に決定されるために、汎用性があります。ただし、電荷密度から力場パラメータへの変換には恣意性があり、いくつかのモデルがあります。Quantum ESPRESSOにて利用可能なモデルは、

 - Tkatchenko-Schefflerモデル
 - Exchange-hole dipole-momentモデル

の２つです。Tkatchenko-Schefflerモデルは、

```
&SYSTEM
  vdw_corr = "TS"
/
```

という設定で使用できます。Exchange-hole dipole-momentモデルの設定は、

```
&SYSTEM
  vdw_corr = "XDM"
/
```

です。


#4. 非局所相関汎関数
vdW相互作用は、本質的には相関汎関数に含まれるべきものです。そこで、相関汎関数に対して直接に補正をします。具体的には、1/r^6を相互作用カーネルとする非局所積分項を相関汎関数に加算します。当該項が非局所相関汎関数と呼ばれます。LDAおよびGGAは(準)局所的な汎関数であるため、エネルギーおよび一粒子ポテンシャルの計算は容易です。一方、非局所相関汎関数は1/r^6の畳み込み積分を含むため、計算が少々複雑になります。ただし、厳密交換相互作用のように軌道依存性がないため、古典クーロン相互作用と同様の取り扱いで演算可能です。つまり、フーリエ変換にて波数空間にて畳み込み積分を解けばよいのです。ただし、相互作用カーネルの解析的なフーリエ変換が出来ないため、事前に数値的なフーリエ変換を実施しておく必要があります。相互作用カーネルは等方的なので、当該の数値フーリエ変換は一次元で実施すればよく、計算コストは低いです。

Quantum ESPRESSOにて利用可能な非局所相関汎関数には、以下の２つがあります。

- vdW-DF
- rVV10

両汎関数とも事前に相互作用カーネルを計算して、これをファイルに保存しておく必要があります。その後、SCF計算を実施します。


##4-1. 相互作用カーネル
SCF計算を実施する前に、汎用関数ごとに相互作用カーネルを生成します。Quantum ESPRESSOのPWモジュールには、相互作用カーネル生成用の実行体が含まれています。vdW-DFの場合にはgenerate_vdW_kernel_table.x、rVV10の場合にはgenerate_rVV10_kernel_table.xを使います。これらを実行すると、それぞれ、vdW_kernel_tableおよびrVV10_kernel_tableというファイルが生成されます。実行時に引数などは不要で、数分で計算は完了します。生成したファイルは、擬ポテンシャルファイルと同様の格納場所に保存して下さい。相互作用カーネルファイルは、基本的には擬ポテンシャルファイルと同じ扱いとなります。これらのファイルは系に無依存なので、一度生成すれば再生成は不要です。つまり、vdW_kernel_tableおよびrVV10_kernel_tableは一度作ってしまえば、任意の系で使い回しができます。


##4-2. 非局所相関汎関数の適用
相互作用カーネルを準備した後、SCF計算を実施します。計算の仕方は、通常のSCF計算に準拠します。ただし、入力ファイルにて、汎用関数の名前を設定する必要がります。vdW-DFの場合には、

```
&SYSTEM
  input_dft = "vdw-df"
/
```

と設定します。rVV10の場合には、

```
&SYSTEM
  input_dft = "rvv10"
/
```

です。vdW-DFは固体や表面系に、rVV10は分子系に適用される場合が比較的に多いようです。ただし、両汎関数の使い分けに厳密な指針があるわけではないので、既報文献などを参考にしてください。


#5. 計算コスト
通常、非局所相関汎関数は計算コストが高く、その代替手法として(準)古典的分散力場が運用されます。しかしながら、Quantum ESPRESSOに実装されている非局所相関汎関数は十分に高速化されており、LDAおよびGGAとほぼ同等のコストにて計算できます。したがって、特段の事由がない限り、vdW相互作用の取り扱いには非局所相関汎関数(vdw-DF, rVV10)を利用するのが望ましいです。

---------------------------------------
なお、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)