GRRM の IRC の計算結果を可視化するプログラム【GRRM】

GRRM は非常に強力な化学反応経路自動探索プログラムです。本サイトでも、これまで AFIR をはじめとしたいくつかの機能を紹介してきました。

参考AFIR の計算結果を素早く可視化するプログラム
参考GRRM の振動計算の結果を Gauss View で可視化する!
参考QM でのコンフォメーション探索

今回は、IRC 計算に関連したことについてお話しします。

GRRMIRC 計算が非常にタフで、Gaussian で 1 ステップも進まないようなものでも、きちんと落としてくれます。そのため、管理人も Gaussian でうまくいかないときは、GRRMIRC を使ったりしています。

参考IRC 計算がうまくいかない時の対処方法

そうした便利さの一方で、出力ファイルを直接 GaussView で開けないという部分で GRRM は不便です。

今回の記事では、GRRMIRClog ファイルを GaussView で開けるようにするスクリプトを紹介します。

実際に使っている様子

下動画のように、フォルダ内に GRRMIRC の log ファイルを置き、プログラムを実行します。出力ファイルとして、IRC の全ての plot を一つのファイルにまとめた result.log と エネルギーの書かれた energy.txt と二つの EQTS.com ファイルが生成します。

上動画のようにIRC の総 plot 数が 400 以上かつ原子数が多い計算の場合は、解析に 5 秒ほどかかってしまいますが、200 plot 程度の反応であれば一瞬で解析は完了します。

ソースコードと使い方

下のダウンロードボタンをクリックして、GRRM_IRC.cpp というファイルをダウンロード下さい。

コンパイルする前に、ソースコード内の GaussView の path を書き換えて下さい。ソースコード内 211 行目の下記部分です。

sprintf(buff,"open /Applications/gv/gview.app result.log");

その後にコンパイルして下さい。管理人は、gcc 8.3.0 を使用していますが、それ以前の version でも大丈夫だと思います。

g++ GRRM_IRC.cpp -o irc

生成した実行ファイル irc を path の通っている directory に移しましょう。

使う際には、

irc [GRRM IRC の log ファイル名] 

で動きます。reactant と product が逆になったしまった場合には、

irc [GRRM IRC の log ファイル名] r

と、第二引数に r を入力して下さい。

IRC の途中経過を確認することの重要性

管理人は、IRC の途中経過を見ることは非常に重要だと思っています。途中の plot を見ることをサボって reactant, TS, product の 3 つの構造しか見ないと大きな失敗に繋がってしまうこともあります。

管理人も IRC のチェックをいい加減にしたために、大きく時間をロスした経験があります。ある時、予想とは異なり複雑な転位反応が進行するという計算結果が得られた時がありました。

しかし当初、reactant, TS, product しかチェックしておらず、「望みの TS では無かった」、「IRC がうまく落ちなかった」と結論付けて、この log ファイルを失敗した計算結果のフォルダに移してしまいました。

しかし、その後数週間計算しても望みの TS が得られないことから、以前計算したものを見返すことにしました。

この再チェックの際に IRC の途中構造も詳しく解析した結果、新規な転位反応を発見することが出来ました!

結果的に気づくことは出来ましたが、もう少し丁寧に計算結果を解析していれば、あと数週間早く結論にたどり着くことが出来ていたように思いました。

他の例ですと、Diels Alder 反応などが挙げられます。教科書的には協奏的と教わりますが、上記の動画でもわかる通り、実際には二つの C–C bond 形成は順番に起こります。

その他、PTSB を見つける際にも役に立つこともあります。IRC の plot が綺麗に落ちておらず、肩があるような場合には要注意だと思います。

最後に

不具合等ありましたら、コメント欄にお願いいたします。

関連記事

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