質問: hartree-fock法で基底状態を求める場合について hartree-fock法で基底状態を求める場合、self-consistentに計算を行うのが普通だと思います。ひとつ前のself-consistent計算で求めた波動関数をψ_iと書くことにし、ψ_iで構成されるフォック演算子をf[ψ_i]と書くことにします。 f[ψ_i]ψ_{i+1}=e_{i+1} ψ_{i+1} ψ_{i+1}に関する、上記固有値方程式を解き、収束するまで繰り返します。この時、軌道エネルギーe_{i+1}が低いものから順番に“つめていく”と思っていたのですが、それは正しいのでしょうか? ご存知のようにhartree-fock法における総エネルギーは軌道エネルギーの総和ではありません。ですから、軌道エネルギー低いものから順番に“つめていく”事で、総エネルギーが最小になる根拠がないように思うのです。 実際に1次元の簡単な系で数値的に計算したところ、低いものから順番に“つめていく”と、総エネルギーが最小にならない場合がありました。これは私のプログラムミスかもしれませんが、どうも間違えていないように思えるのです。 hartree-fock法は古くからある手法なので、こう言ったことにはすでに答えがあると思うのですが、もしなにか御存じであれば、ご教授願えないでしょうか?
回答: 質問者様の例だと、計算の途中で順番が勝手に入れ替わって正しい答えにいきついたということで、ラッキーだったわけです。通常は入れ替わらなくてもいいようなゲスを作成します。 特別に難しい系を計算する場合には、あらかじめ対称性などから占めるべき軌道を決定し、vertical shiftと呼ばれる手法を使ってへんな軌道に電子が移らないようにおそるおそる収束させます。たいていの既存のプログラムには入っています。 hartree-fock法の変分性は、収束した後の波動関数が一スレーター行列式としてもっとも低いエネルギーを与えるということですので、途中は関係ありません。ですからタイトに閾値を設定すれば、収束先でこの問題が起こることはありえません(収束しないことは往々にしてある)。 計算の最後のほうまでそのような現象がおこるのでしたら、それはその系は一スレーター行列式で書くことが出来ないということを意味します。 蛇足ですが、hfの変分エネルギーは<ψ_{i}|f_{ψ_i}|ψ_{i}>ですから f[ψ_i]ψ_{i+1}=e_{i+1} ψ_{i+1} でiterationを行うのでしたら、最低エネルギーより下のエネルギーも途中で出てきても不思議ではありません。 結論 ですから、軌道エネルギー低いものから順番に“つめていく”事で、総エネルギーが最小になる根拠がないように思うのです。 は正しい。しかし下から詰めていけるようなプログラムとゲスを作るべきである。