ホーム > 計算化学 > ソフトウェア > Gaussian > Gaussian Tips > Gaussian計算エラー対処・虎の巻/第10回配信: 基底関数指定に関するエラー

Gaussian入門メールニュース:
Gaussian計算エラー対処・虎の巻

計算がエラーで止まってしまった!でもどうすればいいかわからない。
結果が何かおかしい。どこがいけなかったのだろうか?
といった疑問の解決に少しでもお力添えするべく、よくあるエラーを中心に、直接的な対処法から簡単な理論的背景まで含めて解説いたします。

第10回配信: 基底関数指定に関するエラー

 基底関数が明らかに不適切とGaussianが判断した場合、Overlay 3(特にLink 301)に何らかの警告メッセージが出力されます。ただし、大抵の場合、警告するだけで計算自体は続行することが多いです。したがって、不適切な基底関数指定にもかかわらずそのまま計算が正常終了することもありますし、一見基底関数と関係ない箇所でようやくエラーとして表に現れることもあります。したがって、慣れないうちはOverlay 3(Link 301)の出力部分に警告メッセージがないかを、常に確認する癖をつけておくとよいでしょう。

(10-1) 既製基底関数の指定に関するエラー

 既製基底関数の指定時に起こり得るエラーは、書き間違い等による存在しない基底関数の指定や、基底関数が指定した元素に対応していないこと等が挙げられます。基底関数の書き間違いの場合は、Overlay 0ですぐに止まりますので、対処しやすいと思います。下記の例では「6-31+G(d)」が正しい表記であるのに「6-31G+(d)」と指定してしまったことにより、エラーとなっています。

 一方、後者のエラーは、エラーメッセージの意味がややわかりにくいこともあり、戸惑う方も少なくないかもしれません。代表的な既製基底関数にはPople系(6-31G、6-311+G(d,p)など)、藤永(Huzinaga)-Dunning系(D95、D95V(d)など)、cc-pVNZ系(cc-pVDZ、aug-cc-pVTZなど)が挙げられますが、全ての元素にこれらの関数が用意されているわけではありません。ECP基底関数を除き、Gaussianがサポートしている大抵の既製基底関数は第3周期か、せいぜい第4周期の元素までしか対応していないことを覚えておきましょう。(金属核NMR計算などのように、重原子にECP基底関数を使えない場合などは、基底関数のパラメータを顕に指定してやる必要があります。)
 下記の例は、第3周期元素までしか対応していないD95基底関数を第4周期であるZnに与えようとして起きたエラーです。

上記の「Atomic number out of range for D95 basis.」とは、「D95基底の適用範囲外の原子番号(が指定された)」というエラーメッセージであり、この場合はZnがD95基底の適用範囲外であることを意味しています。なお、Gaussianで使える既製基底関数の元素適用範囲は、Gaussian社の公式ユーザマニュアルをご参照下さい。

(10-2) Genキーワードによる基底関数の指定に関するエラー

 GaussianではキーワードGenとそれに付随する追加入力を利用することにより、基底関数を自由にカスタマイズすることができます。例えば、元素ごとに異なる基底関数を与えたい場合には、下記のようなインプットを作成すれば計算可能となります。この例では、CとOには6-311+G(d)を、Hには6-31Gを与えています。なお、「C O」と「H」の行の最後の0(ゼロ)はその行の最後を表す符丁ですが、省略可能です(なくても計算は走ります)。

また、Genを用いれば、既製基底関数ではない(例えば軌道指数のパラメータ値を調整した)基底関数を指定することもできますが、その詳細については初学者向きでないため、ここでは省略します。Genキーワードのより詳しい使い方を知りたい方は、弊社のGaussian日本語マニュアルまたはGaussian社の公式ユーザマニュアルをご参照下さい。
 さて、Genを用いた時のエラーとしては、先の(10-1)節で述べたものの他に、以下が挙げられます。
(1) 追加入力そのものがない
(2) 追加入力のフォーマットミス
(3) 追加入力の順番が間違っている
(4) 追加入力情報のない原子がある
(5) インプットの最後の空行がない
 まず最後の(5)については、これまでもさんざん述べてきましたが、とにかく最後の空行は忘れないよう注意して下さい
 次に(1)についてですが、Genキーワードが指定された場合、インプットに追加入力情報があることが前提となっていますので、これがないとエラーとなります。

 また、当然ながら、追加入力のフォーマットにミスがあってもエラーとなります。例えば、追加入力欄で各原子の基底関数情報を区切る「****」ですが、このアスタリスクの数にも意味があり、勝手にアスタリスクを3個に変更するとエラーとなります(下の例で、エラーメッセージを見ると、「Error reading general basis specification」とあり、Gen基底関数の読み込みに失敗していることがわかります)。正しい指定方法の例は、弊社のGaussian日本語マニュアルやGaussian社の公式ユーザマニュアルにありますので、これらの例にあるフォーマットからあまり逸脱せず、正しい指定を心掛けて下さい。

 複数の追加入力情報を指定しなければならない場合は、その指定の順番を間違えてもいけません。第3回配信で解説したように、正しい順番を遵守して下さい。例として、GenTD=ReadWindowを同時に指定した場合を示します。

