直線構造で止まるエラーについて【Gaussian】

Gaussian を用いた反応経路探索では、遷移状態構造最適化の初期構造を探す際に opt = modredundant などで初期構造を徐々に変化させていき、エネルギーの変化や虚振動の有無などをみていきます。(詳しくは、すぐできる量子化学計算ビギナーズマニュアル (KS化学専門書)の “遷移状態を求める具体的手順を教えてください” という項目をご参照ください。)

しかし、modredundant の際に非常に困るのがエラーで計算が止まってしまうことです。今回の記事では、 3 原子が直線上に並ぶと止まってしまうというエラーへの対処方法を少し紹介します。

直線上に並ぶエラー

構造最適化の際に 3 原子の角度が 180 度になってしまうと、下記のように “Bend failed for angle” と表示されてエラーで計算が止まってしまいます。管理人は、このエラーに対して 2 つの対処法しか知りません。もし他に良い対処方法を知っている方がいらっしゃいましたら、教えてください。

GradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGradGrad
 Berny optimization.
 Using GEDIIS/GDIIS optimizer.
 Bend failed for angle    37 -    39 -    40
 Tors failed for dihedral    38 -    37 -    39 -    40
 Tors failed for dihedral    37 -    39 -    40 -    41
 Tors failed for dihedral    37 -    39 -    40 -    42
 FormBX had a problem.
 Error termination via Lnk1e in /opt/gaussian/g09/g09/l103.exe at Wed May 14 04:44:44 2010.
 Job cpu time:       0 days 18 hours 52 minutes  4.0 seconds.
 File lengths (MBytes):  RWF=   1121 Int=      0 D2E=      0 Chk=     33 Scr=      1

対処法1: 座標を動かす

このエラーの対処方法として、座標を少し手動で動かしてからスタートさせるのが有効な場合があります。上記の場合ですと、 37, 39, 40 番の原子の配置に問題があるため、この 3 原子の角度や距離を微妙に変えます。どのくらい動かせば良いかは、経験を積むと分かってきます。

modredundant の scan などで構造を連続的に変化させている場合、座標を変えてスタートさせても数 step 計算が進んだ後に再度止まってしまうことがあるかもしれません。その時は、scan で動かす距離や角度の幅を変えたりします。

対処法2: G03 を使う!

論文の method の欄を見ていると g03 と g09 の両方を使ったという記述が数多くあると思います。

“未だに g03 使っているなんて時代遅れだな〜” と思う方もいるかもしれませんが、 g03 を使うのには理由があります。gaussian には各 revision ごとにバグや使える機能、使えない機能があります。そのような問題を避けるために今でも g03 を使う人がいます。IOp の番号も微妙に異なるため g03 で計算するということもあります。

直線構造で計算が止まってしまうというエラーに関しても g03 では起こらないと言われています。(参考文献 1: “老师说过G03好像不会出现这种情况”)

一つ問題なのは、Minnesota 汎関数 で計算している場合 g03 は使えないということです。。。

g16 では?

Gaussian 16 が今年発売された際、この問題が解決したかが非常に気になっていました。

残念ながら gaussian 16 においても直線構造で計算が止まってしまうというエラーはしっかりと残っています。

 

もし他に良い対処方法を知っている方がいらっしゃいましたら、教えてください。
管理人は専門家ではありませんので、記事に間違いなどがありましたらコメントまたはメールなどでご指摘いただけたら幸いです。

参考文献

  1. 小木虫

関連する記事

汎関数一覧に戻る

計算手法に戻る

3 comments

  1. ダミー原子を設定して、180度にならないように原子を指定するのが、
    教科書的な解答だと思います。
    天邪鬼な私は意地でもダミー原子を使いたくなかった(美しくない!)ので、
    フェニルアセチレンなどは、直線位置にある原子の結合距離を
    以下のように伸ばして指定するという小細工で切り抜けてました。
    C
    C 1 1.4
    C 2 1.4 1 120.0
    C 3 1.5 2 120.0 1 180.0
    C 3 2.7 2 120.0 1 180.0
    C 3 4.2 2 120.0 1 180.0
    H 3 5.2 2 120.0 1 180.0

  2. ガウシアンは構造最適化で用いる座標に二面角を用いるのですが、直線だと二面角が定義できないのでこけてしまいます。 一度つくられた座標の組み合わせ(logの!で始まる部分)は構造最適化の間変化しませんので、当初は問題なくても最適化中に問題ある構造になる場合があります。 そこでXYZ座標→内部座標の変換をやり直しさせるとよい結果がえられる場合がおおいです。

    guess=read geom=(check,newredundant) としておけば 直線になるような角度の取り方をしないため 前のデータを再利用できて chkファイルからリスタートできるので 便利です。

    1. てんてん 様
      いつも貴重な情報をありがとうございます。
      これからも色々と教えていただければと思います。
      今後ともよろしくお願いいたします。

コメントを残す(投稿者名のみ必須)