flowchart TB
A["出発の密度 n_in<br>(原子の密度を重ねた当て推量)"] --> B["密度から場をつくる<br>(静電ポテンシャル+交換相関)"]
B --> C["その場のもとで<br>電子の方程式を解く"]
C --> D["新しい密度 n_out が出る"]
D --> E{"n_in と n_out は<br>十分に一致したか?<br>estimated scf accuracy < conv_thr"}
E -- "いいえ" --> F["n_in と n_out を混ぜて<br>次の n_in をつくる"]
F --> B
E -- "はい" --> G["収束。全エネルギーと力を返す"]
style F fill:#fff3cd,stroke:#ffc107
style G fill:#d4edda,stroke:#28a745
8 電子と場のつじつまを合わせる
電子の配置が場を決め、その場がまた電子の配置を決める。
鶏と卵のようなこの循環を、計算機はどうやって解くのか。
この章のゴール:SCF を「電子と場の自己無撞着なつじつま合わせ」として説明でき、「収束した」ことと「物理的に正しい」こととが別の階層にあると、後章の検算の言葉で予告できるようになる。
第5章と第6章で、私たちは二つの刻みを手に入れた。ecutwfc で波をどこまで細かく数えるか、k 点で周期をどれだけ細かく標本化するか。どちらも、つまみを細かい側へ回し、エネルギーの差が無視できる所で止める――こちらが外から制御する収束だった。本章で出会う収束は、性格が違う。つまみを固定したまま、計算機が内側で勝手に回す反復であり、止め時も計算機自身が判断する。その反復こそ、第一原理計算の心臓部にあたる自己無撞着場(SCF, self-consistent field)である。
1 自己無撞着という循環
電子は、原子核がつくる引力の中だけを動いているのではない。ほかの電子がつくる場の中も動いている。電子全体の散らばり方――電子密度――が決まれば、各点の電子が感じる場(電子どうしの静電ポテンシャルと、量子力学的な交換相関の効き)が決まる。ところが、その場の中で電子の方程式を解いて初めて、電子がどこにどれだけいるか、つまり密度が決まる。場を知るには密度がいり、密度を知るには場がいる。鶏と卵である。
この堂々巡りを、計算機は力ずくの反復で断ち切る。まず密度をひとつ当て推量で置く。たいていは、孤立した原子の密度を結晶の形に重ね合わせただけの、素朴な出発点である。その密度から場をつくり、場の中で電子の方程式を解き、新しい密度を得る。出てきた密度を次の入力に使い、また場をつくり……と回す。入力した密度と、出てきた密度が十分に一致したら、循環は閉じる。入力と出力が食い違わない――自分自身とつじつまの合った――場と密度の組に行き着いたことになる。これが「自己無撞着」の名の由来である。
この反復は、あくまで刻みを固定したまま、計算の内側で回るものだと押さえておきたい。ecutwfc も k 点メッシュも、循環のあいだは動かない。前章までの収束が「解像度を上げて差を消す」外側の作業だったのに対し、SCF は「解像度を決めたうえで、その解像度における正解に内側からたどり着く」作業である。同じ「収束」という言葉が、二つの違う階層で使われていることに、ここで気づいておくと後が楽になる。
2 反復はどう進むか
出発の当て推量は、本物の密度からはかなり外れている。だから一回目につくった場も、その場で解いて得た密度も、まだ粗い。それを入力に戻して二回目を回すと、前より本物に近い密度が出る。回すごとに、入力と出力のずれが縮んでいく。
このずれの大きさを、計算機は毎回エネルギーの言葉で見積もり、ログに書き出す。それが estimated scf accuracy(推定された SCF の精度)の行である。代表的な走りでは、おおよそ次のように進む(数値は擬ポテンシャルや刻みで変わるので、目安として読んでほしい)。
iteration # 1 ... total energy = -93.45019 Ry estimated scf accuracy < 5.4E-2 Ry
iteration # 2 ... total energy = -93.45211 Ry estimated scf accuracy < 2.9E-3 Ry
iteration # 3 ... total energy = -93.45289 Ry estimated scf accuracy < 1.0E-4 Ry
iteration # 4 ... total energy = -93.45296 Ry estimated scf accuracy < 9.1E-6 Ry
iteration # 5 ... total energy = -93.45297 Ry estimated scf accuracy < 4.5E-7 Ry
iteration # 6 ... total energy = -93.45297 Ry estimated scf accuracy < 1.9E-7 Ry
iteration # 7 ... total energy = -93.45297 Ry estimated scf accuracy < 1.7E-9 Ry
二つの列を並べて見てほしい。total energy は、4 回目あたりで表示の桁が動かなくなる。一方 estimated scf accuracy は、その後もおよそ一桁ずつ小さくなり続ける。エネルギーが先に落ち着き、密度の食い違いがそれを追って消えていく、という順序である。だから「エネルギーの表示が止まったから終わり」と早合点してはいけない。止め時の基準は、エネルギーの見かけではなく、この精度の行のほうにある。
どこで止めるかを決めるのが、第4章で &electrons に書き込んだ conv_thr だ。estimated scf accuracy がこの基準値を初めて下回った回で、計算機は「つじつまが合った」と判断し、反復を抜ける。conv_thr を小さくすればより厳しく詰め、回数は増える。止め時の厳しさを、私たちはこの一行で握っている。
小課題 7.1
上のログについて、conv_thr を \(1.0\times10^{-8}\) Ry とする(本書で実際に使った値)。
「収束した」と判断され、反復が止まるのは何回目か。
2 回目の
total energy(\(-93.45211\) Ry)を、別の格子定数での計算と引き算して差をとるのは、なぜ意味がないか。一言で述べよ。
解答例
estimated scf accuracyがconv_thr\(=1\times10^{-8}\) Ry を初めて下回るのは 7 回目である(\(1.7\times10^{-9} < 1\times10^{-8}\))。6 回目はまだ \(1.9\times10^{-7}\) Ry で基準を超えている。だから計算機は 7 回目で循環を閉じ、そこで止まる。2 回目の値は、まだ動いている途中の数字だからである。入力と出力の密度がまだ \(2.9\times10^{-3}\) Ry(約 40 meV)も食い違っており、そこから引き算しても、差の中身の大半は物理ではなく「まだ消えていない SCF の食い違い」になる。第3章で見たとおり意味は差に宿るが、その差を信じるには、引かれる二つの数字がどちらも収束していなければならない。
3 「収束した」とは何が起きたことか
収束したとき、計算機の中で起きたことを正確に言葉にしておこう。入力の密度と出力の密度が、conv_thr の幅の中で一致した。すなわち、場と密度とが互いを再生産する一つの組に行き着いた。返ってくる全エネルギーと力は、その自己無撞着な組に対する値である。
大事なのは、これが「いま立てた方程式を、固定した刻みと近似のもとで、最後まで解き切った」という意味だ、という点である。ecutwfc と k 点で決めた解像度、選んだ交換相関の汎関数、擬ポテンシャル――それらをすべて認めたうえでの、唯一の自己無撞着解。収束とは、その解に計算が到達したという、計算の内側で完結する達成なのである。立派な達成だが、完結する先は計算の内側だ、という限定がここでは効いてくる。
4 収束は出発点であって、保証ではない
ここで一段だけ、慎重に踏み込む。収束が答えているのは「私たちが書いた方程式を解けたか」までで、「その方程式が本物のシリコンをどこまで写しているか」は、まだ手つかずのまま残っている。この二つは別の階層にある。それを数字で感じておこう。
まず conv_thr の細かさを実感する。本書で使った \(1\times10^{-8}\) Ry を eV に直すと、\(1\ \mathrm{Ry} = 13.606\ \mathrm{eV}\) だから \[
1\times10^{-8}\ \mathrm{Ry} \times 13.606\ \mathrm{eV/Ry} \approx 1.4\times10^{-7}\ \mathrm{eV} = 0.14\ \mathrm{\mu eV}.
\]
次に、知りたい物理の大きさと比べる。シリコンの凝集エネルギーは約 \(4.6\) eV/atom、バンドギャップは約 \(1.1\) eV である。\(0.14\ \mathrm{\mu eV}\) は、凝集エネルギーのおよそ三千万分の一、ギャップのおよそ八百万分の一にすぎない。つまり SCF の循環は、私たちが問題にしている物理より七桁ほど細かいところまで、エネルギーを釘付けにしている。
以上より、こう結論できる。これほどよく収束した計算でも、それだけで本物に届くわけではない。次章で見るように、PBE で格子を緩めて得られる格子定数は約 \(5.47\) Å――本物の \(5.431\) Å より \(0.7\%\) 大きい。バンドギャップに至っては、標準的な PBE 計算は約 \(0.6\) eV と、教科書の約 \(1.1\) eV のほぼ半分にとどまることが知られている。この \(0.7\%\) や「半分」の出どころは、SCF の詰めの甘さではなく――そこは七桁の余裕で詰まっている――解いている方程式そのもの、すなわち選んだ近似にある。よく収束していることと、実験に合うこととは、はじめから別の階層の話なのである。
だから収束は、検算の終わりではなく、入口だ。きれいに循環が閉じた数字を、これから一つずつ実在の隣に置きにいく。その作業が第III部である。
よくある誤解
「estimated scf accuracy が conv_thr を下回った。だからこの計算は正しい」と読みたくなる。収束が保証するのは、入力の密度と出力の密度がつじつま合った――いま解いている方程式を、刻みと近似を固定したまま解き切った――ことである。それは確かな達成だが、「その方程式が本物のシリコンをどこまで写しているか」という別の階層の問いには、収束はまだ答えていない。だから次章以降、収束した数字をわざわざ実験値の隣に並べる。収束は、検算の終わりの合図ではなく、検算を始めてよいという合図なのである。
5 この章のまとめ
電子と場の鶏と卵を、計算は反復で解く。その心臓部をひととおり見た。
- SCF は、密度が場を決め、場が密度を決める循環を、入力の密度と出力の密度が一致するまで回して解く方法である。
- 反復は
estimated scf accuracyが小さくなる過程として読め、止め時を決めるのは第4章で置いたconv_thrである。total energyの表示が止まっても、それだけでは終わりの合図ではない。 - 「収束した」とは、循環が閉じたこと――固定した刻みと近似のもとで、方程式を最後まで解き切ったこと――である。
- 収束は数字のつじつま、という一つの階層の達成にすぎない。実験に合うかどうかは別の階層にあり、その答え合わせは第III部で行う。
そして第III部の入口で待っているのは、最初の答え合わせだ。私たちは計算に、実験どおりの格子(\(5.43\) Å)を入力で置いた。では計算は、自分でもその格子を選ぶのか。次章では、PBE で緩めて得られる格子定数(約 \(5.47\) Å)を、本物の \(5.431\) Å と、第1章で鉛筆だけから出した見積もり(約 \(5.4\) Å)の隣に並べ、三者がどこまで合うかを読む。