Gaussian社の販売しているGaussViewでは、TD計算のログファイルからスペクトルのグラフを生成してくれます。
GaussViewによらなくてもExcelによって同等のUVスペクロルのグラフを作成することができます。


原理は、Gaussian社のUV VIS plotの項目を参照

上記の最後の部分から引用します。
GaussianでのTD B3LYP/STO-3Gのログファイルの中の
Excited State 1: Singlet-A 4.3587 eV 284.45 nm f=0.0002 =0.000
Excited State 2: Singlet-A 6.4307 eV 192.80 nm f=0.5035 =0.000
Excited State 3: Singlet-A 8.0472 eV 154.07 nm f=0.0061 =0.000
この出力により、スペクトルのシミュレーションに必要な以下の値が得られます。
• λ1=284.45, f1=0.0002
• λ2=192.80, f2=0.5035
• λ3=154.07, f3=0.0061
標準偏差σを前回と同じ0.4eVとすると、3つのバンドの計算式は次のようになります。

[式8]のようになります。

前述の3つの式を足すと、ガウシアンで計算された3つのバンドの組み合わせとして、シミュレートされた紫外-可視スペクトルは次のような式になります。
[式9]
ExcelやOpenOfficeなどの表計算ソフトを使って、上記の計算式から複数の値を算出することができます。例えば、100nmから300nmまでの値を10nm間隔で計算すると、次のような紫外可視スペクトルのシミュレーション結果が得られます。


曲線がどのように構成されているかがわかるように、図中の各ポイントのマーカーは残してあります。


ExcelによるUVスペクトルの作成法

上記の手順を理解すると、アルゴリズムとして自動化(プログラム化)できるようになります。
上記の操作をプログラム言語で記述することは容易ですが、言語を学ぶ大きな手間があるのでExcelを使って同じ操作を行い妥当性を検証します。
Gaussian社のWebページの例では、3つの励起状態の波長λと振動子強度fの対から吸収強度εを計算してスペクトルのグラフを計算しています。
前頁の9式を用いて任意の数の波長と振動子強度の組みからグラフ化できるようにExcelのシートを作成します。
例題のExcited State 1〜3を用います。

ExcelファイルTD-UVplot.xlsxのシート[Example_Nstates=3]を見て下さい。
入力データの波長と振動子強度は、セルB4:D5に入力してあります。
表A

式8は、セルB6に =13.062974*B$5*3099.6*EXP( -(( (1/$A6-1/B$4)*3099.6)^2) ) と入力してあります。 式B
これをオートフィルでC6, C7にコピーし、D40までコピーすると全ての計算式の入力が完了します。
 一つの式を縦横にオートフィルができるように活用している絶対参照の $ の使い方に注目のこと!
これでB,C,D列にε1(λ), ε2(λ), ε3(λ)が算出されました。
次にE列で、3式の和である9式の値を算出しています。 E6は、 =sum(B6:D6)
A6:A40はグラフのX軸方向のλ値の値です。必要に応じて数値の間隔を変えて下さい。
A列をX軸に、E列をY軸として散布図プロットをすると吸収スペクトルに相当する図が作成できます。これはWebページの図と一致しています。(下図)

EXPの中の式の入力時の注意点
通常のプログラミング言語(C, Java, VBA, FORTRAN, Basic等)では、
=-(2)^2 は-4となります。
しかしExcelでは、
=-(2)^2 が2の2乗を負にするのでなく、-2の2乗とみなされて4となります。
同様の計算をするにはExcelでは、
=-(2^2)
としなければなりません。
他の表計算ソフトもExcelと同様でした。(Google スプレッドシート、Apple Numbers, LibreOffice Calc等)
下記のExcelのファイル

表A


Gaussianのログファイルからプロットに用いる数字だけを取り出すには、
LinuxやmacOSのターミナルの場合、
grep 'Excited State' ログファイル名 | awk '{print $7" "$9}' | tr -d 'f='
ピリジンのTD計算の出力は、
247.38 0.0054
231.81 0.0000
200.24 0.0100
163.77 0.0019

これをExcelに張り込み、[データ]の[区切り位置] を [スペース] として分割してセルに格納して下さい。
セルに格納された数値全体をコピーして、[形式を選択して貼り付け]→[行と列を入れ替え]として貼り付けると表Aと同様に、
表A

となり、すぐに活用できるようになります。
これを使って、例題と同様に 式B を、$で固定されたセル番号を注意して入力し、表を完成させてグラフ化すると[Pyridine Nstates=4]のシートが完成します。 この図は、GaussViewによるグラフと一致しています。




これで市販ソフトのGaussViewがなくてもUV-VISスペクトルを作成できるようになりました。 TD(Nstates=4)として計算しましたが、TD(NStates=10)とすると、さらに振動子強度の大きい励起が160nmあたりに現れます。



Hiroshi Tachibana