Gaussian での反応機構解析を効率化!

Gaussian を用いた反応機構解析は、計算化学者のみならず、いまでは実験科学者も日常的に行うものになってきました。

実験データのサポートとして計算結果を載せている論文も珍しいものではなくなってきました。

さて、そんな非常にカジュアルになってきた gaussian での反応機構解析ですが、いかに早く、実験の邪魔にならずに行うことが出来るのかという点が重要になってきたように思います。

今回は、反応機構解析をどのようにすれば効率化できるかについてまとめてみました。

反応経路探索の流れ

反応機構解析では、まず遷移状態構造を探索することから始まります。

gaussian を用いた場合の一般的なプロセスとしては、

  1. modredundantTS opt の初期構造を見つける
  2. TS opt freq 計算を行う
  3. IRC 計算を行う
  4. IRC 計算の結果に対して opt & freq 計算を行う

です。

この流れについては、新版 すぐできる 量子化学計算ビギナーズマニュアル (KS化学専門書) にも書かれています。

1 ステップ目の modredundant は、計算する人の腕によって所要時間が大きく変わります。どんなに頑張っても TS っぽい構造が見つからない場合もありますし、一瞬で見つかる場合もあります。

このステップは、計算結果を一つ一つ目でしっかり確かめた方が無難です。この点においては、実験と一緒でトライアンドエラーの繰り返しです。

一方で、2, 3, 4 のプロセスは、単なるルーチンワークです。計算する人の腕は全く関係なく、いかに時間のロス無く進めるか、という点が重視されるステップです。スクリプトなどで自動化するのに非常に向いています。

chk ファイルを利用する

TSoptIRC 計算が終わるたびに、log ファイルを Gauss View で開いて座標を保存。。。とやるのは非常に面倒です。

こういった時間のロスを無くすために、chk ファイルをうまく利用しましょう!

guassian では、geom=check を利用することにより chk ファイルから直接座標データを取得することが出来ます

また、opt=readfcirc=rcfc などのキーワードを利用することにより、最初の力の計算を省略することが出来ます。これによって、非常に計算が効率化できます。

chk ファイルをコピーして、インプットファイル(.com or .gjf )を作成するプロセスは非常に単純なルーチンワークです。また、IRC 計算や 最後の opt&freq で使用するインプットファイルはほとんどの場合において一緒です。

そのため、 tsopt -> irc -> opt&freq のプロセスを自動化することが出来れば、さらに計算が効率化できます。

退屈なルーチンワークは、全てコンピューターにやらせることにしましょう!

以下、tsopt -> irc -> opt&freq の自動化のプログラムです。

環境

管理人は、自前のコンピューターではジョブスケジューラーとして torque を使用しています。 OS は、計算機によって異なりますが、Ubuntu または Fedora です。

ジョブスケジューラーを入れてないという人は、入れることを強くお勧めします。毎回

nohup g16 inputfile.com &

などと入力するのは大変ですし、計算終了時に通知が来ないのも面倒です。

実際のプログラム

下のリンクからダウンロードしてください。以下の 3 つのファイルが含まれています。

  • first_PBS.cpp
  • second_PBS.cpp
  • third_PBS.cpp

それぞれ first, second, third という名前でコンパイルして、path の通してあるフォルダに入れておいてください。

g++ first_PBS.cpp -o first
g++ second_PBS.cpp -o second
g++ third_PBS.cpp -o third

ジョブスケジューラーを利用する場合には、実行ファイルを作成する必要があります。大抵の場合、filename.sh といった感じで、コア数メモリの指定、wall time(実行時間)の指定、メールの設定、module load などを書き込みます。

上記のプログラムでは、first inputfile.com [計算レベル] [wall time] のようにして実行すると、tsopt の入力ファイルから自動的にコア数メモリなどを読み取り、実行ファイルを作成してくれます。

first sample.com B3LYP/6-31+G** 72

また、最初の TS opt の計算終了後に自動的に second というプログラムが起動し、TS opt の chk ファイルのコピー、IRC 計算の入力ファイルと実行ファイルを作成してくれます。

さらに、IRC 計算終了後に、自動的に third というプログラムが起動し、IRC 計算の chk ファイルのコピー、opt&freq の入力ファイル実行ファイルも作成してくれます。

非常に単純なプログラムですが便利なので、管理人は毎回使用しています。

PBS 系の実行ファイルをもっと細かく指定したいという人は、ご自身で上記プログラムを書き換えてください。

関連する記事

2 comments

  1. いつも楽しく拝見しています。
    torque便利ですよね。私も使用してクラスターシステムで運用しています。

    readfc はread internal force constant
    rcfcは read cartesian force constant なので これらは力の定数です。
    cartesian force constant は 振動解析をしないと計算できないので
    省略できるのは freq 計算になりますね。
    あとchkを直接流用すると上書きしちゃうので
    %oldchk= (読み込みのみに使用)がお気に入りです。

    1. tenten 様
      いつもコメントありがとうございます。
      oldchk というキーワードは知りませんでした。
      私はいつも chk ファイルをコピー(cp)して、別名にして、次の計算に使用していました。
      readfc と rcfc についても大変勉強になりました。
      今後も、気になる点などございましたら、コメントして頂けると大変ありがたいです。

コメントを残す(投稿者名のみ必須)