GAMESSの出力ファイルで一番出会いたくないのが  ”EXECUTION OF GAMESS TERMINATED -ABNORMALLY- ” つまり計算が異常終了したというメッセージでしょう。量子化学計算で計算エラーはつきものです。
今回は、よくあるエラーを中心にその意味と対処法について紹介していきます。
eac00

まずはじめに確認すべきことは?

GAMESS(US)Firefly(PC GAMESS)で計算を行った場合、アウトプットファイルの最後に計算が正常に終了したかどうかのメッセージが出力されます。
eac02
つまり、「EXECUTION OF (プログラム名) TERMINATED」に続くメッセージがNORMALLY (正常)かABNORMALLY (異常)かです。ABNORMALLYの場合は、メッセージの数行上にエラーの内容がきちんと記載されている場合があるので必ず確認するようにしましょう。大抵の場合、ここを確認すれば ” 何がいけなかったのか ” が理解できると思います。
次に、具体的なエラーとその対処方法を見ていきましょう。

エラー別対処法

エラーと言ってもいろいろな種類があり、また、エラーの内容に応じた対処法が必要です。ここでは、GAMESSでよく遭遇するベーシックなエラーメッセージをいくつかピックアップして、その意味と対処法について解説します。

1) メモリーに関するエラー

計算に使用するメモリー量を上手く指定していないと、計算が停止することがあります。
この場合、「(指定したメモリの量) WORDS OF MEMORY UNAVAILABLE」とエラーメッセージが表示されます。
これは、$SYSTEMグループで指定したキーワード「MWORDS=(メモリ量)」が、実際に計算に使用するメモリに対して不足していることを意味しています。
eac01
よくある間違いが、マシンに搭載している物理メモリ量 (RAM)をそのまま指定してしまうケースです。注意したいのは、仮想アドレス空間での仮想メモリです。マシンに積んでいる物理メモリのサイズとは関係なく、仮想アドレス空間のサイズは常に一定です。例えば32 ビットWindowsでは、物理メモリ量に依存せず、仮想アドレス空間のサイズは常に4 GBです。通常、2 GB分がユーザー空間に、残りがシステム空間にそれぞれ割り当てられます。

したがって、この場合は最大2 GBのメモリがMWORDS経由で利用可能ということになります。つまり、1 MWが8 MBなので2 GBの場合、MWORDS=250以下にする必要があります。お使いのマシン環境がよくわからない場合は、トライアンドエラーでMWORDSの数値の上限を探るのも一つの手です。

2) キーワードに関するエラー

例えば以下の様なエラーメッセージが出た場合、どこが誤っているのかわかりますか?
eac03
正解は、MAXITのキーワードがMXITとスペルミスしている所です。
この場合、「ERROR READING INPUT GROUP (グループ名)」とエラーメッセージが表示されます。これは、$グループに使用できるキーワードが存在しないことを示しています。
すぐ下の行の" LEGAL KEYWORDS~ "で、その$グループで使用できるキーワードが出力されるので、スペルミスやそもそも$グループで使用できるキーワードなのかをもう一度見直しましょう。
eac05
また、キーワドやグループ間に必要な半角スペースがない場合もエラーが出力されるので注意が必要です。例えば$DATAグループの直前の半角スペースを忘れた場合、「ERROR, NO $DATA GROUP WAS FOUND」とエラーが出力されます。この際、メモリーエラーも同時に出力されるので間違わないようにしましょう。

他にも、分子座標にC1対称性を使用した場合、次の行を空白にすると以下のようなエラーメッセージが出力されます。
BLANK CARD FOUND WHILE TRYING TO READ INPUT ATOM 1 POSSIBLE ERRORS INCLUDE:
1. C1 GROUP SHOULD NOT HAVE A BLANK CARD AFTER IT.

