有限要素によるhybrid汎関数の実装
TRANSCRIPT
@dc1394 2017/8/13 Rev. 2.0
有限要素によるHybrid汎関数の実装
このスライドの内容
有限要素によるKohn-Sham方程式の離散化
L(S)DAやGGA
LSDAやGGAのH原子とHe原子における数値例
LSDAやGGAにおける問題点(自己相互作用問題)
Hartree-Fock交換
Hybrid汎関数(PBE0)の導入
PBE0のH原子とHe原子に対する数値例
Kohn-Sham方程式
Kohn-Sham方程式(以下KS方程式と呼ぶ)は,原子単位系を用いると以下のように書ける。
なお,式を簡単にするためスピンは省略した(以後断りなく同様に省略する)。ただし原子については,
である(ここでZは原子番号)。
vHartree(r)とvxc(r)については後で考えることにして,まずはこの方程式を有限要素で離散化することを考える。
KS方程式の変数分離
veff(r)は球対称であると仮定するならば,
と変数分離が可能である。ここで,n, l, mはそれぞれ主量子数,方位量子数,磁気量子数である。
この変数分離により,KS方程式から以下の二つの方程式が得られる。
ただし,第二式の解は,球面調和関数として解析的に得られる。
有限要素による離散化
この微分方程式は,次のDirichlet境界条件を満たす。
この微分方程式を,Galerkin法によって離散化する。ただし,基底関数にはLobatto多項式を用いる。
最終的に,次のような一般化固有値問題が得られる。
C++による実装
一般化固有値問題の数値解法には,LAPACKのdsbgvx関数を用いる(Aは対称正定値帯行列)。
前ページの詳しい計算は下記の論文[1][2]を参照。
[1] Z. Romanowski, Mol. Phys. 107, 1339 (2009).
[2] Z. Romanowski, Modelling Simul. Mater. Sci. Eng. 17, 04001 (2009).
Hartreeポテンシャル
HartreeポテンシャルvHartree(r)は,以下のPoisson方程式から求められる。
である(ここでfn,lは固有状態(n, l)における占有数)。
Poisson方程式の境界条件
ここで, と置くならば,
が得られる。この常微分方程式を有限要素で離散化する。
この方程式は次のDirichlet境界条件,
を満たすが,ここで, が斉次微分方程式を満たすことを用いれば,境界条件は
と簡単にできる。元の式の結果を得るには,得られた数値解に を加えれば良い。
Poisson方程式の離散化
前ページの式を離散化することによって,最終的に,
という(おなじみの形の?)連立一次方程式が得られる。
この方程式をGMRES法等の高度の方法で解いて
も良いのだが,たかだか数十元程度なので,今回はLAPACKのdpbsvx関数を用いる(Aは対称正定値帯行列)。
C++による実装
以上の実装については,下記の論文の著者自身によってコード(プログラム言語はC++)が公開されている[1]。
今回はこのコードに,Hybrid汎関数を実装する。
[1] ratom: https://code.google.com/p/ratom/
交換相関ポテンシャル
交換相関ポテンシャルvxc(r)を厳密に求める式は,現在に至るまで見つかっていない。
従って,交換相関ポテンシャルについては,何らかの近似を用いる必要がある。
よく用いられている近似として,局所(スピン)密度近似(Local (Spin) Density Approximation,L(S)DA),一般化勾配近似(Generalized Gradient Approximation,GGA),そしてHybrid汎関数がある。
次ページ以降で,これらについて詳しく説明する。
L(S)DA交換相関
L(S)DAの場合,交換相関エネルギー汎関数は以下の表式となる(n(r)を電子密度とする)。なお,式
を簡単にするためスピンは省略した(以後断りなく同様に省略する)。
対応する交換相関ポテンシャルは,Exc[n]を汎関数微分することにより得られ,
となる。
交換と相関の寄与の分割
εxchom(n)は,交換の寄与と相関の寄与に分割すること
ができる。
εxhom(n)は解析的に求められるが,εc
hom (n)を解析的に求めるのは不可能である(高密度・低密度の極限においては解析的な式が得られている)。
従って, εchom (n)の表式は,量子モンテカルロ法など
による本質的に厳密な計算結果をフィッティングして求める。
εxhom (n)として,Slater-Diracの交換汎関数を紹介する。
εchom (n)は表式が複雑となるため紹介しない。
L(S)DA汎関数の具体的な表式
Diracは1930年,以下の表式を導いた[1](1951年にSlaterも同様の式を導いた[2])。
この式は,L(S)DA交換汎関数として一般的に用いられている。
なお,L(S)DA相関汎関数では,Vosko-Wilk-Nusair(VWN)[3]などがよく用いられている。
[1] P. A. M. Dirac, (Mathematical) Proceedings of the Cambridge Philosophical Society 26, 376 (1930).
[2] J. C. Slater, Phys. Rev. 81(3), 385 (1951).
[3] S. H. Vosko, L. Wilk, and M. Nusair, Can. J. Phys. 58, 1200 (1980)
GGA交換相関
GGAでは,交換相関エネルギー汎関数は以下の表式となる。
対応する交換相関ポテンシャルは,
となる。
GGA汎関数の具体的な表式
εxc(n, |∇n|)はL(S)DAと同様に,εxとεcに分けることができる。 εxとεcの具体的な形は多様であり,また複雑になるのでここでは紹介しない。
交換汎関数ではBecke (B88)[1],PerdewとWang
(PW91)[2],Perdew, BurkeとErnzerhof (PBE)[3]などがよく用いられている。
相関汎関数では,PBE[3],Lee-Yang-Parr (LYP)[4]などがよく用いられている。
[1] A. D. Becke, Phys. Rev. A, 38, 3098 (1988).
[2] J. P. Perdew, et al., Phys. Rev. B. 46, 6671 (1992).
[3] J. P. Perdew, K. Burke, and M. Ernzerhof, Phys. Rev. Lett. 77, 3865 (1996).
[4] C. Lee, W. Yang and R. G. Parr, Phys. Rev. B. 37, 785 (1988)
Libxcの利用
交換相関汎関数は多数存在するが,どの汎関数が優れているかは一概には言えない。計算する系や用途に応じて使い分けるべきである。
多くの第一原理計算(量子化学計算)プログラムでは,入力ファイルで汎関数を指定するようになっている。
私のコードでもいくつかの汎関数が利用でき,入力ファイルで汎関数を指定するようにしている。しかし,汎関数を自分で実装するのは非常に面倒なので,Libxc[1]というライブラリを利用している。
[1] http://www.tddft.org/programs/octopus/wiki/index.php/Libxc
KS方程式の解法
以上の式から,以下のような非線形連立常微分方程式が得られる。これは反復計算法によって解かなくてはならない。
この反復を,入力と出力が一致するまで行う。
このとき,全エネルギーは大局的な極小値(最小値)になる。
反復計算法による解法
反復計算法は,原子に対しては簡単な一次混合法
で十分であり,今回はこれを用いる。
より高度な方法としては,Broyden法[1],修正Broyden法[2],RMM-DIIS法(Pulay法)[3],GR-Pulay
法[4]などがある。
[1] C. G. Broyden, Math. Comp. 19, 577 (1965).
[2] D. D. Johnson, Phys. Rev. B. 38, 12807 (1988).
[3] P. Pulay, Chem. Phys. Lett. 73, 393 (1980).
[4] D. R. Bowler and M. J. Gillan, Chem. Phys. Lett. 325, 475 (2000).
計算結果
H原子に対する計算
H原子について,有限要素法を用いてKohn-Sham
方程式を解き,計算結果を図及び表にまとめた。
交換相関汎関数については,LSDA(-VWN)とGGA(-PBE)の二つを用いて,それぞれ別に計算し,それらをHartree-Fockの結果(厳密な結果)と比較した。
H原子に対する電子密度の比較
厳密な密度は,LSDA,GGAのほぼ中間にある。
H原子に対する電子密度の比較(y軸対数目盛)
LSDA,GGAは
遠方ではよく似た振る舞いを示し,厳密な密度と比べて誤差が大きくなる。
H原子に対する電荷分布の比較
LSDA,GGAは厳密な電荷分布より裾が長い。おそらく,LSDAとGGAが一様電子ガスから導いた結果であるためだと思われる。
H原子に対する交換ポテンシャルの比較(厳密な密度を使用)
LSDA,GGAはポテ
ンシャルが浅すぎる。また遠方で急速に減衰し,-1/rに漸
近しない。
GGAはポテンシャルが原点で発散する
LSDA,GGAは,厳密な交
換ポテンシャルを全く再現していない。
厳密な交換ポテンシャル
厳密な交換ポテンシャルは,遠方で-1/rに漸近する。
これはフェルミ孔が,原子核の周囲に局在する,単一の電荷を有するという事実[1]から明らかである。
しかし,LSDAやGGAなどの,近似汎関数による交換ポテンシャルは,遠方で急速に減衰し,遠方で-1/rに漸近しない。これは,これらの近似汎関数による遠方での物理的記述が,不十分であることを意味する。
[1] Manoj K. Harbola and Viraht Sahni, Phys. Rev. Lett. 62, 489 (1989).
H原子に対する計算結果
H原子に対する計算結果を表にまとめた。交換エ
ネルギー,相関エネルギーについては,厳密な密度を使用した場合を括弧付きで示した(単位は全てHartree)。
LSDA-VWN GGA-PBE Hartree-Fock(厳密)
軌道エネルギー(固有値) -0.2690 -0.2791 -0.5000
交換エネルギー -0.2564
(-0.2680)
-0.3018
(-0.3059)
-0.3125
相関エネルギー -0.0217
(-0.0221)
-0.0057
(-0.0060)
0.0000
全エネルギー -0.4787 -0.5000 -0.5000
H原子に対する計算結果の考察
全エネルギーを厳密な値と比較すると,LSDAでは95.8%,GGAでは100.0%の値を与える。これは非常に良い結果と言える。
LSDAとGGAは,軌道エネルギーと交換エネルギーの絶対値を過小評価する。また,交換ポテンシャルも厳密な結果を与えない。
なお,1電子問題であるH原子には相関が存在しない(そもそも,相関とは多体効果の寄与であった)ため,Hartree-Fockは厳密な結果を与える。
LSDA,GGAではH原子においても相関が残る。これは全エネルギーを低下させているという意味で,結果的に良い方向に作用しているとも言えるが,やはり非論理的である。
He原子に対する計算
同様に,He原子についても,有限要素法を用いてKohn-Sham方程式を解き,計算結果を図及び表にまとめた。
交換相関汎関数についても,H原子と同様に,LSDA(-VWN)とGGA(-PBE)の二つを用いて,それぞれ別に計算し,それらをHartree-Fockの結果と比較した。
He原子に対する電子密度の比較
いずれの汎関数もH原子と同様の傾向が見られる。
Hartree-Fock密度は,LSDA,GGA
のほぼ中間にある。
He原子に対する電子密度の比較(y軸対数目盛)
LSDA,GGAは
遠方ではよく似た振る舞いを示
す。
He原子に対する電荷分布の比較
LSDA,GGAはHartree-Fockによる電荷分布より裾が長い。理由はH原子の場合と同じく,LSDAとGGAが一様電子ガスから導いた結果であるためだと思われる。
He原子に対する交換ポテンシャルの比較(Hartree-Fock密度を使用)
LSDA,GGAは,H原子と同様,厳密な交換ポテンシャルを全く再現していない。
He原子に対する計算結果
He原子に対する計算結果を表にまとめた。交換エネルギー,相関エネルギーについては,Hartree-Fock密度を使用した場合を括弧付きで示した(単位は全てHartree)。
[1] J. D. Baker, et al., Phys. Rev. A, 41, 1247 (1990).
[2] R.M.マーチン 『物質の電子状態上』シュプリンガー・ジャパン株式会社(2010)
[3] T. Kinoshita, Phys. Rev. 105, 1490 (1957).
LSDA-VWN GGA-PBE Hartree-Fock 厳密(参考)
軌道エネルギー(固有値) -0.5704 -0.5793 -0.9180 -0.7259[1]
交換エネルギー -0.8618
(-0.8840)
-1.0051
(-1.0136)
-1.0258 -1.0258[2]
相関エネルギー -0.1115
(-0.1129)
-0.0411
(-0.0420)
0.0000 -0.0420[2]
全エネルギー -2.8348 -2.8929 -2.8617 -2.9037[3]
He原子に対する計算結果の考察
全エネルギーを厳密な値と比較すると,LSDAで97.6%,GGAで99.6%の値を与える。これは非常に良い結果と言える。
しかしLSDAとGGAは,H原子と同様,軌道エネルギーと交換エネルギーの絶対値を過小評価する。交換ポテンシャルもやはり厳密な結果を与えない。
GGAにおいて,相関エネルギーは非常に良い結果を与える。
Hartree-Fockは,交換エネルギーに対しては厳密な結果を与える。軌道エネルギーの絶対値は過大評価する。
自己相互作用問題
LSDA,GGAは,交換エネルギー,交換ポテンシャルの絶対値を過小評価する。また,軌道エネルギーの絶対値も過小評価する。
これは,Hartree項と交換項に存在する非物理的な自己相互作用が,互いに完全に相殺しないことに起因していると考えられる。
厳密な交換汎関数ではこれらは互いに完全に相殺する。しかし,実際は完全に相殺しない(近似汎関数を用いているため)。
そして,電子が自分自身と相互作用することで,占有軌道のエネルギー準位が不安定化する(=エネルギー準位の絶対値を過小評価)。
これは,自己相互作用問題と言われている。
Hybrid汎関数の着想
一般的な傾向として,Hartree-FockはLSDA, GGAとは
逆に,軌道エネルギーの絶対値を過大評価する。これは,Hartree-Fockでは相関が無視されているためと言われている。
LSDA,GGAは,交換と相関の両方を近似的に取り入れている。一方,Hartree-Fockでは,交換は厳密に扱われているが,相関は完全に無視されている。
Hartree-Fockで交換を計算して,LSDA,GGAで相関を
計算することは可能だろうか?そうすれば,軌道エネルギーも改善されるのではないか?
この着想から生まれたのが,Hybrid汎関数である。
Hartree-Fock交換
交換項にHartree-Fock交換(以下HF交換と呼ぶ)を用いることを考えよう。HF交換エネルギーは,
であるので,対応するポテンシャルは,
である(本来はスピンについても和をとらなくてはならないが,ここでは省略した)。
HF交換(続き)
ここで,
であり,
である。
HF交換の問題
KS方程式においては,交換項に,HF交換の式をそのまま用いることはできない。
なぜならば,これらの式に現れる固有関数は,相関を含まないHF方程式の固有関数を意味しているからである。
従って, HF方程式の固有関数の代わりに,KS方程式における固有関数を用いて交換項を計算すると,正しくない結果になると考えられる。
結局,他に情報がないので,KS方程式の固有関数を用いるしかないが,それでもHF交換に加えてなにがしかの工夫は必要である。
従って,HF交換とLSDA,GGA交換(とLSDA,GGA相関)を「混ぜる」ことを考える。
Hybrid (PBE0)汎関数
Perdew, ErnzerhofとBurkeは,交換相関エネルギーに対して以下の式を提案した[1]。
すなわち,HF交換エネルギーを1/4混ぜた。これはHybrid汎関数の一つであり,PBE0汎関数と呼ばれている。
対応するポテンシャルは,
である。
[1] J. Perdew, M. Ernzerhof, and K. Burke, J. Chem. Phys. 105, 9982 (1996).
H原子とHe原子のHF交換
HF交換の表式は複雑なため,一般の原子の場合の実装は困難である。
ただし,H原子とHe原子は特別な場合であり,HF
交換は簡単になる。
H原子の場合,HF交換はHartree項の符号を変えたものになる。
またHe原子の場合,HF交換はHartree項の符号を変えたもののちょうど半分となる。
今回はこれらの原子について実装する。
H原子に対する(Hybrid-)PBE0汎関数による計算
再度,H原子に対して,有限要素法を用いてKohn-
Sham方程式を解き,計算結果を図及び表にまとめた。
交換相関汎関数には(Hybrid-)PBE0汎関数を用いた。また,その結果をLSDA(-VWN),GGA(-PBE)およびHartree-Fockの結果(厳密な結果)と比較した。
H原子に対する電子密度の比較
PBE0は,Hartree-
Fock密度をほぼ再現している。
H原子に対する電子密度の比較(y軸対数目盛)
PBE0は,LSDAやGGAと比べて,遠方でよりHartree-
Fock密度に近くなる。
H原子に対する電荷分布の比較
LSDA,GGA,PBE0の順に厳密な密度に近づいていることが分かる(DFTの「ヤコブの梯子」の通り)。
H原子に対する交換ポテンシャルの比較(厳密な密度を使用)
Hybrid-PBE0はGGAより厳密なポテンシャルと近い。が,基本的な傾向(原点で発散)は変わらない。
H原子に対する計算結果
H原子に対する計算結果を表にまとめた。交換エ
ネルギー,相関エネルギーについては,厳密な密度を使用した場合を括弧付きで示した(単位は全てHartree)。
LSDA-VWN GGA-PBE Hybrid-PBE0 Hartree-Fock(厳密)
軌道エネルギー(固有値) -0.2690 -0.2791 -0.3355 -0.5000
交換エネルギー -0.2564
(-0.2680)
-0.3018
(-0.3059)
-0.3045
(-0.3076)
-0.3125
相関エネルギー -0.0217
(-0.0221)
-0.0057
(-0.0060)
-0.0058
(-0.0060)
0.0000
全エネルギー -0.4787 -0.5000 -0.5013 -0.5000
Hybrid-PBE0は,変分原理から逸脱する!
H原子におけるHybrid-PBE0による改善と問題
Hybrid-PBE0は,交換エネルギー及び軌道エネル
ギーの値において改善が見られ,特に軌道エネルギーの値は著しく改善している。
しかしそれでも,厳密値と比べるとまだ満足な結果とは言えない。
また,(当然と言えば当然であるが)相関エネルギーの値は改善していない。
そして何より,全エネルギーが厳密な値より低くなってしまい,変分原理から逸脱してしまう。
He原子に対する電子密度の比較
PBE0は,Hartree-
Fock密度をほぼ再現している。
He原子に対する電子密度の比較(y軸対数目盛)
PBE0は,LSDAやGGAと比べて,遠方でよりHartree-
Fock密度に近くなる。
He原子に対する電荷分布の比較
H原子と同じ傾向が見られる。
He原子に対する交換ポテンシャルの比較(HF密度を使用)
PBE0はGGAよりは厳密なポテンシャルと近いが,基本的な傾向は変わらない
He原子に対する計算結果(PBE0による改善)
He原子に対する計算結果を表にまとめた。交換エネルギー,相関エネルギーについては,HF密度を使用した場合を括弧付きで示した(単位は全てHartree)。
PBE0は,特に軌道エネルギーにおいて改善が見られる。しかしそれでも,厳密値と比べるとまだ満足な結果とはいえない。
GGA PBE0 Hartree-Fock 厳密(参考)
軌道エネルギー(固有値)
-0.5793 -0.6696 -0.9180 -0.7259
交換エネルギー -1.0051
(-1.0136)
-1.0106
(-1.0166)
-1.0258 -1.0258
相関エネルギー -0.0411
(-0.0420)
-0.0414
(-0.0420)
0.0000 -0.0420
全エネルギー -2.8929 -2.8952 -2.8617 -2.9037
まとめ
Lobatto多項式を基底関数として,KS方程式を有
限要素で離散化できることがわかった。実装は既存のコード(RAtom)を利用した。
上記のコードに,ライブラリ(Libxc)を用いて,LSDA
とGGA汎関数を実装した。
H原子とHe原子に対して,PBE0汎関数を実装した。
交換エネルギー(交換ポテンシャル)と軌道エネルギーに対して,一定の改善が見られた。
今後の課題
HF交換を一般の原子に対して実装する。
HSE (Heyd-Scuseria-Ernzerhof)汎関数等,他のHybrid汎関数を実装する。
参考文献
R.M.マーチン 『物質の電子状態上』シュプリンガー・ジャパン株式会社(2010)
R.G.パール,W.ヤング 『原子・分子の密度汎関数法』シュプリンガー・フェアラーク東京(1996)
J.M.ティッセン 『計算物理学』シュプリンガー・フェアラーク東京(2003)
参考サイト
交換ホールの実空間分割によるO(N)交換汎関数: http://www.jaist.ac.jp/ms/labs/Ozaki-
Lab/research_highlights017_jp.html