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

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

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

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

今回は振動計算部分の関数のコードになります。

振動計算の関数のコード1

前の構造最適化の際と同様に、Tkinterアプリからの入力値(method, function, baseset)を受けて、振動計算の実行を行っています。methodの違い(HF, DFT, MP2)はif文で分岐させています。

 

振動計算の関数のコード2

 振動計算の目的の多くは、構造最適化又は遷移状態探索での虚数解の有無かと思いますので、計算結果のデータ(frequencies)から振動数のデータを読み出し、正の振動数を負の振動数(虚数解)を分けて表示できるようにしました。具体的には、振動数の保存リスト(freqdata)に計算結果からのデータを読み込み(for 文)、npのarray化リスト(freqlist)としています。続いて正の振動数と、負の振動数の判定を行い、それぞれfreqposi, freqnegaのリストとした後にpandasのDataFrameとして、一覧として表示できるようにしています。

 その後のコードは計算終了の表示コード、計算結果の表示コードになります。

 計算結果の表示は別途Tkinterのtoplevelでサブウィンドウを活用して表示させています。

 

振動計算の関数のコード3

 サブウィンドウの表示ですが、虚数解の有無によってif文で分岐させており、虚数解がない場合は'No imaginary frequency'と表示させ、一方で虚数解がある場合のその表示をまず行っています。その上で、計算結果の振動数を上記表示の下に表示させています。

 

 以上、今回は振動計算部分の関数について紹介させていただきました。

 次回は分子軌道情報の表示についてのコードを紹介したいと思います。