「計算がエラーで止まってしまった!でもどうすればいいかわからない。」
「結果が何かおかしい。どこがいけなかったのだろうか?」
といった疑問の解決に少しでもお力添えするべく、よくあるエラーを中心に、直接的な対処法から簡単な理論的背景まで含めて解説いたします。
前回の配信では、「一口にエラーと言っても、いろいろな種類がある」こと、また「エラーの現象に応じた対処法がある」ことを学びました。今回は、その対処法について具体的に見ていきましょう。
計算を走らせてもすぐ終了してしまう場合、そもそもGaussianプログラムそのものが走る前にエラーが起こっている可能性があります。Gaussianプログラムが始動する際には、例外なく次のようなクレジットタイトルがアウトプット内に表示されます。
もしアウトプットファイルにこのような表示なくジョブが終了してしまった場合は、そのジョブがGaussianプログラムを正しく始動されられない状態にあることを意味しています。その原因としては、
(1) Gaussianプログラムが正しくビルド(コンパイル)されていない
(2) Gaussianプログラム自体は問題ないが、Gaussianを正しく始動させるための設定に誤りがある
という2つの可能性が考えられますが、 (1)が原因であるとすれば、ユーザ自身でGaussianをビルドしようとした時か、誤って一部の重要なファイルを消去または上書きしてしまった時くらいですので、大多数のユーザにとって、この原因は考えなくて良いでしょう。
次に、(2)についてですが、特にLinux版Gaussianでよくある原因としては
・存在しないディレクトリや、インプットファイル名が指定されている
・Gaussianプログラムもしくはインプットファイルのディレクトリ指定に誤りがある
・書き込みが許可されていないディレクトリにアウトプットファイルを生成しようとしている
などが考えられます。特に、「ディレクトリの書き込み許可がない」という原因は見落としがちですので、注意しましょう。上の2つに関しては、単純なキーボード入力ミスかGaussian環境設定ファイルに誤りがあることが考えられます。ディレクトリの書き込み不許可や単純な入力ミスでない場合は、環境設定の問題ですので、計算機システム管理者かGaussianを実際に設定した方に相談してみて下さい。
また、Windows版/Mac OS版のGaussianでよくあるケースとしては、GaussianまたはGaussViewに関係するファイル名・フォルダ名に全角文字が含まれているために起こるエラーが考えられます。もう少し詳しく言うと、Gaussian/GaussViewには、
・Gaussian/GaussViewのインストール先は、絶対パスまで含めて半角英数でなければならない
・Gaussian/GaussViewでファイルを扱う際、そのファイル名と絶対パスは半角英数でなければならない
という制約があり、これを破ると下のようなエラーが出てしまいます。
上の例では、開こうとしているファイル名は「test-job1.out」という半角英数文字ですが、その絶対パス(ディレクトリ構成)の中に日本語(全角文字)が含まれているため、エラーとなります。これを防ぐためには、
・Gaussian/GaussViewのインストール先は、ディスク直下にする
・Gaussianフォルダの下に半角英数文字のフォルダを作り、Gaussian関係のファイルは全てそこに置く
という方法をお勧めします。(パスに全角文字を含んでいてもなぜか偶にファイルを開けることもありますが、いつも開けるとは限らないので、全角文字は使わない方が無難です。)
また、Windows/Mac OS版では、Gaussian→GaussViewの順番にインストールすべきであり、インストールの順番を逆にすると上手く動作しないことがありますので、ご注意ください。
クレジットタイトルが無事表示されるもGaussian計算の途中で停止してしまう場合、前回配信でも触れましたが、Gaussianが想定しているエラーと想定していないエラーに分類されます。Gaussianが想定済のエラーでは「Error termination」というメッセージと共に計算が停止します。逆に、このメッセージなしに計算が停止する場合は、Gaussianが想定していないエラーということになります。
意外に思うかもしれませんが、この2つのうち対処の難易度が高いのは、「Error termination」が表示されるエラーの方です。Gaussianプログラムは計算上の様々な不成功の可能性を想定し、ソースコード上の実に6000以上の箇所で「Error termination」のメッセージを表示させるようにプログラムされていますので、その対処法も比較的簡単なものから深刻なものまで多種多様にわたります。したがって、この類のエラーに本格的に対処していくには、そのエラーが起こる理屈から理解した上で(第4回~第6回配信予定)、ある程度各論的に議論する(第7回以降配信予定)のが良いかと思いますので、ここでは詳しくは述べません。
その代わり、以下ではGaussian初心者が比較的遭遇しやすい「Error termination」を3つ紹介します。1つめはインプット・キーワードのミスです。例えば、「Pop=Full」という正しいキーワードの代わりに「Pop=Hull」という誤ったキーワードを与えると、以下のようなメッセージと共に、直ちに計算が停止します。
ここで、誤っている箇所はアポストロフィ( ‘ )で教えてくれるので、それを参考にインプットを修正します。
2つ目は、電荷とスピン多重度の不整合です。例えば、以下のようなジョブを実行させるとします。
すると、以下のように計算が停止します。
すなわち、「スピン多重度1」と「系の電子数15(=ホルムアルデヒドの1価カチオン)」の両立は不可能というメッセージですので、矛盾のないようにインプット中の電荷とスピン多重度を設定し直してください。
もう1つは構造最適化計算の収束不良です。例えば、
のように、ランダム出力される格言の後、「Error termination」が2連続で出力された場合、その分子の最適化構造が見つからなかった可能性が高いです。その場合は、アウトプットファイルを「Non-Opti」(大文字小文字に注意)で検索してみて下さい。もし分子構造の収束不良であれば、以下のようなメッセージが出力されているはずです。
この場合の対処方法は、
・得られた最終分子構造を初期分子構造として再計算する
・初期構造や計算手法の再検討を行う
のどちらかです。どちらが良いかはルーチンワーク的ではなく、得られた最終分子構造が「化学者の目から見て」妥当かという観点から判断することが多いです。妥当であれば前者、妥当でなければ後者の対処が良いでしょう。例えば上記の場合、1番目の原子と17番目の原子が85Åも離れています。これは17番目の原子が完全に解離してしまっていることを意味しており、もしその解離が化学的に妥当でなければ、初期構造の再検討を行う必要があることがわかります。
なお、構造最適化計算における諸問題については、第11回配信にて行う予定です。
(2-2)節の場合とは逆に、Gaussianが想定していないエラーの原因はそれほど多くありません。せいぜい、
・ディスク容量が満杯になった
・ジョブ管理ソフトなどによるGaussianジョブの強制切断
・Gaussianプログラムの不具合(バグ)
くらいだと思います。
この類のエラーが出たら、まずは「ディスク容量」を疑って下さい。もし計算ディスクに大容量ファイルがあれば、それらを消去・退避させてから再計算して下さい。また、大きめの分子のMP2計算ではディスク容量不足によるエラーに陥りやすいので、注意して下さい。これは、何も設定しなければ「実際のディスク容量に関らず、Gaussianプログラムはどれだけでもディスクを使ってよい」という設定になっているからで、それを防ぐためは、MaxDiskキーワードで、実際のディスク容量の限界値を顕に指定します。
このように指定することで、Gaussianは与えられたディスク容量限界の中で最適なアルゴリズムを自動選択します。MaxDiskに関する詳細は、Gaussian社か、弊社のキーワード日本語解説ページをご覧ください。(なお、Hartree-FockやDFTの計算では、デフォルト設定ではディスクをほとんど使用しませんので、さほど気にしなくても構いません。)
ディスクが原因でない場合は、何らかの原因によってGaussianジョブが外部から強制的に切断された可能性があります。よくあるケースは、ジョブ管理ソフトが各ジョブの計算時間の上限を設定していて、その上限時間を超えて計算が走った場合や、停電によって計算機の電源が落ちてしまった場合です。このような場合は、計算機システムの管理者に相談するより他はありません。
また、滅多に見られませんが、Gaussianプログラムに不具合があって、想定外のエラーで停止すること もあります。特に、Gaussian09 Revision Aは不具合が少なからず報告されており、このバージョンをお使いの方は早急に最新版へのアップデートをお勧めいたします。もし、上記の点を確認した上でもなお「Error termination」を表示せずに計算が停止する場合は、弊社またはGaussian社に問い合わせてみて下さい。
同じ分子を同じ計算条件で走らせた場合、それらの計算結果は計算アプリに依らず、本来一致すべきですが、実際は必ずしも一致するとは限りません。対象となる計算結果が参照結果と大きく違わないものの完全には一致しない場合、以下の原因が考えられます。
・ユーザの不注意により、それらが同じ計算条件になっていない
・プログラム仕様上の問題(完全な一致は事実上困難)
同じバージョンのGaussian計算結果で一致しない場合、大抵はユーザの不注意が原因です。インプット中のキーワード、基底関数、分子構造などを再確認してみて下さい。また、チェックポイント(chk)ファイルからの読み込みを指定している場合、chkファイルが上書きされたことが原因である可能性もあります。「%Chk=チェックポイントファイル名」コマンドをインプット中で指定している場合、chkファイルは計算終了時に上書きされます。したがって、上書きされたchkファイルを初期値として利用すれば、その結果が前の計算結果と異なることは当然ありえます(特に構造最適化計算において)。上書きされたくない場合は、chkファイルを別のファイル名でコピーしておきます。(なお、「%NoSave」コマンドは、計算終了時にchkファイルを消去するためのコマンドです。上書きせずにとっておくという意味ではないので、ご注意下さい。)
G03以前とG09の比較や、他の量子化学計算プログラム(GAMESS等)とGaussianの比較では、プログラム仕様上の問題により、同じ計算条件でも結果に違いが出ることがあります。これは収束化ルーチンや数値処理の方法が異なっているためで、結論が変わらない程度であれば、特に気にする必要はありません。ただし論文などの正式な報告では、どの計算プログラムを用いたかを明記しておく必要があるでしょう。
計算が完了しても、例えば、構造最適化したら2つの原子の位置がほぼ重なったとか、反応エネルギーが10 au(~6000 kcal/mol)と計算されたとか、化学現象としてまずありえない結果が出ることがあります。このような結果が出た場合は、インプットに初歩的なミスがあることが多いです。まずは、インプットファイルを注意深く調べてみて下さい。(インプットファイルでの注意点は、次回配信で解説します。)
インプットに特におかしい所が見つからなければ(と言っても、大抵どこかに不適切な箇所があるはずなのですが…)、アウトプットファイルを最初から順に見ていき、どこで初めて不審な結果が現れたかを丹念に調べる必要があります。この段階まで来ると、その対処法は(2-2)節のError terminationの場合と同じで、量子化学やGaussianプログラムの理屈をある程度理解しないと、どこを「不審」と判断するか、その不審な結果が起こるのはなぜかを解析するのは難しいのではないかと思います。これについては、第4回配信以降を参考にして下さい。
計算結果が実験事実と合わないこと自体はエラーの類ではありませんが、このことについても少しだけ触れたいと思います。明らかに結果がおかしい場合を除けば、合わない原因としては以下のようなことが挙げられます。
(1) ユーザの不注意 (ユーザが意図しない計算になってしまっている)
(2) 計算モデル(計算コスト抑制を目的とする、系の簡略化)が不適当
(3) 計算精度の不足 (より高精度な計算手法、基底関数が必要)
(4) Gaussianプログラムの仕様またはバグ
(5) 計算機環境(OS、コンパイラー)との相性 (Gaussian社推奨でない環境で運用している場合)
(6) 新しい科学的事実の示唆
上記は、Gaussian計算結果の吟味においてユーザが考察すべき順に並べてあります。大抵のケースでは(1)~(3)が重要であり、(1)については本メールニュースで徐々に解説していくとして、(2)(3)については
・可能ならば、計算方法の原理から勉強する
・それが厳しければ、知識として計算方法の特徴だけでも知っておく
・実際に計算してみる(経験則をつかむ)
という方針が考えられます。言い換えれば、「まず、その計算方法が原理的に妥当かどうか判断する」ことと「ある程度妥当であれば実際に計算し、その計算結果を見てから判断する」ことによって少しずつ計算結果の信頼性を上げていくことが重要であると筆者は考えています。
計算方法の原理を知るには「専門書を読む」「専門の研究者に質問する」のがベターですが、「関係論文を読む」のもひとつの手です。ただし、その論文での計算方法がその著者特有の方法である可能性もありますので、できるだけ多くの研究グループの計算方法を調べることをお勧めします。
今回の内容は以上です。次回(第3回配信)では、「インプットファイル作成時の注意」を解説いたします。
Gaussian入門者の皆様に、Gaussianを使いこなして高度な計算化学者に飛躍していただけるよう、Gaussianに関する様々な情報を発信しております。メールニュースの配信をご希望の方は、以下のフォームよりお願いいたします(お問い合わせ内容の項に「Gaussian入門メールニュース配信希望」とご記入ください)。
メールにてお申し込みされる方は、以下の必要事項をご記入の上、送信してください。
平日9:30~17:30 (土曜日、日曜日、祝祭日、年末年始、夏期休暇は、休日とさせていただきます。)