Taopackage 用の原子番号追記ソフト

Share This:

Gaussian で ONIOM 法により計算を行う際に Tao Package を利用して input ファイルを作ると非常に楽です。

Tao Package は非常に便利なプログラムなのですが、何箇所か手作業でやらなくてはならない不便な部分がありました。

今回は、prep ファイルの右側に原子番号を書いていく作業を簡略化するためのプログラムをご紹介します。

簡単な背景

Tao Package を使用するためには、下図のように prep ファイルの右端に原子番号を書いていかなければなりませんでした。

数原子程度の prep ファイルならば手動で行っても良いのですが、間違えが起こる可能性もありますし、原子数や化合物数が増えたりすると非常に面倒です。

このようなルーティンワークは、コンピューターにやらせるのが一番です!

prep ファイルの構成

このようなテキスト処理は perl などで書いたほうが楽だと思いますが、今回は C++ を選択しました。

今回は、例として以下に示す prep ファイルを使用します。

この prep ファイルを下のように変換します。

コード

prep ファイルは、

CORRECT OMIT DU BEG

と書かれた行の 2 つ下の行から、次の空行までが座標情報です。そのため、まず CORRECT の行と空行を探します。
次に、座標情報の 2 列目の元素記号を原子番号に変換し、各行の末尾に追加していきます。

実際のコードを下に示します。

上記のコードは仕事の空き時間に書いたため、まだまだダメなところが何箇所もあります。まず、このプログラムは 1 文字表記の元素にしか対応していません。少し修正すれば、すぐに 2 文字表記元素にも対応できますが、、、
2列目の元素名を読み込む際に正規表現を使用するべきだとは思いますが、、、

いずれにせよ、自分が仕事で使う分には十分だと思いました。

管理人は、プログラムの専門家ではありませんので、より良い方法がある場合などはコメントまたはメールで教えていただければ幸いです。
このようなコードを公開するのは、みなさんからのアドバイスを受けたいという気持ちが強いからです。
よろしくお願い致します。

関連する記事

汎関数一覧に戻る

計算手法に戻る

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