はじめに
Kohn-Sham密度汎関数理論 (DFT) における交換相関汎関数は近似の種類によって、一般的には以下のように分類できるでしょう。
- 局所密度近似 (LDA)
- 一般化勾配近似 (GGA)
- メタ一般化密度勾配近似 (meta-GGA)
- ファンデルワールス密度汎関数 (vdW-DF)
- ハイブリッド交換相関汎関数 (hyb)
これに加えて分散力補正DFT(dispersion corrected DFT)もあります。
DFT計算プログラムの一つであるQuantum-ESPRESSOには数多くの交相関汎関数が実装されていますが、それらの指定方法はマニュアルには詳しく記述されていないように思います。
この文書では代表的な交換相関汎関数の指定方法を記述します。
入力変数
入力ファイルの&sysmte ... /
においてinput_dft
という変数を以下のように明示的に指定します。
input_dft='pbe'
この例では交換相関汎関数としてPBEを指定しています。
input_dft
を明示的に指定しない場合、交換相関汎関数は擬ポテンシャルを生成する際に使用したもの(UPFファイルに記載)が使用されます。
使用可能な交換相関汎関数と変数名
以下に代表的な汎関数と変数名を示します。すべてのリストはQuantum-ESPRESSOのソースディレクトリ以下のModules/funct/
に含まれるfunct.f90
に記載してあるshort name
を参照して下さい。
LDA
input_dft | Exchange-correlation functional |
---|---|
pz | Perdew-Zunger |
vwn | Vosko-Wilk-Nusair |
hl | Hedin-Lundqvist |
gl | Gunnarsson-Lundqvist |
pw | Perdew-Wang |
GGA
input_dft | Exchange-correlation functional |
---|---|
bp | Becke-Perdew |
pw91 | Perdew-Wang '91 |
blyp | BLYP |
pbe | Perdew-Burke-Ernzerhof |
revpbe | Zhang-Yang |
rpbe | Hammer-Hansen-Norskov |
pbesol | PBEsol |
wc | Wu-Cohen |
hyb
input_dft | Exchange-correlation functional |
---|---|
pbe0 | PBE0 |
b3lyp | B3LYP |
hse | HSE06 |
gaupbe | Gau-PBE |
vdW-DF
input_dft | Exchange-correlation functional |
---|---|
vdw-df | vdW-DF1 |
vdw-df-c09 | vdW-DF-C09 |
vdw-df-obk8 | optB88-vdW |
vdw-df-ob86 | optB86b-vdW |
vdw-df-cx | vdW-DF-CX |
vdw-df2 | vdW-DF2 |
vdw-df2-c09 | vdW-DF2-C09 |
vdw-df2-b86r | rev-vdW-DF2 (vdW-DF2-B86R) |
vdw-df3-opt1 | vdW-DF3-opt1 |
vdw-df3-opt2 | vdW-DF3-opt2 |
vdw-df-C6 | vdW-DF-C6 |
rvv10 | rVV10 |
meta-GGA
input_dft | Exchange-correlation functional |
---|---|
tpss | TPSS |
m06l | M06-L |
scan | SCAN |
r2scan | r2SCAN |
Dispersion-corrected meta-GGA
input_dft | Exchange-correlation functional |
---|---|
rvv10-scan | SCAN-rVV10 |
Hybrid meta-GGA
input_dft | Exchange-correlation functional |
---|---|
sca0 | SCAN0 |
Hybrid vdW-DF
input_dft | Exchange-correlation functional |
---|---|
vdw-df-cx0 | vdW-DF-CX-0 |
vdw-df2-br0 | vdW-DF2-B86R-0 |
vdw-df-c090 | vdW-DF-C09-0 |
vdw-df-ahcx | vdW-DF-AHCX |
vdw-df2-ahbr | vdW-DF2-AHBR |
Other
input_dft | Exchange-correlation functional |
---|---|
BEEF | BEEF-vdW |
beef-vdw | BEEF-vdW |
Dispersion-corrected DFT
GGA/meta-GGA汎関数に半経験的分散力補正を加えるには&SYSTEM
ブロックの中でvdW_corr
というキーワードを使用します。
例えば
vdW_corr = 'DFT-D3'
と入力するとGrimmeのDFT-D3 (zero damping) が使用されます。
GrimmeのDFT-D2、DFT-D3 (zero-damping, BJ damping)、Tkatchenko-Scheffler(TS)vdW補正、Many-body dispersion (MBD)、Exchange-hole dipole-moment (XDM)法が使用可能です。これらはpw.x
のマニュアルに記載されていますので、ここでは省略します(今後この文書をアップデートする可能性はあります)。
半経験的分散力補正の場合、FT汎関数に依存するs6と呼ばれるパラメータがあり(london_s6
)、デフォルトは0.75ですが、s6が決定されていない汎関数が存在するので注意が必要です。例えばGrimmeのDFTD3プログラムではDFT-D2についてs6は以下のような値が使われているようです。
Exchange-correlation functional | s6 (DFT-D2) |
---|---|
BLYP | 1.2 |
B97 | 1.25 |
revPBE | 1.25 |
PBE | 0.75 |
TPSS | 1.0 |
B3LYP | 1.05 |
PBE0 | 0.6 |
TPSS0 | 0.85 |
DFT-D3に関してはdft-d3
ディレクトリ以下にあるcore.f90
に記載があります。DFT-D3ではすべての汎関数について$s_6 = 1$が使われ、汎関数毎に$s_{18}$などのパラメータが決定されています。
出力ファイルの記載
計算に用いる擬ポテンシャルを生成する際に使用された汎関数とSCF計算で使用される汎関数が違う場合、出力ファイルには以下のようなメッセージが出力されます。
IMPORTANT: XC functional enforced from input :
Exchange-correlation= RPBE
( 1 4 44 4 0 0 0)
Any further DFT definition will be discarded
Please, verify this is what you really want
この例はPBE擬ポテンシャルを使用してRPBE計算を実行した際に得られるメッセージです。ここに示される数字
( 1 4 44 4 0 0 0)
は以下のような内部変数に対応しています。
(iexch
icorr
igcx
igcx
inlc
imeta
imetac
)
これらの変数は交換相関汎関数を指定するための内部パラメータです。
Variable | description |
---|---|
iexch | (LDA) exchange functional |
icorr | (LDA) correlation functional |
igcx | Gradient correction on exchange |
igcc | Gradient correction on correlation |
inlc | Nonlocal correlation for vdW-DF and rVV10 |
imetac | meta-GGA correction on exchange |
imetac | meta-GGA correction on correlation |
QEの内部ではLDAを元に勾配補正等を追加する形で交換相関汎関数を定義しています。
すべての変数と対応する汎関数はModules/funct/
に含まれるfunct.f90
に記載されています。
(随時更新中)
交換相関汎関数に関連するウェブページ
(随時更新)