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

非常に大きな分子の計算において、末端置換基を切断してしまい、計算を軽くする方法がよく知られています。徐々に基底関数を高級なものにしていく手法と並行し、かぼそい計算パワーしか使うことのできなかった時代の知恵です。
もちろん、知りたいことがその計算でわかればよいのですが、嵩高さゆえの歪んだ構造を計算したい場合、まったく役に立ちません。やっぱり、切り捨てちゃだめだよね。。。



例えば、こんな分子(架空のものです)。青い部分をマジメに計算すれば、
電子状態はほとんど記述できるでしょう。
しかし外側をバッサリ切ると、中心構造にも影響が。

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                  0.52500300   -0.29913500   -5.49903300
 H                  0.69334300   -0.40778100   -6.56674300
 C                 -1.30327700    0.18967200   -0.71547200
 .
 .
 .
 118 119 1.0 120 1.0 121 1.0
 119 122 1.0 123 1.0 124 1.0
 120 125 1.0 126 1.0 127 1.0
 121
 122
 123
 124
 125
 126
 127
(一行あき)
C H 0     (←炭素、水素には軽い基底[3-21g]をあてよ、という指示)
3-21g
****       (←指示のおわり)
1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 0
6-31g(d)       (←原子の番号、1–31 には、[6-31g(d)]をあてよ、という指示)
****      (←指示のおわり)
(一行あき)
(一行あき)
ここまで_______

ポイント
・...28 29 30 0
この部分の、青字で強調した 0 は、指定終わり、を意味する記号です。
記入をお忘れなく。
・全体を6-31g(d)として指定しておいてから、軽くしてもいいところだけ、番号を列挙して3-21gとしても、機能します。ただ、外側の原子の数が圧倒的に多いと、こっちのほうが楽だと思います。
・指示の上下を入れ替えてしまうと、まずいことになります。
1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0
6-31g(d)
****
C H 0
3-21g
**** 
このように入れ替えてしまうと、最後に出された指示で指定されることになるので、たとえば「14」が炭素であったとして、この14には3-21gが当てられてしまいます。
・いきなり大きい計算をかけると、テンヤワンヤになっちゃいます。計算コストもかかってすまうので、失敗の精神的ダメージも大きいです。小さなもので、計算が望んだ形で進むことを確かめてから大きい計算をかけることをお勧めします。
pop=full などをつけておけば、軌道の情報がはき出されるので、望む原子に望んだ数の基底関数がつけられているか確認できます。
(あるいは、log fileを見れば、原子の初期座標の表示のすぐ下に、どの原子にどの基底関数をつけているか確認する事ができます。)

レッツ、カリキュレーション!

コメント

  1. 分かりやすい解説ありがとうございます。
    記事では、genコマンドで同じ原子に二度基底関数を指定した場合、後のほうに上書きされるということでした。このことはマニュアルのどこかに記載はありますか?マニュアルのGenコマンドについての記述(ttps://www.hpc.co.jp/chem/software/gaussian/help/keywords/gen/)を見ると、二度指定すると基底関数は「上書き」でなく「追加」されるのかなと思いました。

    返信削除

コメントを投稿

このブログの人気の投稿

VNCで見ている画面と自分のマシンの間でのコピー&ペースト

Natural Bond Orbital (NBO) Analysis, 自然軌道解析をやってみる

Lanl2DZの使い方