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

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

Psi4による量子化学計算-Tkinterアプリ4

 引き続きPsi4の計算実施用アプリについて紹介したいと思います。

今回は分子軌道情報の表示部分になります。

 

分子軌道情報表示関数のコード1

 これまで同様に、Tkinterアプリからの入力値(method, function, baseset)を受けて、1点エネルギー計算の実行を行っています。methodの違い(HF, DFT, MP2)はif文で分岐させています。また軌道情報を得るためreturn_wfnをTrueにすることで得られた情報はwfn格納させており、そこから分子軌道に関する情報を適宜取り出すことが可能です。また分子軌道の描画用にアウトプットファイルとしてfchkファイルを保存する形としていますが、今回の紹介コードではfchkファイルは特に利用していません。因みにfchkファイルはGaussianやフリーソフトではAvogadroで開くことができ、分子軌道の可視化が可能です。

 

分子軌道情報表示の関数のコード2

 続いて、得られた計算結果からHOMO、LUMO軌道の情報を自動で表示てきるコードを作成しています。orbital_levelはHOMO、LUMO軌道に加えて表示させたい軌道の数の設定で、HOMO-1、LUMO+1などの数を設定しています。今回のコードでは「5」を設定しているので、HOMO-5、LUMO+5まで表示させる形です。

 HOMO。LUMO表示用のリスト(HOMOdata, LUMOdata, Hindex, Lindex)を作成した後、wfn.nalpha()でLUMO軌道の情報を取得しています。得られたLUMO軌道の情報を起点にして各軌道の情報をfor文を活用して(orblev値にあわせて)得ています。軌道エネルギーについては、wfn.epsilon_a_subsetで指定するレベルのエネルギー値を得ています。

 for文の中ではそれぞれの軌道エネルギーを取得、表示させると共に、データをリストに格納する作業を行っています。

分子軌道情報表示の関数のコード3

 集約したデータは表示用にHOMO軌道関係、LUMO軌道関係に分けてpandasのデータフレームとしています。最後に計算結果の表示は別途Tkinterのtoplevelでサブウィンドウを活用して表示させています。

 以上、今回は分子軌道情報の表示のコードについて紹介させていただきました。

 

 次回は紫外可視吸収スペクトルの表示についてのコードを紹介してゆきたいと思います