2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GAMESSを使ってベンゼンの電子状態計算を行う方法

Last updated at Posted at 2020-04-12

はじめに

こんにちは,(株)日立製作所 研究開発グループ サービスコンピューティング研究部の露木です。

前回の記事 ではGAMESSをコンパイルして実行可能なDockerイメージを作りました。今回の記事ではこれを利用してベンゼンの電子状態計算を行い,動作確認の代わりとします。

前提とする環境

前回の記事を一通り実行してDockerイメージのビルドが完了していることと,以下の通りカレントディレクトリに必要なファイルが揃っている状態から再開するものとします。もしも,環境準備ができていない場合は前回の内容を実行してDockerイメージをビルドしてください。

$ ls 
Dockerfile  Dockerfile.base  Makefile  README.md  docker-compose.yml  workspace

操作方法

まず以下のコマンドでdockerコンテナを起動し,コンテナ内でシェルにログインしてください。

$ make run

サンプルの入力ファイル c6h6.inp は初期ディレクトリに準備してあります。

# サンプルの入力ファイルの存在確認
$ ls
c6h6.inp  rungms

入力ファイルの内容

c6h6.inp の中身は以下のとおりです。この入力ファイルはベンゼンに関する HF/6-31G(d) レベルの1点計算を実行せよと指定しています。入力ファイルの詳しい意味に関しては本記事では説明しません。参考文献1GAMESSのマニュアルを参照してください。

 $CONTRL RUNTYP=ENERGY NPRINT=-5 $END
 $SYSTEM MWORDS=40 $END
 $SCF DIRSCF=.TRUE. DIIS=.TRUE. $END
 $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 $END
 $DATA
 C6H6
C1
C           6.0     -0.030544037        00.000000000        -1.409121795
C           6.0     -1.186612730        00.000000000        -0.710957795
C           6.0      1.125524656        00.000000000        -0.710957795
H           1.0     -2.086037837        00.000000000        -1.254130795
H           1.0      2.024949762        00.000000000        -1.254130795
C           6.0     -1.186612730        00.000000000         0.685372205
C           6.0      1.125524656        00.000000000         0.685372205
H           1.0     -2.086037837        00.000000000         1.228545205
H           1.0      2.024949762        00.000000000         1.228545205
C           6.0     -0.030544037        00.000000000         1.383536205
H           1.0     -0.030544037        00.000000000         2.469883205
H           1.0     -0.030544037        00.000000000        -2.495468795
 $END

この入力ファイルに記載されている分子構造を可視化すると,以下のようなベンゼンをカーテシアン座標系で表現していることになります。

b.png

計算の実行

rungmsスクリプトを実行し,GAMESSによる一点計算を行います。このrungmsスクリプトはGAMESSのソースコードに同梱されているものですが,使いやすいように一部を変更しています。rungmsの1つ目のオプションは入力ファイル (今回の場合はc6h6.inp) の拡張子を除いたもの,2つ目のオプションは計算の並列度 (プロセス数) です。計算結果はc6h6.outというファイルに保存されます。

$ ./rungms  c6h6 8 > c6h6.out

計算結果の確認

計算結果には多数の情報が含まれていますが例えば,FINAL RHF ENERGY で検索すれば 8回の繰り返し計算の結果として,ベンゼンの全エネルギーは -230.7019921390 Hartree に収束したことがわかります。

$ grep 'FINAL RHF ENERGY' c6h6.out

FINAL RHF ENERGY IS     -230.7019921390 AFTER   8 ITERATIONS

ここではその他の計算結果の意味は説明しませんが, 出力に exited gracefully の文字列が含まれていれば,正しく計算が終了したことを意味します。参考文献1には出力ファイルの読み方も記載されておりますので,そちらを参照ください。

$ grep gracefully c6h6.out
 ddikick.x: exited gracefully.

おわりに

お疲れさまでした。あとはGAMESSに同梱のドキュメントやWeb上の記事を参考にしていただければ,目的とする分子と物性の計算を行うことができます。

参考文献

  1. 平尾公彦・監修 武次徹也・編著, 新版 すぐできる 量子化学計算ビギナーズマニュアル,講談社,2015.
  2. Gordon Group/GAMESS Homepage
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?