上記の「3 −2」は本来TD=ReadWindowの追加入力情報なのですが、これをGenの情報として読み込もうとし、シンタックス(構文規則)エラーを起こして計算が停止しています。第3回配信で示したインプットセクションの順序の表を見ると、ReadWindowオプションの追加入力情報はGenの追加入力情報より後に与えねばなりません。したがって、この場合の正しいインプットは以下のようになります。

 また、一部の原子に追加入力情報を与え忘れた場合、Overlay 3で警告メッセージを出力しますが、計算自体は続行します。下記の例ではH原子(3番目と4番目の原子)に基底関数が指定されておりませんが、計算自体は正常終了しています。

ただし、計算が正常終了することと、その計算結果が信頼できるかどうかは別の話です。基底関数を特定の原子に置かない計算は、デバッグ目的や理論的考察のために意図的に行われることがありますが、通常の目的ではその計算結果は信頼できるとは言い難いでしょう。このように、基底関数の指定ミスは結果としてエラーとならず、意図せず信頼性の低い結果をもたらすこともあるので、十分注意しましょう。これは、基底関数指定に限らず、キーワード指定や分子指定でも同じことが言えます。
(なお、本当に偶然なのですが、上記の計算で出力されたGaussian格言は、「間違えるのが人間だ、まして、それをコンピュータのせいにするのもまた人間だ」でした。筆者の自戒も込めて肝に銘じたいものですね。)

(10-3) 有効内殻ポテンシャル(ECP)の指定に関するエラー

 重原子の場合、価電子にのみ顕に基底関数を与え、内殻の電子の影響は価電子が内殻電子から感じるポテンシャルに置き換えてしまうことで計算量を削減するという近似がよく用いられます。これを有効内殻ポテンシャル(ECP)近似といいます。Gaussianでよく利用される既製ECP基底関数には、LanL2DZやSDDなどがあります。またGenの場合と同様に、既製でないECP基底関数の指定やパラメータ値のカスタマイズも可能ですが、初学者向きでないため、その詳細は弊社のGaussian日本語マニュアルまたはGaussian社の公式ユーザマニュアルに譲り、ここでの解説は省略します。
 ECPを指定する場合の注意も基本的には(10-1)、(10-2)節と同様ですが、新たに注意すべき点としては、GenもしくはGenECPキーワードでECPを含む基底関数を用いる場合、基底関数とECPは別々に指定しなければならないということが挙げられます。例えば「LanL2DZ」という用語には、厳密に言うと「内殻電子用ポテンシャルとしての」LanL2DZと「価電子用基底関数としての」LanL2DZという2つの意味があります。キーワード欄(#行)に「LanL2DZ」と書くと、その両方にLanL2DZを採用するという意味になりますが、GenまたはGenECPでLanL2DZを指定する場合は、この2つの意味の「LanL2DZ」を別々のものとして扱わねばなりません。
 このことに関して最もよくありがちな間違いを紹介します(第6回配信でも同様の例を示していますので、併せてご参照下さい)。下記はZn原子に(ECPを含む)LanL2DZ基底関数、H原子にcc-pVDZ基底関数を用いた計算を意図したインプットです。しかしこのインプットで計算を開始すると、Zn原子には「価電子用基底関数としての」LanL2DZしか与えられず、「ECPとしての」LanL2DZは適用されません。つまり、内殻電子を含む全電子に対する計算を、「価電子用の」LanL2DZ基底関数のみを用いて実行します。もちろん、そのような計算結果は全く信頼できないものとなります。

ユーザの意図する計算条件にするためには、下記のように、キーワード欄にPseudo=Readキーワードを追加し、さらに追加入力から「ECPとしての」LanL2DZ関数を読み込ませる必要があります。すると、インプットに「LanL2DZ」が2回登場することになりますが、1回目は「価電子用基底関数としての」LanL2DZ関数、2回目は「ECPとしての」LanL2DZ関数を意味します。

また、GenECPキーワードは「Gen Pseudo=Read」のキーワード組み合わせと全く同じ意味になりますので、上記の例では、キーワード欄に「#P  B3LYP/GenECP」と指定しても構いません。

 今回の内容は以上です。次回(第11回配信)では、「エネルギーSCF手続きに関するエラー〔1〕」を解説いたします。

メールニュース会員募集中!

Gaussian入門者の皆様に、Gaussianを使いこなして高度な計算化学者に飛躍していただけるよう、Gaussianに関する様々な情報を発信しております。メールニュースの配信をご希望の方は、以下のフォームよりお願いいたします(お問い合わせ内容の項に「Gaussian入門メールニュース配信希望」とご記入ください)。

メールにてお申し込みされる方は、以下の必要事項をご記入の上、送信してください。

  • ◆電子メール件名 : Gaussian入門メールニュース配信希望
  • ◆記入項目:
    1. 氏名 :
    2. E-mail:
    3. 法人名/部署名:
    4. 住所:
    5. 電話番号:
  • キャンペーン情報
    現在開催されているお得なキャンペーン情報はこちらから。
    詳細
  • ご購入前のお問合せ
    フォームにご入力いただければ後ほど営業よりご連絡させていただきます。
    詳細
  • 見積り依頼
    フォームにご入力いただければ後ほど営業よりご連絡させていただきます。
    詳細
CONTACT

お問い合わせ

お客様に最適な製品をご提案いたします。まずは気軽にお問い合わせ下さい。
075-353-0120

平日9:30~17:30 (土曜日、日曜日、祝祭日、年末年始、夏期休暇は、休日とさせていただきます。)