eac04
C1対称性以外では、空白が必要な場合もあるので注意しましょう。キーワードに関するエラーはピンポイントでこれが間違っているというエラーメッセジではなく、いくつかの可能性を指摘する場合が多いです。
$DATAの空白エラーのように、それに付随して他のエラーが併発するケースもあるので、根本となる原因を出力ファイルからきちんと読み解くことが重要です。

3) 電子状態の不一致に関するエラー
計算で指定する電荷やスピン多重度などの電子状態に矛盾がある場合は、計算を実行することができないので当然エラーメッセージが出力されます。例えば以下の様なエラーメッセージは、$CONTRLグループでSCFTYP=RHF, MULT=2を指定した場合に出力されます。
SCFTYP=RHF MUST HAVE MULT=1
eac06
これは、閉殻電子系(RHF法)スピン多重度は1である必要があることを意味しています。この場合は、化学的に矛盾のないようにインプットファイル中の電子配置(基底配置)スピン多重度、電荷を設定し直しましょう。

注意したいのは、「電子状態として化学的に矛盾さえしなければ、実際の電子状態と異なっていても計算が実行されてしまう」ということです。このことからも
、これら電子状態に関するキーワードのオプション(値)は特に慎重に決定する必要があると言えます。

4) SCFが収束しない場合のエラー
上記3つは初心者によくあるエラーですが、SCFの収束エラーは量子化学計算ソフトをある程度使い慣れた方でも頭を悩ませる問題の一つです。SCF計算が収束しなかった場合、以下のようなエラーメッセージが出力されます。
FAILURE TO LOCATE STATIONARY POINT, SCF HAS NOT CONVERGED
UPDATED HESSIAN, GEOMETRY, AND VECTORS WILL BE PUNCHED FOR RESTART

eac07
この場合、$CONTRLグループの「MAXIT」の値を大きくし、SCF計算の繰り返し回数を増やすのが一つの対処法です。また、”もうこれ以上エネルギーが下がらない”という閾値「NCONV」($SCFグループ)についても見直してみましょう。
もしも、SCFの繰返し計算の回数や閾値が十分であるにも関わらず、SCF収束に関するエラーが出る場合は、初期構造や計算手法(理論/基底関数)の再検討を行う必要があります。

今後、さらに詳しくSCFを収束しやすくすくさせるためのチップスや対処法などを紹介していきます。

5) その他のエラー
上記の4つが、最もよく出会うベージックなエラーだと思います。もしも、その他のエラーメッセージで内容がわからない場合は、Googleでエラーメッセージを直接検索するか、GAMESSのマニュアルを検索すると良いでしょう。

また、以下のようなディスカッションページで過去に同様の質問がないか検索するのも一つの手です。

Firefly and PC GAMESS-related discussion club
http://classic.chem.msu.su/gran/gamess/forum/discussion.html
GAMESS - Google Groups
https://groups.google.com/forum/#!forum/gamess


おわりに

今回は、GAMESS(US, Firefly)における基本的なエラーに関する意味や対処法について説明しました。エラーは単に嫌うのではなく、慣れることが大事です。今後、様々なエラーに遭遇し、それに対処することで新たな知識やノウハウが身についていくはずです。
また、気をつけなければならないのが「計算が正常に終了したのに、結果が明らかにおかしい」といった場合です。以前説明しましたが、SCF計算ではエネルギーが収束しなかった場合にエラーを出力しますが、構造最適化計算では閾値に達すれば化学的におかしな構造であってもエラーメッセージを出力しません。
”EXECUTION OF GAMESS TERMINATED -ABNORMALLY-”が出力されなかったから安心するのではなく、出力ファイルの内容が本当に正しいが見極めることも重要です。

※) 当ブログの連載が書籍になりました!!興味がある方は、お手に取っていただければ幸いです!!
(Amazon購入ページ)(書籍の紹介記事
ICam2
【関連記事】
SCF計算と構造最適化計算の違いって何?
スピン多重度と電荷を設定しよう
RHFやUHFとは何なのか?
Inputファイルを見てみよう その②~中級編~