構造最適化の際の基底関数を徐々に大きくする
大きな分子の構造最適化には、時間がかかります。
軽い計算から、徐々に精度をあげる手法をとることが一般的かと思います。
たとえば、汎関数を固定しておいて、 3-21g → 6-31g → 6-31g(d)
どんどん大きな計算機が安くなってきているとはいえ、初手から大きな計算を放り込むより、丁寧に計算を回したほうが結局はストレスなく最適化構造が得られるように思います。
ただ、計算が6時間で終わるくらいのだと、細かく様子を見るのは面倒です。
週末に重たい計算を投げるような用途にも不向き。
そんな時に使えるのが、Link コマンドです。
計算の最後に、
--Link1--
を貼り付けると、その下に記述したジョブを自動的に開始します。
ただ、計算が6時間で終わるくらいのだと、細かく様子を見るのは面倒です。
週末に重たい計算を投げるような用途にも不向き。
そんな時に使えるのが、Link コマンドです。
計算の最後に、
--Link1--
を貼り付けると、その下に記述したジョブを自動的に開始します。
これを利用した例を以下に貼り付けときます。
3-21gで計算をはじめ、6-31g、6-31d(d)へと計算のレベルが上がります。
最後は、opt=vtight で収束判定を厳しくし、int=ultrafineで計算に使うグリッドを細かくしています。2019年現在の査読論文で、文句がつかないレベルを想定しています。
得られた構造を用いてさらに振動解析を行い、虚数振動のない極小構造であることを確かめておく必要があることについても申し添えておきます。optの後ろにfreqキーワードを入れておいて、そのまんま計算してしまってもいいでしょう。
ポイント
・計算のたびに、同じ名前のchkファイル(ここでは、Sn.chk)を指定し、初期座標、初期軌道についての情報をそこから引っ張り出すことで、低いレベルの計算で得られた情報をスムーズに次の最適化計算に引き継いでいます。
ここから
%nprocshared=2
%mem=8000MB
%chk=Sn.chk
# opt b3lyp/3-21g geom=connectivity
Title Card Required
0 1
Sn 1.59676500 -0.03311300 0.00000000
N -0.05620400 0.09399000 -1.32295000
3-21gで計算をはじめ、6-31g、6-31d(d)へと計算のレベルが上がります。
最後は、opt=vtight で収束判定を厳しくし、int=ultrafineで計算に使うグリッドを細かくしています。2019年現在の査読論文で、文句がつかないレベルを想定しています。
得られた構造を用いてさらに振動解析を行い、虚数振動のない極小構造であることを確かめておく必要があることについても申し添えておきます。optの後ろにfreqキーワードを入れておいて、そのまんま計算してしまってもいいでしょう。
ポイント
・計算のたびに、同じ名前のchkファイル(ここでは、Sn.chk)を指定し、初期座標、初期軌道についての情報をそこから引っ張り出すことで、低いレベルの計算で得られた情報をスムーズに次の最適化計算に引き継いでいます。
ここから
%nprocshared=2
%mem=8000MB
%chk=Sn.chk
# opt b3lyp/3-21g geom=connectivity
Title Card Required
0 1
Sn 1.59676500 -0.03311300 0.00000000
N -0.05620400 0.09399000 -1.32295000
・ (それぞれの原子の座標セクション)
・
・
・
140 145 1.0 146 1.0 147 1.0
141
142
143 (ここは、結合の状態[一重結合、にじゅう]についてのセクション)
144
145
146
147
(一行空ける)
(一行空ける)
--Link1--
%nprocshared=2
%mem=8000MB
%chk=Sn.chk
# opt b3lyp/6-31g geom=allcheck guess=read
・
・
・
140 145 1.0 146 1.0 147 1.0
141
142
143 (ここは、結合の状態[一重結合、にじゅう]についてのセクション)
144
145
146
147
(一行空ける)
(一行空ける)
--Link1--
%nprocshared=2
%mem=8000MB
%chk=Sn.chk
# opt b3lyp/6-31g geom=allcheck guess=read
(一行空ける)
(一行空ける)
(一行空ける)
--Link1--
%nprocshared=2
%mem=8000MB
%chk=Sn.chk
# opt=vtight b3lyp/6-31g(d) geom=allcheck guess=read int=ultrafine
(一行空ける)
(一行空ける)
%nprocshared=2
%mem=8000MB
%chk=Sn.chk
# opt=vtight b3lyp/6-31g(d) geom=allcheck guess=read int=ultrafine
(一行空ける)
(一行空ける)
ここまで
コメント
コメントを投稿