LoginSignup
1
0

psi4でHOMO LUMO GAP計算

Last updated at Posted at 2023-11-10

 仕事で化合物のHOMO LUMO GAPを計算したくなったんですが、計算ツールが手元になかったので、pythonで行おうと思いました。
 量子化学計算を行えるツールとして、psi4(非経験的分子軌道法のツール)、mopac(半経験的分子軌道法)のパッケージを選びました。
今回はpsi4についてメモを残します。

1 psi4をインストールしました。

conda install -c psi4 psi4

2 分子情報を入力しました。

geometry.py
import psi4

#分子構造(ベンゼン)の入力
#psi4.geometry()は引数としてcartesian座標形式、またはz座標形式を受け付けます。
#ここでは前者を選択しました。
#ベンゼンはCとHをそれぞれ6つずつ持っています。
#それぞれの原子の3次元位置情報(x,y,z)が記されています。(1行目の0、1はそれぞれチャージと多重度(一重項とか三重項とか))
#cartesian座標はavogadro(無料の分子描画ソフトウェア)にベンゼンの構造式を入れ、「extensions」から「PSI4」を選択し、そこからコピペしてきました。

molecule = psi4.geometry("""
0 1
   C        0.16410       -1.37260       -0.00020
   C       -1.10660       -0.82840        0.00010
   C       -1.27070        0.54420        0.00000
   C       -0.16410        1.37260        0.00000
   C        1.10660        0.82840        0.00060
   C        1.27070       -0.54420       -0.00070
   H        0.29230       -2.44490        0.00440
   H       -1.97120       -1.47560        0.00000
   H       -2.26350        0.96930       -0.00050
   H       -0.29230        2.44490       -0.00080
   H        1.97120        1.47560       -0.00010
   H        2.26350       -0.96930        0.00020
""")

3 構造最適化計算します。((特に構造が複雑な場合に)conformerをいくつか作ってそちらも計算し、最もエネルギーが低い結果を採用すべし。)

optimize.py
#計算のメソッドにB6LYPを、基底関数に6-31G(d)を選択しました。
#psi4.optimize()を使いました。
energy, wfn = psi4.optimize("B6LYP/6-31G(d)", molecule, return_wfn = True)

#普通のPCで普通に実行すると恐らく数時間かかります(ベンゼンなら数分?)
#ハイスペックのPCで以下のメモリとスレッドの設定をした方がいいと思います。
#例 (会社のPC使いました。こんなに必要かは知りません笑)
psi4.set_memory(1000GB)
psi4.set_num_threads(80)

4 wfnからHOMO LUMOの情報を取り出します。

homolumogap.py
#HOMO軌道とLUMO軌道のエネルギー値(単位はhartree)を取り出し、27.2114をかけてeVの単位に変換しました。
HOMO = wfn.epsilon_a_subset('AO', 'ALL').np[wfn.nalpha()-1]*27.2114
LUMO = wfn.epsilon_a_subset('AO', 'ALL').np[wfn.nalpha()]*27.2114

#gapの計算です。
HLG = LUMO - HOMO

#表示
print(HOMO, LUMO, HLG)

安定化した構造情報を保存して、avogadro等で描画させることもできます。

以上

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0