投稿

2月, 2019の投稿を表示しています

それぞれの原子に異なる基底関数を指定する

イメージ
非常に大きな分子の計算において、末端置換基を切断してしまい、計算を軽くする方法がよく知られています。 徐々に基底関数を高級なものにしていく手法 と並行し、かぼそい計算パワーしか使うことのできなかった時代の知恵です。 もちろん、知りたいことがその計算でわかればよいのですが、嵩高さゆえの歪んだ構造を計算したい場合、まったく役に立ちません。やっぱり、切り捨てちゃだめだよね。。。 例えば、こんな分子(架空のものです)。青い部分をマジメに計算すれば、 電子状態はほとんど記述できるでしょう。 しかし外側をバッサリ切ると、中心構造にも影響が。 ONIOMの設定が、現在gauss viewでは手軽にできるようなので、それを勉強するのは解決法の一つかと思います(私はまだつかえませんが)。 オルタナティブな方法として、各々の原子に基底関数を割り当てられることを利用して、中心の電子状態を決定している部分には、大きな基底関数を当て、末端の嵩高さだけの寄与(だとかんがえている)の部分に小さな基底を当てる手法を紹介します。 gen キーワードを使うと元素毎に基底関数を当てられること は紹介しましたが、それの応用版です。 原子ごとに番号が与えられていますが、これを利用します。 原子の番号は、gauss viewをつかっていれば、下の絵のコマンドで簡単に確認できるので参考にしてください。 あるいは、gauss view 上で、原子の上にマウスカーソルを持ってくると、左下に表示がでます。 ここから_______ %nprocshared=16 %mem=63000MB %chk=Fe.chk # freq  b3lyp/gen geom=allcheck guess=read int=ultrafine Title card required 2 5  Fe                 1.59676500   -0.03311300    0.00000000  N                 -0.05620400    0.09399000   -1.32295000  C                  0.08688200   -0.02090700   -2.73226500  C

構造最適化の際の基底関数を徐々に大きくする

大きな分子の構造最適化には、時間がかかります。 軽い計算から、徐々に精度をあげる手法をとることが一般的かと思います。 たとえば、汎関数を固定しておいて、 3-21g → 6-31g → 6-31g(d) どんどん大きな計算機が安くなってきているとはいえ、初手から大きな計算を放り込むより、丁寧に計算を回したほうが結局はストレスなく最適化構造が得られるように思います。 ただ、計算が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 ・  (それぞれの原子の座標セクション) ・ ・ ・  1