Master3’s blog

LaTeXやExcelVBAなどの作例集

LaTeX作例13(3.4.6 SCFの手続)

  • 量子化学に関する本を引用し、僕が書いたLaTeXの作例を紹介します
  • ポイントとしては、箇条書きのコマンドが登場します。
  • 登場する式では、[ ]を

    \left[

    \right] とすることで、中身の大きさに合わせて大きさを自動調節してくれるようにしています。大きさを変えることで、同じ形の括弧を複数回使用できますね!

  • プリアンブルは全部コピペして使ってるので、かなり余計なものも混ざってます。すいません
  • パッケージは基本的にデフォルトで入ってるやつが使われていると思います(たぶん)
  • ページ番号は原典と異なります
  • 『新しい量子化学―電子構造の理論入門』

    出版社 ‏ :  東京大学出版会 (1987/7/1)
  • 発売日 ‏ :  1987/7/1
  • 言語 ‏ :  日本語
  • 単行本 ‏ :  303ページ
  • ISBN-10 ‏ :  4130621114
  • ISBN-13 :  978-4130621113
  • [http://:title]

    3.4.6.tex - Google ドライブ

  • \documentclass{jsarticle}

    \usepackage{mathrsfs}

    \usepackage[dvipdfmx]{graphicx}

    \usepackage{parskip}

    \usepackage{indentfirst}

    \usepackage{amsmath,amssymb}

    \usepackage{braket}

     

    \usepackage{calligra}

    \usepackage{calrsfs}

    \usepackage{mathrsfs}

     

    \usepackage{bm}

    \begin{document}

     

    \subsubsection*{3.4.6 SCFの手続}

     

    \parindent=1zw

     

    いよいよ分子に対する制限つき閉殻Hartree-Fock波動関数、つまり$\ket{\Psi_0}$を得るための実際の計算手続について述べよう。基底関数が実質的に完全系をなしているようなHartree-Fock極限における解に対してのみHartree-Fock解という用語を用い、有限の規模の小さい基底関数を使って得られる解に対しては、“つじつまの合った場:SCF”の解という用語を用いる流儀がある。しかし、この本ではHartree-Fock解とSCF解を区別しないで用い、必要なときだけ特別にHartree-Fock極限という用語を用いることにする。SCFの手続は以下のとおりである。

    \begin{enumerate}

    \renewcommand{\labelenumi}{(\arabic{enumi})}

    \item 計算すべき分子(核座標の組$\{\bm{R}_A\}$、原子番号$\{Z_A\}$および電子数$N)$と基底関数系$\{\phi_\mu\}$を決める。

    \item 必要なすべての分子積分、$S_{\mu\nu}$、$H_{\mu\nu}^{\rm core}$および$(\mu\nu|\lambda\sigma)$を計算する。

    \item 重なり行列$\bm{S}$を対角化し、式(3.167)あるいは式(3.169)から変換行列$\bm{X}$を得る。

    \item 密度行列$\bm{P}$に対する初期値を設定する。

    \item 密度行列$\bm{P}$と2電子積分$(\mu\nu|\lambda\sigma)$から式(3.154)の行列$\bm{G}$を計算する。

    \item 核-1電子ハミルトニアン行列に$\bm{G}$を加え、Fock行列$\bm{F}=\bm{H}^{\rm core}+\bm{G}$を得る。

    \item Fock行列を変換して$\bm{F}'=\bm{X}^\dagger\bm{FX}$を得る。

    \item $\bm{F}'$を対角化して$\bm{C}'$と$\bm{\varepsilon}$を得る。

    \item $\bm{C}=\bm{XC}'$を計算する。

    \item 式(3.145)を用いて$\bm{C}$から新しい密度行列$\bm{P}$をつくる。

    \item 結果が収束したかどうかを判断する。すなわち、(10)で得た新しい密度行列が、ある収束規準の下で、先に設定した密度行列と等しくなっているかどうかを判断する。もし収束していなければ、新しい密度行列を使って段階(5)に戻り計算を続ける。

    \item 収束したならば、$\bm{C}$、$\bm{P}$、$\bm{F}$などで表現されている最終的な結果を使って、望みの期待値や他の物理量を計算する。

    \end{enumerate}

     

    エネルギー、双極子能率、電子密度解析(3.4.7節参照)などの期待値の計算について述べる前に、まず上の(1)~(12)の各段階で生ずる具体的な問題点を考察しよう。

     

    上述の手続で行ったことは、Born-Oppenheimer近似の下に$M$個の点電荷の組(電荷$Z_A$の$M$個の核)がつくる場における$N$個の電子の電子波動関数$\ket{\Psi_0}$(および電子エネルギー$E_0$)の決定である。電子エネルギーに核間反発エネルギーを加えることによって、核座標$\{\bm{R}_A\}$の関数としての全エネルギーが得られる。異なる核座標に対する計算を繰り返すと、核の運動に対するポテンシャルエネルギー曲面を得ることができる。同様の計算によって全エネルギーを最小にする$\{\bm{R}_A\}$の組を見いだすこともできる。これは、分子の平衡核配置を求める計算である。上記の手続は任意の点電荷の組に対して実行できる。特に、2個以上の分子をあらわしている核電荷の組を用いる“超分子”の計算は、たとえば分子間力を調べるのによく用いられている。

     

    核座標を定めてしまうと、1個の制限つき閉殻行列式波動関数の計算は基底関数の組$\{\phi_\mu\}$によって完全に特定されてしまう。これは、積分や電子ハミルトニアンをいっさい近似しない非経験的計算が、基底関数系と核座標の選択によって完全に特定されるという意味である。基底関数系の選択は科学的というよりは多分に“職人芸”である。計算機の規模や研究予算などの制限があるから、有限個の小さな基底関数系しか使えないことははっきりしている。したがって、基底関数系は注意深く選択しなくてはならない。現在のところ、ふつう使われているのはSlater型とGauss型の関数だけである。各原子に対して非常に小規模な関数の組を使う場合には、Slater型関数の方が確実に良いエネルギーを与える。各原子に置く関数の数が増えていくと、Slater型軌道のもつはっきりした優位性は減少する。基底関数が関数空間を張る能力を考えるとともに、実際に計算を行う上では分子積分を計算するために必要な時間を考慮しなければならない。現在ほとんどの多原子系の計算では、積分が速く計算できるGauss型軌道が使われている。したがってこの本でも、おもにGauss型基底関数を取り扱う。一般の基底関数系はこの章の3.6節で議論されているが、1$s$STO-3G基底関数は、H$_2$とHeH$^+$のモデル計算で使われるので3.5.1節で導入する。

     

    基底関数を決めると、つぎに大量の異なった種類の積分を計算し蓄積しなければならない。付録Aに、Gauss型基底関数を使った分子積分の計算法が述べられている。ここでは以下の議論に関連のあるいくつかの点だけを述べておこう。核-1電子ハミルトニアンや1電子の期待値の計算に必要な重なり積分や1電子積分は、2電子反発積分に比べるとずっと数が少ないので、ほとんど問題にならない。大型計算におけるおもな困難は、膨大な数の2電子積分の計算とその取扱いである。$K$個の基底関数に対しては、$K^4/8$個のオーダー(Exercise3.14)の2電子積分が生じる。ほどほどの大きさの分子に小さな基底関数系を用いる場合でも、2電子積分の総数はすぐに数百万になってしまう。しかし大きな分子では、基底関数間の距離が大きくなって多くの積分が実質的にはゼロになるので、問題の深刻さの程度は多少減じる。また、相当数の積分は分子の対称性によってもゼロになってしまうことがある。しかし、ほとんどの場合、2電子積分の数が多すぎて全部を計算機の主記憶上に置くことはできない。ふつう行われている方法の1つは、ゼロでない積分に添字$\mu$、$\nu$、$\lambda$、$\sigma$を指定する1つのラベルをつけて、磁気ディスクやテープのような外部記憶にランダムな順序で蓄えておくことである。

     

    前の節で、基底関数を直交化する変換$\bm{X}$を導出する2つの方法について述べた。これによって対角化法を使ってRoothaanの方程式を解くことが可能になる。$\bm{X}=\bm{S}^{-1/2}$を使うことは概念的に簡単で、正準直交化を使う必要が生じるのは基底関数の線形従属性が問題となるような特殊な場合だけである。正準直交化においては、$\bm{X}=\bm{Us}^{-1/2}$の列がいくつか取り除かれて長方行列ができる。$\bm{X}$のうちの$m$列が取り除かれると、実質的に$K-m$個の基底関数を用いて$K-m$個の分子軌道を得ることになる。すなわち、$\bm{F}'$は$(K-m)\times (K-m)$の行列となり、$\bm{C}'$は$K\times (K-m)$の行列となってその列はもとの$K$個の基底関数によってあらわされる$K-m$個の分子軌道に対応している。

     

    密度行列$\bm{P}$に対する最も簡単な初期設定は空(ゼロ)行列を用いることである。これは、最初の反復計算で$\bm{F}$を$\bm{H}^{\rm core}$だけで近似し、電子間相互作用を無視することに等しい。この設定は反復計算をはじめるのにはたいへん便利な方法であって、収束する先の分子軌道を、核の点電荷がつくる場を運動するただ1個の電子の分子軌道を出発点として近似することに対応している。しかし、$N$電子分子に対する分子軌道は1電子分子とは全く異なったものであるかもしれず、この初期設定によるSCFの手続はしばしば収束しないことがある。“実効的な”$\bm{F}$行列を使った半経験的拡張H\"{u}ckel型の計算が、波動関数の初期設定によく用いられ、ふつう単に核-1電子ハミルトニアンだけを用いるよりも良好な初期設定となる。初期設定を行う方法はこのほかにもたくさん考えられる。

     

    実際の反復手続の中で最も計算時間がかかるのは段階(5)で2電子積分と密度行列から行列$\bm{G}$をつくり出す部分である。2電子積分が、添字$\mu$、$\nu$、$\lambda$、$\sigma$を指定する1個のラベルを付されてランダムな順序で外部記憶に蓄えられているとすると、積分を主記憶に読み込んで式(3.154)の$\bm{G}$行列をつくる際に、そのラベルを使って、どの密度行列の要素とかけ合わせて$\bm{G}$行列のどの要素に足し込んでいくかを決めることができる。

     

    ほとんどの計算において、段階(6)から(10)までの行列演算は効率的な対角化の手続さえ用いれば、$\bm{G}$行列の生成に比較して計算時間をそれほど消費しなくてすむ。

     

    Roothaan方程式は非線形であるので、ここで述べた単純な反復手続でつねに収束する解が得られるとは限らない。振動したり発散したりしてしまうことがあるが、その原因は初期設定の貧弱さにある場合がある。振動する場合には、反復過程の中で引き続き生じる密度行列を平均すると収束することがある。しかし、もし収束するとしてもゆっくりとしか収束しないかもしれない。連続する繰返しから生じた2個以上の密度行列を使えば、種々の外挿手続を工夫することができる。収束性の問題は珍しいものではないが、多くの計算においては、それほど深刻な問題ではない。ここで最初に示した反復手続は最も簡単なものであって、やや素朴すぎる。SCFの解の収束を速めたり、何とか収束させたりするために、ほかに種々の手段が提案されている。

     

    もちろん、収束したかどうかを判定するための規準が必要であるが、それには単に繰返しにおける全電子エネルギーを見て、連続する2つのエネルギーの値が微小量$\delta$の範囲で一致すればよいとするのがふつうである。ほとんどの目的に対しては、$\delta=10^{-6}$ハートリーという値で十分である。各繰返しにおけるエネルギーの計算には、たいして計算時間を要さないことはすぐあとで示す。エネルギーに代わる規準としては、密度行列の要素の収束性が考えられる。すなわち、繰返しの前後における密度行列要素の標準偏差

    $$\left[K^{-2}\sum_\mu\sum_\nu[P_{\mu\nu}^{(i)}-P_{\mu\nu}^{(i-1)}]^2\right]^{1/2}$$

    が、ある値$\delta$よりも小さくなることを要求するのである。密度行列の偏差の値として$\delta=10^{-4}$を用いると、エネルギーの違いはふつう$10^{-6}$以下になる。

     

    ここではSCFの手続に含まれるいくつかの問題点についてしか触れることができなかったが、現在利用されている非経験的SCF計算のための大規模なプログラムシステムには、多くの研究グループの膨大な労力が注ぎ込まれてきたのである。

     

    \end{document}

    [http://

    :title]