あるケミストの独り言(winchemwinの日記)

ケミスト(化学者)の視点で、面白そうな情報(シミュレーション関係など)を発信

Psi4による量子化学計算-紫外可視光吸収データ-その1

  今回は化合物の光の吸収波長と吸収強度(振動子強度)の計算事例について紹介したいと思います。

コード1 ライブラリーのインポート、分子情報入力

  まずはライブラリーのインポートですが、今回はTD計算を実施する必要があるため、「tdscf_excitations」をインポートしています。計算ターゲットですが今回もアセトニトリルです。

コード2 TD計算の実施

  後の計算でも使用するようオプションでJK オブジェクトを保存する設定にしています(Psi4のチュートリアルから引用していますので、後のどの処理に必要なのかは不明ですが)。その後、エネルギー計算とTD計算(得られたデータは「res」に格納されるよう設定)の設定を行っています(計算する励起エネルギーレベルの数はstateで設定できます)。

コード3 計算結果の処理

 続いてTD計算で得られた結果「res」から、エネルギー値と振動子強度をリスト型で取り出し、numpyのアレイ型のデータとしています。エネルギー値は数値処理により波長に換算し、「arraynm」としています。最後にnumpyのreshape を使ってリストの順序を入れ替えています。

コード4 計算結果の表示

 上記は計算結果の表示です。numpyのアレイデータをまとめた後、最終的にpandas のデータフレームを作成、表示させています。

 

計算結果

 アセトニトリルの計算結果は上記の通りです。設定した10のレベルの励起エネルギーと波長、振動子強度が表示されています。

 次回は得られた結果を用いたスペクトル表示について紹介したいと思います。