計算化学の結果解析とプログラミング

Share This:

計算化学にプログラミングは必須ではありませんが、プログラミングを知っていると解析スピードが 100 倍くらい速くなります。

しかし、大学で化学しか勉強してこなかった人にとってプログラミングは未知の領域!ほとんどの人はテキストエディターでちまちまと計算結果を解析しているのが現状です。

今回は、初めてプログラミングを始める人にいくつか本を紹介したいと思います。

計算化学の結果の解析といってもほとんどがテキストファイルの編集、簡単な数字の計算だけです。そのため、難しいプログラミングテクニックは必要なく、きれいなコードを書く必要もありません。基礎的なことさえ分かれば良いです。そんなに時間はかかりません。

どの言語?

世の中には様々なプログラミング言語が存在します。それぞれ自分に合う言語を使えば良いと思いますが私のお勧めは、C++ とPerl です。

Gaussian などの量子化学計算ソフトは、実行速度を非常に重視するためプログラムは Fortran と C/C++ で書かれています。自分で解析プログラムを作成するにしても C/C++ で作った方が実行速度が早く低ストレスだと思います。

しかし、input ファイルの編集など些細な作業をいちいち C/C++ などで書いてコンパイルするのでは時間がかかります。そこで、スクリプト言語も何か覚えた方が良いと思います。おすすめは Perl ですが、Python、Ruby などを使っている人も多いと思います。もちろん Shell Script でも大丈夫です!

どうやって勉強すれば良い?

友達のプログラマーに聞いたら、「プログラミングに必要なことは全てネット上に書かれているから本を買う必要は無い。そもそも本の内容は古い。」と言われてしまいましたが、個人的な経験からすると最初はやはり本があった方が良いです。

筆者が一番最初に読んだのは、明解C言語 入門編 (柴田望洋 著 Softbank Creative)です。この本を読めば、解析プログラム作成に必要な知識をほとんど得ることができます。

この次に読んだ本は、明解C++ 入門編 (柴田望洋 著 Softbank Creative)です。C言語の中級編を読むよりもC++ を読んだ方が良いです。個人的には、C よりも C++ の方がコード書きやすい気がします。

また、少し複雑な解析プログラムを書き始めるとソースコードが非常に長くなってしまうので、そのいった場合は、クラスを利用したり、複数ファイルに分割するのが良いでしょう。クラスについては、
C++クラスと継承完全制覇 (標準プログラマーズライブラリ)
(技術評論社)が良いです。

この他に STL の本を読めば、C++ については十分だと思います。

Gaussian 以外では、、、

Amber を用いた ONIOM 計算などを行うときは、input ファイルの作成が非常に面倒になります。そこで、正規表現を用いた input ファイル編集について学び、簡単なスクリプトをかけるようにした方が良いです。Gaussian や GRRM の log ファイルは非常に長いため、スクリプト言語で処理すると時間がかかるため C++ を進めましたが、ipnut ファイルの作成などには perl などのスクリプト言語がオススメです。

それとは別に Linux コマンドブックビギナーズ 第 4 版 Softbank Creative も読んでおいた方が良いです。これでterminal 操作が格段に速くなるはずです。

どのくらいかかる?

1〜2ヶ月もあれば、簡単な解析プログラムが書けるようになると思います。その後は、project Euler の問題も解けるようになると思います。

次の記事では、本を読んでプログラミングの基礎を身につけた後のことを書きたいと思います。

関連する記事

汎関数一覧に戻る

計算手法に戻る

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