これまで基底関数は、「電子がどのような大きさや形で、どの軌道にいるのか」を数式で表現したものであることを述べてきました。もし2分子以上の複合体で、互いの基底関数が重なり合ったら(影響し合ったら)どんなことが起きるのでしょうか?
bs0
実は、この「基底関数の重なり」はエネルギー計算時に誤差を生じさせます。これを、基底関数重なり誤差(BSSE)と呼びます。いったい何が問題で、その問題を解消する方法はあるのか?というのが今回のお話です。
 

BSSEとは?

BSSEは「Basis Set Superposition Error」の略称です。日本語では「基底関数重なり誤差」と呼ばれます。BSSEとは、分子の複合体を計算する際に、一方の分子が電子の自由度を補うために相手の基底関数を用いることで安定化エネルギーを過大評価してしまう誤差のことです。

例えば、アニオンにdiffuse関数(分散関数)を加えずに他分子との相互作用を計算した場合、アニオンの電子の広がりをもう一方の分子の分子軌道を補償して記述してしまいます。つまり、アニオンの分子軌道にもう一方の分子の分子軌道が取り込まれることにより、実際の相互作用エネルギーよりさらに安定化した値を出力してしまうのです。このためBSSEがあると、相互作用のエネルギーを過大評価してしまいます。

BSSEを解消するには?

BSSEは、基底関数の数位置に依存します。そもそもBSSEは有限基底関数系に特有のものであり、無限基底に近づくように基底関数を拡張すればその誤差を極力小さくすることが可能です。例えば、一般的にTriple Zeta(TZ)基底関数以上で分極関数やdiffuse関数を加えたものが推奨されています(6‐311+G(d,p)~など)。
bss5
しかし、高次の基底関数を用いてもBSSEを完全に0にすることはできません。また、複合体を計算するのにあまり大きな基底関数を用いると多大な時間を要してしまいます。そこで、提案されるのがCounterpoise法(CP法)です。

CP法とは?

CP法はCounterPoise法の略称です。CP法の考え方は非常にシンプルで、相互作用する軌道がある時とない時のエネルギー差を計算することでBSSE値を算出します。

具体的な方法を、水の2量化を例に説明します。まず、前提として水分子間の相互作用エネルギーは2分子が相互作用したモデルを計算したエネルギー値から、各分子単体で計算したエネルギー値を引いたものであることは理解できると思います。つまり、相互作用したモデルでは安定化のエネルギーを含みますが、分子単体のエネルギーはこれを含まないので、単純にこのエネルギー差が安定化エネルギーに相当すると言う訳です。
bs3
ただし、これには先程説明したBSSEが含まれるのでCP法でBSSEを求め、誤差値を修正する必要があります。CP法によるBSSE値の算出方法は以下の通りです。 

1) まずは、水の2分子の相互作用したモデルを構造最適化計算します。

2) 次に、水を1分子づつ取り出してエネルギーを求め、その合計値を算出します。これをEaと呼びましょう。
bs4
3) 次に、片方の水分子をGhost軌道(ghost orbital)に置き換えて計算します。このGhost軌道は、原子核も電子もないところに基底関数のみを考慮したものです。両方の分子について、エネルギー値を求め合計したものをEbと呼びましょう。
bs2
4) あとは、求めたEaからEbを引くことでBSSE値が求まります(BSEE=Ea-Eb)。水の2量化の相互作用のエネルギーに、ここで求めたBSSE値を加えてやれば無事、補正した相互作用エネルギーが求まります。
bs1
手順はややっこしいですが、先程も述べたように単に相互作用する軌道がある時(Eb)とない時(Ea)のエネルギー差を計算しているだけですので、混乱しないようにしましょう。

おわりに

今回は、基底関数重なり誤差(BSSE)について説明しました。BSSEは、水素結合やファンデルワールス力(Van der Waals  Force)などの数kcal/mol程度の弱い相互作用を計算する場合には必ずその誤差を取り除く必要があります。 と言うのも、数十~数百kcal/molに対するBSSEの割合は大したものではありませんが、弱い相互作用の場合には符号が逆転してしまったりすることがあるからです。つまり、安定化を不安定化と評価してしまいかねないのです。

次回は早速、BSSEを計算して水の二量体の相互作用エネルギーを求めてみましょう。すこし、ややっこしい計算になりますが実際に手を動かしながら『体験』すれば理解がいっそう深まるはずです。

【関連記事】
基底関数はどれを選べばいいの?  
水の2量体を計算してみよう
KITAURA-MOROKUMA法でBSSEを計算してみよう