1. Hartree-Fock 法
Hartree-Fock 法については、
以前の記事で空間波動関数 \(\psi(\b{r}_1,\cdots\b{r}_N)\) を使う形式で一通り説明した。Hartree-Fock 法はフェルミオンのハミルトニアンが与えられたとき、近似的な基底状態を求める手法である。そのエッセンスは
- 基底状態を近似する波動関数として、スレーター行列式の形の波動関数 \(\Phi_{\phi_1\phi_2\cdots\phi_N}(\b{r}_1,\b{r}_2,\cdots,\b{r}_N)\)s
\[
\Phi_{\phi_1\phi_2\cdots\phi_N}(\b{r}_1,\b{r}_2,\cdots,\b{r}_N) = \frac{1}{\sqrt{N!}}\left|\begin{array}{cccc}
\phi_1(\b{r}_1) & \phi_1(\b{r}_2) & \cdots & \phi_1(\b{r}_N) \\
\phi_2(\b{r}_1) & \phi_2(\b{r}_2) & \cdots & \phi_2(\b{r}_N) \\
\vdots & \vdots & \ddots & \vdots \\
\phi_N(\b{r}_1) & \phi_N(\b{r}_2) & \cdots & \phi_N(\b{r}_N) \\
\end{array}
\right|
\]
を仮定する。
- スレーター行列式に現れる関数の組\(\phi_1,\phi_2,\cdots,\phi_N\)はそれぞれが波動関数としての資格を持てるように、\(\int \phi_i^*\phi_jd\b{r}=\delta_{ij}\)を条件とする。
- \(\int \Phi^* H \Phi d\b{r}_1d\b{r}_2\cdots d\b{r}_N\)を最小化するような関数の組\(\phi_1,\phi_2,\cdots,\phi_N\)を見つける。
通常、\(\phi_1,\phi_2,\cdots,\phi_N\) は適当な基底関数 \(\varphi_1,\varphi_2, \cdots, \varphi_N, \cdots\) の組の線型結合
\begin{align}
\phi_i(\b{r}) = \sum_j u_{ij} \varphi_j(\b{r}) \tag{1}
\end{align}
の形を仮定する。そうして \(\int \Phi^*_{\phi_1\phi_2\cdots\phi_N} H \Phi_{\phi_1\phi_2\cdots\phi_N} d\b{r}_1d\b{r}_2\cdots d\b{r}_N\) を最小化するような \(u_{ij}\) を見つけるのが Hartree-Fock 法である。
このページでは第二量子化形式で Hartree-Fock 法を定式化してみたいと思う。
2. 第二量子化
さて、\(\varphi_1(\b{r}), \varphi_2(\b{r}), \cdots, \varphi_N(\b{r}), \cdots\) という関数の組が正規直交していて、考えている空間に関して完全系を成しているとする。
というかそうしないと第二量子化の形式に持っていくことができない。
また、量子化学の慣例にしたがって、関数 \(\varphi_1, \varphi_2, \cdots, \varphi_N, \cdots\) のことを
軌道と呼ぶことにする。
各軌道に対する生成消滅演算子を \(c^\dagger_i, c_i\) と書くことにする。もちろんこれらは、以下の反交換関係を満たす。
\begin{align}
[c_{i},c^\dagger_{j}]_+ &= \delta_{ij} \\
[c_{i},c_{j}]_+ &= 0 \\
[c^\dagger_{i},c^\dagger_{j}]_+ &= 0
\end{align}
ただし、\([A,B]_+ = AB+BA\)である。また、すべての \(c_i\) について固有値 \(0\) を持つ状態を
真空と呼び、\(\ket{}\) で表すことにする。\(\Phi_{\varphi_1\varphi_2\cdots\varphi_N}(\b{r}_1,\b{r}_2,\cdots,\b{r}_N)\) に対応する状態は、
\begin{align}
c_N^\dagger \cdots c_2^\dagger c_1^\dagger \ket{}
\end{align}
と表せる。詳しくは、
フェルミオンの第二量子化参照。
第二量子化形式では、ハミルトニアンは以下のように書き直される。
\[H = \sum_{ij} h_{ij} c_i^\dagger c_j + \sum_{ijkl} h_{ijkl} c_i^\dagger c_j^\dagger c_kc_l\]
ただし、
\begin{align}
h_{ij} &= \int d\b{r} \phi_i^*(\b{r})\left(-\frac{\hbar^2}{2m}\nabla^2 + V(\b{r})\right) \varphi_j(\b{r}) \\
h_{ijkl} &= \frac{1}{2}\int d\b{r}_1\int d\b{r}_2 \phi_i^*(\b{r}_1)\phi_j^*(\b{r}_2)\left(\frac{e^2}{4\pi\epsilon |\b{r}_1-\b{r}_2|}\right) \varphi_k(\b{r}_1)\varphi_l(\b{r}_2)
\end{align}
3. 第二量子化形式での Hartree-Fock 法の定式化
一番最初に書いたように、Hartree-Fock 法では
\begin{align}
\int \Phi^*_{\phi_1\phi_2\cdots\phi_N}(\b{r}_1,\b{r}_2,\cdots,\b{r}_N) H \Phi_{\phi_1\phi_2\cdots\phi_N}(\b{r}_1,\b{r}_2,\cdots,\b{r}_N) d\b{r}_1d\b{r}_2\cdots d\b{r}_N
\end{align}
を最小化するような関数の組 \(\phi_1\phi_2\cdots\phi_N\) を見つけることを目標とする。
さて、これを第二量子化の形式で書き直そう。
\(\phi_i(\b{r}\) に対応する生成消滅演算子を \(b^\dagger_i, b_i\) とすると、\(\Phi_{\phi_1\phi_2\cdots\phi_N}(\b{r}_1,\b{r}_2,\cdots,\b{r}_N)\) は \(b_N^\dagger \cdots b_2^\dagger b_1^\dagger \ket{}\) に対応するので、Hartree-Fock法で最小化するのは、
\begin{align}
\bra{}b_1b_2\cdots b_N H b_N^\dagger \cdots b_2^\dagger b_1^\dagger \ket{} \tag{2}
\end{align}
という量であるといえる。
ところで、\(\phi_i(\b{r})\) は \(\varphi_i(\b{r})\) の線型結合によって表すことにしていたので (式 (1))、一般に
\begin{align}
b_i^\dagger = \sum_{j} u_{ij}c_j^\dagger \tag{3}
\end{align}
と書ける。したがって、Hartree-Fock 法では、式 (2) を最小とするような生成消滅演算子 \(\{b_i^\dagger\}\), \(\{b_i\}\) の組、つまり線型結合の係数 \(u_{ij}\) を見つけることが目標である。
4. 生成消滅演算子の線型変換
(3) 式のように \(u_{ij}\) という行列によって線型変換を行うわけだが、\(u_{ij}\) はどんな行列でも良いわけではない。なぜなら、\(\{b_i^\dagger\}\), \(\{b_i\}\) は生成消滅演算子としての性質
\begin{align}
[b_{i},b^\dagger_{j}]_+ &= \delta_{ij} \\
[b_{i},b_{j}]_+ &= 0 \tag{4}\\
[b^\dagger_{i},b^\dagger_{j}]_+ &= 0
\end{align}
を満たしているべきだからだ。\(u_{ij}\) に対してこの条件を課した線型変換は
Bogoliubov 変換と呼ばれる。その最も一般的な形は
Bogoliubov 変換 のページに書いた通りだが、Hartree-Fock 法ではそこまで一般的な形は必要としないので、一応ここでも許される変換について導出しておこう。
(4) 式の左辺に (3) 式を代入すると、
\begin{align}
[b_{i},b^\dagger_{j}]_+ &= \sum_{k,l} u_{ik}^* u_{jl}[c_{k},c^\dagger_{l}]_+ \\
&= \sum_{k,l} u_{ik}^* u_{jl} \delta_{kl} \\
&= \sum_{k} u_{ik}^* u_{jk} \\
[b^\dagger_{i},b^\dagger_{j}]_+ &= \sum_{k,l} u_{ik} u_{jl} [c^\dagger_{k},c^\dagger_{l}]_+\\
&= 0
\end{align}
となるので、
\begin{align}
\sum_{k} u_{ik}^* u_{jk} = \delta_{ij} \tag{5}
\end{align}
さえ満たされていれば、(4)式を満たすような、すなわち生成消滅演算子としての性質を持つような \(b_i^\dagger, b_i\) を構成できることがわかる。
\(U\) を \(\{u_{ij}\}\) を成分として持つ行列とすると、(5) 式は \(U^\dagger U = I\) とも書けるだろう。これは \(U\) がユニタリー行列であることにほかならない。そこで次が言える。
\(c_i^\dagger\) をユニタリー行列によって組み合わせ直すと、別の生成演算子の組 \(b_i^\dagger\) が得られる。
5. Hartree-Fock 方程式
\(b_i^\dagger = \sum_{j} u_{ij}c_j^\dagger\) だったので、これを
\begin{align}
\bra{}b_1b_2\cdots b_N H b_N^\dagger \cdots b_2^\dagger b_1^\dagger \ket{}
\end{align}
に代入して、\(u_{ij}\) に関する方程式を作っていく。しかし \(b_i^\dagger = \sum_{j} u_{ij}c_j^\dagger\) をそのまま代入すると式が煩雑になりそうなので、これを逆にした \(c_i^\dagger = \sum_{j} u_{ji}^* b_j^\dagger\) を \(H\) の中の \(c_i^\dagger\) に代入しよう。すると
\begin{align}
H &= \sum_{ij} h_{ij} c_i^\dagger c_j + \sum_{ijkl} h_{ijkl} c_i^\dagger c_j^\dagger c_kc_l \\
&= \sum_{ij}\sum_{i'j'} h_{ij} u_{i'i}^*u_{j'j}b_{i'}^\dagger b_{j'} + \sum_{ijkl}\sum_{i'j'k'l'} h_{ijkl} u_{i'i}^*u^*_{j'j}u_{k'k}u_{l'l} b_{i'}^\dagger b_{j'}^\dagger b_{k'}b_{l'}
\end{align}
となる。これを \(b_N^\dagger \cdots b_2^\dagger b_1^\dagger \ket{}\) で挟んだものを項別にみていこう。
まず一体のものについて、
\begin{align}
\bra{}b_1b_2\cdots b_N b^\dagger_{i'} b_{j'} b_N^\dagger \cdots b_2^\dagger b_1^\dagger \ket{} \tag{6}
\end{align}
という項が現れるが、これの右側半分 \(b_{j'} b_N^\dagger \cdots b_2^\dagger b_1^\dagger \ket{}\) は交換関係を用いて計算すると以下のようになる。
\begin{align}
b_{j'} b_N^\dagger \cdots b_2^\dagger b_1^\dagger \ket{} = \left\{\begin{array}{l}
(-1)^{N-j'}b_N^\dagger \cdots b_{j'+1}^\dagger b_{j'-1}^\dagger \cdots b_2^\dagger b_1^\dagger\ket{}~~~(1\leq j' \leq N)\\
0~~~(\text{otherwise})
\end{array} \right.
\end{align}
左側半分も同様に計算できる。結果として、左側は \(i'\) 番目を、右側は \(j'\) 番目の演算子が消えてしまうので、(6) 式の内積は \(i'\neq j'\) のとき 0 で、\(i' = j'\) のときだけ 1 になることがわかるだろう。つまり
\begin{align}
\bra{}b_1b_2\cdots b_N b^\dagger_{i'} b_{j'} b_N^\dagger \cdots b_2^\dagger b_1^\dagger \ket{} = \delta_{i'j'}
\end{align}
である。
二体のものについても同様の計算を行う。
\begin{align}
&b_{k'}b_{l'} b_N^\dagger \cdots b_2^\dagger b_1^\dagger \ket{} \\
&= \left\{\begin{array}{l}
(-1)^{N-j'}(-1)^{N-k'}b_N^\dagger \cdots b_{k'+1}^\dagger b_{k'-1}^\dagger \cdots b_{l'+1}^\dagger b_{l'-1}^\dagger \cdots b_2^\dagger b_1^\dagger\ket{}~~~(1\leq l' \lt k' \leq N)\\
(-1)^{N-j'}(-1)^{N-k'-1}b_N^\dagger \cdots b_{l'+1}^\dagger b_{l'-1}^\dagger \cdots b_{k'+1}^\dagger b_{k'-1}^\dagger \cdots b_2^\dagger b_1^\dagger\ket{}~~~(1\leq k' \lt l' \leq N)\\
0~~~(\text{otherwise})
\end{array} \right.
\end{align}
なので
\begin{align}
\bra{}b_1b_2\cdots b_N b_{i'}^\dagger b_{j'}^\dagger b_{k'}b_{l'} b_N^\dagger \cdots b_2^\dagger b_1^\dagger \ket{} = \left\{\begin{array}{l}
1 ~~~(i' = l'\text{ and }j' = k')\\
-1 ~~~ (i' = k' \text{ and } j' = l')\\
0~~~(\text{otherwise})
\end{array}\right.
\end{align}
となる。クロネッカーデルタを使って書き直すと
\begin{align}
\bra{}b_1b_2\cdots b_N b_{i'}^\dagger b_{j'}^\dagger b_{k'}b_{l'} b_N^\dagger \cdots b_2^\dagger b_1^\dagger \ket{} = \delta_{i'l'} \delta_{j'k'} - \delta_{i'k'} \delta_{j'l'}
\end{align}
である。
これらの計算結果を代入すると
\begin{align}
&\bra{}b_1b_2\cdots b_N H b_N^\dagger \cdots b_2^\dagger b_1^\dagger \ket{} \\
&= \sum_{i,j}\sum_{1\leq i',j' \leq N} h_{ij} u_{i'i}^*u_{j'j}\delta_{i'j'} + \sum_{ijkl}\sum_{1\leq i',j',k',l' \leq N} h_{ijkl} u_{i'i}^*u^*_{j'j}u_{k'k}u_{l'l} \left(\delta_{i'l'} \delta_{j'k'} - \delta_{i'k'} \delta_{j'l'}\right)\\
&= \sum_{i,j}\sum_{i'=1}^N h_{ij} u_{i'i}^*u_{i'j} + \sum_{ijkl}\sum_{1\leq i',j' \leq N} h_{ijkl} \left(u_{i'i}^*u^*_{j'j}u_{j'k}u_{i'l} - u_{i'i}^*u^*_{j'j}u_{i'k}u_{j'l} \right)
\end{align}
を得る。この量を、
\(u_{ij}\) がユニタリーであるという拘束条件下で最小化する条件を求めれば、Hartree-Fock 方程式を得る。
通常の
Hartree-Fock 法の導出 でもそうしたように、拘束条件付きの最適化問題では、ラグランジュの未定乗数法を使えばよかった。今回の拘束条件は、\(u_{ij}\) がユニタリーであること、すなわち
\begin{align}
\sum_{k} u_{ki}^*u_{kj} = \delta_{ij}
\end{align}
ということである。そこで未定定数を \(\lambda_{ij}\) として、
\begin{align}
L(\{u_{ij}\}, \{\lambda_{ij}\}) = \sum_{i,j}\sum_{i'=1}^N h_{ij} u_{i'i}^*u_{i'j} + \sum_{ijkl}\sum_{1\leq i',j' \leq N} h_{ijkl} \left(u_{i'i}^*u^*_{j'j}u_{j'k}u_{i'l} - u_{i'i}^*u^*_{j'j}u_{i'k}u_{j'l} \right) - \sum_{i,j}\lambda_{ij}\left(\sum_{k} u_{ki}^*u_{kj} - \delta_{ij}\right)
\end{align}
という関数 \(L\) の微分が 0 になる条件を求めれば良い。
ところで、これは通常の
Hartree-Fock 法の導出 でもそうだったが、\(\lambda_{ij}\) は \(i,j\) に関して対称であると仮定しても良い。なぜなら、\(\sum_{k} u_{ki}^*u_{kj} = 0\) であることと、\(i,j\) を入れ替えた \(\sum_{k} u_{kj}^*u_{ki} = 0\) であるということは等価だからだ。対称行列は常に実数の固有値を持ち、ユニタリー行列によって対角化できるので、\(\lambda_{ij}\) の固有値を仮に \(\{\epsilon_k\}\) とおいたとすると、
\begin{align}
\lambda_{ij} = \sum_{k} \epsilon_k v_{ki}^*v_{kj}
\end{align}
と、ユニタリー行列 \(V = \{v_{ij}\}\) を使って分解できる。そこでこれを\(L\)の表式に代入し、\(\sum_{i}v_{li}^*u_{ki}^*\) を改めて \(u_{lk}^*\) と置き直せば、
\begin{align}
L(\{u_{ij}\}, \{\lambda_{ij}\}) = \sum_{i,j}\sum_{i'=1}^N h_{ij} u_{i'i}^*u_{i'j} + \sum_{ijkl}\sum_{1\leq i',j' \leq N} h_{ijkl} \left(u_{i'i}^*u^*_{j'j}u_{j'k}u_{i'l} - u_{i'i}^*u^*_{j'j}u_{i'k}u_{j'l} \right) - \sum_{l}\epsilon_l\left(\sum_{k} u_{lk}^*u_{lk} - 1\right)
\end{align}
を得る。
さて、この関数 \(L\) の微分が 0 になる条件を求めていこう。
\begin{align}
\frac{\partial L(\{u_{ij}\}, \{\lambda_{ij}\})}{\partial u_{mn}^*}
\end{align}
を計算してみる。ちなみに、\(u_{ij}^*\) と \(u_{i'j}\) は独立な変数として扱えることに注意しよう。複素数は実数と虚数の2つの自由度を持つからだ。
\begin{align}
&\frac{\partial L(\{u_{ij}\}, \{\lambda_{ij}\})}{\partial u_{mn}^*} \\
&=\sum_{i,j}\sum_{i'=1}^N h_{ij} u_{i'j} \delta_{i'm}\delta_{in} \\
&\quad + \sum_{ijkl}\sum_{1\leq i',j' \leq N} h_{ijkl} (\delta_{i'm}\delta_{in}u^*_{j'j} + u^*_{i'i}\delta_{j'm}\delta_{jn})\left(u_{j'k}u_{i'l} - u_{i'k}u_{j'l} \right) \\
&\quad - \sum_{l}\sum_{k}\epsilon_l \delta_{lm}\delta_{kn}u_{lk}\\
&= \sum_{j} h_{nj} u_{mj} \\
&\quad + \sum_{jkl}\sum_{1\leq j' \leq N} h_{njkl} u^*_{j'j} (u_{j'k}u_{ml} - u_{mk}u_{j'l} ) \\
&\quad + \sum_{ikl}\sum_{1\leq i'\leq N} h_{inkl} u^*_{i'i} (u_{mk}u_{i'l} - u_{i'k}u_{ml})\\
&\quad - \epsilon_m u_{mn}
\end{align}
となり、さらにうまいこと添字を組み替えると
\begin{align}
&\frac{\partial L(\{u_{ij}\}, \{\lambda_{ij}\})}{\partial u_{mn}^*} \\
&= \sum_{l} h_{nl} u_{ml} + 2\sum_{jkl}\sum_{i = 1}^N (h_{njkl} - h_{njlk}) u^*_{ij} u_{ik}u_{ml} - \epsilon_m u_{mn}
\end{align}
この微分が 0 になるという条件から、以下の Hartree-Fock 方程式を得る。
\begin{align}
\sum_{l}\left( h_{nl} + 2\sum_{jk}\sum_{i = 1}^N (h_{njkl} - h_{njlk}) u^*_{ij} u_{ik} \right) u_{ml} = \epsilon_m u_{mn}
\end{align}
Hartree-Fock 方程式の数値解法である
Roothaan 方程式 と全く同じ形式の方程式が得られた。