GAMESSの概要
GAMESS(US)は、Iowa州立大のGordon,Moscow州立大のGranovsky,大阪府立大の小関先生らによって開発及び配布が行われている、無償提供の非経験的分子軌道法/密度汎関数理論計算プログラムです。無償で提供されているにも関わらず、詳細なマニュアルが配布され、またありとあらゆる OS,プラットフォームへ移植されています(Windows,Mac,Unix,Linux,DOS,OS/2,Solaris...)。
GAMESS(US)は、Iowa州立大のGordon,Moscow州立大のGranovsky,大阪府立大の小関先生らによって開発及び配布が行われている、無償提供の非経験的分子軌道法/密度汎関数理論計算プログラムです。無償で提供されているにも関わらず、詳細なマニュアルが配布され、またありとあらゆる OS,プラットフォームへ移植されています(Windows,Mac,Unix,Linux,DOS,OS/2,Solaris...)。
GAMESSの入力ファイルは、その内容の全てが「$XXXXX~$END」というブロック(グループという)に分けて記述されています。各グループ内に「keyword=property」の形で具体的な計算指示が格納されます。プロパティの多くにはデフォルト値が設定されていて入力が不要なケースも多いですが、ユーザー側で正確に指定する必要のある項目も多数存在します。
GAMESSのキーワードはMOPAC以上に膨大な数に上り、とても全てを紹介することはできません (当然筆者は全てのキーワードを知っているわけではありません)。ここでは、当サイトで使用頻度の高いキーワードに絞り、その意味と利用方法を説明していきたいと思います。
GAMESSには、基本的な基底関数はプログラムに含まれていて、特定のキーワードを使って呼び出して使います。$BASISグループが、基底関数に関する指定を行うセクションになります。既に「キーワードの説明」で、よく使うものについて説明していますが、ここではさらに詳しい入力について説明を加えます。
PC GAMESSはWindows環境でも簡単に並列化することができます。最近はデュアルコアCPU(人によってはクアッドコアも?)を利用している方も多いと思いますので、SMP環境に適応した簡単な並列化の方法をお示しします。
非常に大きな分子を計算するとき、その計算時間を削減する方法としてQM/MM法が現在有力な方法の一つとなっています。大きな分子においては全ての原子が重要ではなく、多くの原子は立体的な影響のみで、電子状態が重要な寄与を果たすのは一部であるという考え方は、直感的に受け入れやすいものです。そういう場合、分子を「精密に計算する部分:高精度ab initio法やDFT」と「粗く計算する部分:低精度ab initio法や半経験法,分子力学」という風に区分して計算できれば、計算資源の節約につながります。
GaussianではONIOM法が実装されており、分子を最大3つのレイヤーに切り分け、各層に別々のモデル化学(非経験的分子軌道法および密度汎関数理論,半経験的分子軌道法,分子力学)を割り当てることができます。
一方、GAMESSではONIOM法の基となったIMOMM/SIMOMM法が実装されています。これは、分子を2つのレイヤーに切り分け、一方に量子力学計算を、もう一方に分子力学計算を割り当てます。分子力学のエンジンとしてはTINKERが使われています。ここでは、IMOMM法を使ったQM/MM計算の簡単な例を紹介します。
分子間の相互作用は、計算化学が扱う主要な問題の一つです。単純に考えると、例えばAという分子とBという分子が相互作用してABという錯体を形成する場合、A,Bが単独で存在したときのエネルギーと錯体ABのエネルギーを比較して、その相互作用がどれぐらい強いかを議論するということになります。しかし、ここには思いがけない落とし穴が存在します。それが本稿で紹介するBSSE(Basis Set Superposition Error:基底関数重なり誤差)です。以下、GAMESSでのBSSEの計算方法とモデル化学による差について見てみたいと思います。
量子化学計算により出力されるデータの中で、必ずと言っていいほど利用されるのがエネルギー値です。その値と出力パターンは計算の方法(プログラム・計算目的・モデル化学)の違いで変わってきます。
ここでは、GAMESS(WinGAMESS/PC GAMESS)の出力ファイルのどこにエネルギーが記載され、その値はどのように処理すべきかについて、ごく簡単に述べたいと思います。
PC GAMESSの並列化については以前に書きましたが、ここではWinGAMESSの簡潔な並列化について紹介します。PC GAMESSとWinGAMESSはどちらも「GAMESS」とつきますが、その中身はかなり違っていて、例えばPC GAMESSではMP3/4計算やRSURFACE計算,Cube出力の実装,そして何より計算が高速なのが特長で、WinGAMESSではCCやNEO,EFP/PCM,NMR,TinkerによるQM/MM,UMP2 GradientなどPC GAMESSより幅広い計算が可能になっています。
分子には基底状態と励起状態があります。多くの有機反応は基底状態で起こりますが、光照射下では励起状態からも反応が起こります。また、紫外・可視スペクトルは共役系の状態を知るために有用な情報を与えますが、これは電子の励起エネルギーを観測していることに他なりません。当然、物質の色もこの電子励起に伴う光吸収に起因しています。
励起状態は、分子軌道計算でもちろん扱うことができます。ですが、励起状態は基底状態と異なり無数にあるので、その取り扱いは時に非常に難しくなります。ここでは、最もよく励起状態が調べられている分子の一つ・ホルムアルデヒドを例に、励起エネルギーの計算と励起状態の構造最適化について概観します。
高校の化学で習う有機化合物の分類に「芳香族化合物」があります。由来を知らないと何か変なネーミングですが、変なのはそれだけではなく、むしろその化学的性質です。不飽和結合(=π結合)を有するにも関わらず付加反応を受けにくく、むしろ置換反応を起こす。普通の不飽和化合物としての予測よりも燃焼熱が小さい。ベンゼンやシクロペンタジエニルアニオンのC-C結合が全て同じ長さ。こういった芳香族化合物に特徴的な性質を「芳香族性」といいます。
計算化学によって芳香族性を調べることができますが、ここでは
・芳香族性による安定化を実験的に見積もる方法である水素化熱の比較
・異性化反応モデルによる芳香族性の見積もり
・磁気的性質によって芳香族性・反芳香族性を調べる
の3つについて計算例をお示しします。
GAMESSを使ってNMRの化学シフトを計算することができますが(記事)、この計算にはかなりの時間とメモリ量を要し、量子化学計算で算出する利点の数々もこのリソース消費との比較で霞んでしまうことがあります。
商用プログラムでは化学シフトの高速計算を実現しているものもありますが、無償で利用可能なプログラムの中にも高速で計算できるものがあります。
ORCA(http://www.thch.uni-bonn.de/tc/orca/)は、ドイツ・ボン大学のFrank Neeseらによって開発・メンテナンスが行われているプログラムですが、このプログラムにはIGLO法によるNMR遮蔽定数計算が実装されています(しかもLinux版では並列化されています)。ORCAのIGLO法によるNMR計算では、GAMESSのGIAO法による計算に比べて圧倒的に計算時間が短く、しかもメモリ消費量も格段に少なくなっています。ppm換算で小数点以下1桁までしか出力されないため、1H-NMRの計算には不向きですが、13C-NMRの計算には十分活用可能です。
果たしてその精度はどれくらいなのか、実際にいくつかの有機分子で計算を行ってみました。
量子化学計算を行う際、当然系が大きくなるとそれだけ計算時間がかかるわけですが、系が倍になれば計算時間も倍かというと、そうはいきません。系のサイズN(通常基底関数の数や単位構造の数をとります)に対して、理論上の計算時間はHFは4乗、MP2は5乗、CCSD(T)は7乗に比例し(これをスケーリングといいます)、計算対象が大きくなると急激に計算時間が延びることが容易に理解できます。
このスケーリングを小さくし、系のサイズの1乗に比例する=リニアスケーリングに到達することが現代計算化学の目標とされているわけですが、そう簡単には到達しません。今使えるプログラムの各種理論モデルはどれくらいのスケーリングなのか、GAMESS(US)・PC GAMESS/Firefly・ORCA(とおまけでPRIRODA)の比較をしてみました。
(C) 2002-2006 s2k (W. Sasaki) All Rights Reserved.