« 私は詐称してません。 | メイン | ノートPCを修理に出しました。 »

RSURFACEの怪

最近、ねじれ歪みの計算を合間を見てやっています。
意外と奥が深いもので、分子によっては非常に高価なモデル化学が要求されるものもあります。そんな難易度の高い分子に「過酸化水素」があります。O-O結合の回転障壁が曲者で、DFT如きでは正確な障壁は求められません。CCSD(T)でやっと満足いく値に。計算時間も馬鹿になりません(といってもせいぜい1時間ですが…PCも速くなったもんだ)。

実は、この回転障壁を求めるのにPC GAMESSのRSURFACE計算を使っているのですが、この挙動が非常に怪しいのです。

入出力ファイルはこちら
これが、実に怪しい計算結果となります。いや、途中まではいいんですが…順調に160°までは計算されます。ここで、以下のような出力が。

TRANSFORMING DISPLACEMENT FROM INTERNALS TO CARTESIANS
THE ROOT MEAN SQUARE ERROR IN ITERATION 1 IS 1.07957652

これ、あるポイントで最適化が終了して次のポイントへ移動するときに初期構造を作るところなんですが、Iterationが1回で止まってます。当然、次のステップの初期構造は突拍子もない構造(そもそも二面角が170°にすらなってない)になります。本当はこうなるはず(以下の例は一個前の150°の計算終了直後)。

TRANSFORMING DISPLACEMENT FROM INTERNALS TO CARTESIANS
THE ROOT MEAN SQUARE ERROR IN ITERATION 1 IS 0.97745774
THE ROOT MEAN SQUARE ERROR IN ITERATION 2 IS 0.50950356
THE ROOT MEAN SQUARE ERROR IN ITERATION 3 IS 0.08823055
THE ROOT MEAN SQUARE ERROR IN ITERATION 4 IS 0.00322970
THE ROOT MEAN SQUARE ERROR IN ITERATION 5 IS 0.00000319
THE ROOT MEAN SQUARE ERROR IN ITERATION 6 IS 0.00000000

本来はこのようにErrorが十分小さくなるまで繰り返し計算が行われるはずが、160°の次からいきなり変なことになってます。もしかしてステップ数制限!?と思ったのですが、細かく取れば24でも36でも行けます。でも160°のところでおかしくなる。ではこの構造がおかしいのか?と思いきや、0°からじゃなくて90°から始めると、160°~170°も正常に進みます。180°から始めて0°に向かうと、今度は20°のところでつまずきます。どうやら16回目が怪しい雰囲気ですが、他の系だと16回目とは限りません。例えばエタンの回転障壁を計算するときは、-60°から始めて+70°(13回目)でつまずきます。他にも結合長を変化させるパターンなども試して見ましたが、そちらは今のところ異常は見つからず。

さて、一体何なんでしょう?バグの可能性が非常に高いような気がしますが…Granovsky先生にメールしてみようか…

○追記(2007/03/31)
Facioの末永さんにこの件を訊いてみました。流石によくご存知で、「二面角をPES Scanの座標にした場合にしばしば起こるもので、原因は、Z-マトリクスの定義が悪いためにスキャンの変移量を内部座標からデカルト座標に変換するルーチンが変な値を出力したことにあります。」とのことでした。「バグではありませんが、次期のPC GAMESSではこの問題に関して少しだけ改善されるはずです。」とも。結局、スキャンする範囲を分割して対応することになるようです。PC GAMESS 7.0.4(internal build)がリリースされてからしばらく経ちますが、次期正式リリースが待ち遠しいですね(parallel MP2 gradientも込みで)。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)