前回の記事では、1930年前後から1980年頃までの量子化学の発展について簡単に説明しました。
今回は、DFT計算で使われる汎関数の種類、gaussianでの計算の流れなどを説明します。
前回と今回の記事を読むことにより、DFT計算の歴史的背景、理論、問題点、汎関数の種類、gaussianでの計算の流れなどが理解できます。これで、「DFTって何?」と聞かれても答えられるようになると思います。
今回の記事でも細かいところは省略していくので、興味のある方は一番下にある参考図書を読んで下さいね!
1930年前後から1980年頃までの歴史において、前回触れなかったけれど、重要なものとして、基底関数の開発(1950年Boys)、ローターン方程式(1950年Roothaan, Hall)などがあります。また、現在の計算化学に必須と言っても過言ではないGaussian(1970年、Pople)、Gamess(1982年)などのプログラムの開発もこの頃です。
様々な汎関数
以前の記事でお話ししたように、交換相関汎関数はコーン・シャム方程式の中で唯一近似されている部分です。よって、DFT計算の信頼性は、どの汎関数を選ぶかで決まります。これまで、星の数ほどの汎関数が開発されてきましたが、それらは次のように分類できます。
局所密度近似(LDA)汎関数
一般化勾配近似(GGA)汎関数
メタGGA汎関数
混成汎関数(ハイブリッド汎関数)
半経験的汎関数
プログレッシブ汎関数
シュレーディンガー方程式とは違い、交換相関汎関数の理想的な式の形は未知ですので、それぞれの研究者が、それぞれ好きなパラメーターで汎関数を作りました。
ある人は、交換相関汎関数は電子密度に比例すると言い、またある人は電子密度の微分に比例すると言った、、、というようにどの変数を使うか、ということで分類されています。さらには、幾つかの汎関数を組み合わせたものが良い(ハイブリッド汎関数)という人まで出てきて、カオスな感じです。
個々の汎関数の詳しい内容については、こちらの参考書を読むことをオススメします。式の成り立ちを化学者にもわかりやすく書いてあります。
今回は、有機合成化学者がよく使う代表的な汎関数を 2 つ紹介します。
まずは、B3LYPですっ!
B3LYP
B3LYP は、最初の混成汎関数であり、有機化学の世界でもっともよく使われている汎関数です(でした)。1993年に Becke により発表されました。
この汎関数にはハートリーフォック交換積分の混合率だけでなく、B88交換汎関数、LYP相関汎関数、そしてLDA交換・相関汎関数からの差のそれぞれの混合率の計三個のパラメータが含まれています。
半経験的パラメータは、a1 = 0.2、a2 = 0.72、a3 = 0.81 の 3 つです。これらのパラメーターをどのようにして決めたかというと、ベンチマークと言われる指標で、実験値と計算値が近くなるように設定されました。なので、数学的な意味はありません。こんなことを書くと、「なんだよ!DFT 計算って不正確じゃん。騙したナァァァ!」って思うかもしれませんが、そんなことはありません。むしろ、シュレーディンガー方程式を近似的に解く MP2 法などよりも計算結果と実験結果が一致します。
そもそも、
「ヒトはなぜ計算化学を利用するか?」
という、ある種、人生の根源的な問いについて考えてみると、計算結果と実験結果が一致するからに他ならないという解が得られるはずです。数学的にいくら正しくても、実験結果との誤差が大きければ誰も使いません。同様のことが、酵素や遺伝子配列などの相同性検索にも言えると思います。
「機能が近ければ配列も近いはず!」
という仮定は、進化的にも直感的にも正しいと感じるかもしれませんが、厳密に数学的に証明されたわけではありません。なぜ、研究者が相同性検索を使うかといえば、実験結果と一致するからです!!DFT 計算も同様です。
M06系
また、最近よく使われ始めているのは、ドナルド らが開発した M06 系だと思います。こちらは半経験的汎関数に分類されており、38個の半経験的パラメータが入っています。しかし、M06が今後ずっと主流になるとは考えられてはおらず、このような半経験的汎関数は洗練された汎関数が開発されるまでの過渡的な汎関数と考えられています。
遷移金属の入っている系には M06、遷移金属の入っていない系には M06-2x が使われているような印象を受けます。また、弱い相互作用を見積もることが可能な汎関数ですので、ペリ環状反応などでは、B3LYP で構造最適化したのちに M062X で一点計算している例をよく見かけます。
実際の計算の流れ
最近の計算プログラムは非常に使いやすくなっているため、まったく背景知識が無い人でも、化合物のエネルギーを計算したり、構造最適化を行なったり、スペクトルの計算が出来てしまいます。例えるならば、テレビゲーム!
とりあえずインプットファイルを作り計算させれば、結果は出てきます。しかし、その結果が正しいのか?どのような意味があるか?を判断するには有機化学の知識が必要となります。また、エラーが起きた時に正しく対処するためには、背景にある理論や計算プログラムを良く理解しておく必要があります。
計算化学って言うけど、コンピューターが実際にどのような計算を行なってくれるのか答えられる人は少ないです。
例えば、分子構造最適化の計算手順は、大まかに以下のようになっています。
1.座標の読み込み
2.エネルギーの計算(Roothaan 方程式 SCF 計算)
3.力の計算
4.構造最適化
計算終了後のlog ファイルを見ると、どの部分が律速か、どのパラメーターを変えれば早くなるかなどが分かるかと思いますが、長くなってしまったので、詳しいことは次回、 計算化学:DFTって何? PartIV で書きます。
ここまで読んでいただいて、ありがとうございました。