gaussian scan の結果を解析するプログラム

Share This:

遷移状態構造の探索などを行う際に gaussian の modredundant の scan コマンドを使うことが多いと多います。
通常は、log ファイルを gauss view で開いてエネルギーの山を探し、gauss view 上でその構造を save し、次の計算のインプットファイル作っていくと思います。

しかし、scan コマンドでは複数の構造を探索するために log ファイルが結構な大きさになってしまうことがあります。

手元にある計算機から log ファイルをダウンロードする際は転送はあっという間です。しかし、出張先などで wi-fi 環境がよくない際には数百 MB のファイルのダウンロードには時間がかかってしまうため、やる気が失せてしまいます。。。

ダウンロードなしで、terminal 上で計算の進行状況を確認し、かつ目的の構造を抜き出すプログラムがあれば良いのになぁということで、簡単なプログラムを書いてみました。

環境

Mac
gcc 7.3.0
Gauss View 6
Gaussian16

Linux (Ubuntu server 16.04)
gcc 5.4.0
Gauss View 6
Gaussian16

プログラムは C++ で書きました。

必要な機能

  1. terminal 上で エネルギーダイヤグラムを表示
  2. local maxima または local minima の座標を保存

local maxima/minima の座標は com 形式のファイルで保存。ファイルの大きさは数 KB なので、ダウンロードするにしても一瞬で終わります。

実装

以下のように実装しました。

実行方法と実行結果

まずは、プログラムをコンパイルします。

これを script ディレクトリに置き、path を通して置きます。

のようにして、実行します。実行しやすいようにもっと短い名前にした方が良いと思いますが、ここれは説明のために、長い名前にしています。

以下のように terminal 上に結果が表示されます。

Gauss View 6 では、二点間距離を横軸にしてエネルギーダイヤグラムを表示するため、左右反転している場合があります。おそらく、二点間距離を近づいけていく場合に左右反転しているのだと思います。scan のプロット数が 30 を越えるとラップトップ画面上では見にくくなると思います。

save 1.maximum structure, 2.mimmum structure? と聞かれますので、1 または 2 を入力して Enter を押します。
1 を入力した場合は、local maxima が max_structure.com という名前で保存されます。
2 を入力した場合は、local minima が min_structure.com という名前で保存されます。

ちなみに、output ファイルは、あまり丁寧に形を整えていませんが、一応 gauss view 6 で開くことが出来ます。

バグなど

管理人は、プログラミングに関しては素人です。そのため、本記事のプログラムには修正するところも多くあると思います。バグ出しもあまりしていませんので、バグを見つけた方は報告してください。

 

 

管理人は、プログラミングに関しては全くの素人です。C++ という言語について何も理解しておりません。もし間違いなどありましたら、コメント欄、twitter またはメールにてご指摘いただけましたら幸いです。

関連する記事

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