備忘録:いまさら構造最適化の最適化

[本記事は私が以前書いていたblogからサルベージしたものです]

大規模なワークステーションではなく、自宅のPCで計算を行う以上、なるべく効率よく計算が終わることが望ましいのは言うまでもありません。(ワークステーションでも同じことですが、家庭用PCだとより大事になるということです)

構造最適化計算は一般に時間のかかる計算です。これをいかに速くするか。。。
PC GAMESS ver.7.0で、3-MethoxypyridineのHF/3-21Gレベルでの構造最適化をして、その計算時間とステップ数の比較をしてみました。

PC GAMESSで計算を行うとき、構造最適化に深く関わるパラメータはデフォルトで以下の通りです。
$CONTRL NZVAR=0 (直交座標系で最適化を行う)
$STATPT METHOD=QA (Quadratic Approx.で最適化を行う) IHREP=0(Hessianの再計算をしない)
$ZMAT DLC=.F. AUTO=.F. (内部座標を自動発生させない)
この条件で計算を行うと、収束まで68ステップ・333.6secかかります。

上記の条件を、以下のように変更します。
$CONTRL NZVAR=39 (自由度39=内部座標系での構造パラメータの数)
$STATPT METHOD=RFO (Rational Function Opt.で最適化) IHREP=2(2stepに1回Hessianの再計算)
$ZMAT DLC=.T. AUTO=.T. (内部座標を自動発生させ、それを使って最適化)
こうすると、収束まで6ステップ・122.5secになります。
劇的に効果がありますね。Hessianのアップデートと内部座標系の利用が最も良く効きます(それぞれがデフォルトから100secほど速くする効果がありました)。最適化メソッドは場合によるので必ずしもRFOが良いというわけでもないでしょう。

対称性の低い構造でも、このように設定すれば計算はかなり速くなります。但し、IHREPの値を1にすると、ステップ数は減りますが1ステップあたりに掛かる時間が増えて、むしろ計算時間は延びることがあります。普通は2か3ぐらいが良さそうな印象です。

《追記》
初期構造が良いと思われる場合は、IHREPは0でやったほうが速そう。初期構造が悪い場合でも、原子数が多いとHessianの計算は時間が掛かってしまうのでIHREP=2~5は現実的でないかも。HESS=CALCで最初にHessianをGuessせずに計算してスタートすれば、同じぐらい効果があると思われます。

Be the first to comment

Leave a Reply