通常、構造最適化は最低エネルギー構造を見つけるために全ての変数(結合長や結合角)を最適化します。一方、変数の違いによってエネルギーがどのように変化するかを確認したい場合は、部分的な最適化を行うことがあります。
pao00
部分構造最適化は案外役に立つテクニックなので覚えておいて損はないと思います。
今回は、GAMESSで部分構造最適化計算を行う方法について紹介します。

構造最適化する部分を指定しよう

ここではクロロエタンのC-Cl結合長は最適化せず、他の部分のみを最適化する方法を例に計算してみましょう。
MoCalc2012を使用すると、インプットファイルの作成が簡単なので是非使ってみてください。
MacユーザーなどMoCalc2012が使えない方は、次の項に進んで入力ファイルの見方を参照してみてください。

1) まずは、クロロエタンのMOLファイル(.mol)ファイルを準備します(MolViewなどで作成すればOKです)。
ここではFirefly(PC GAMESS)を使いますが、GAMESS(US)でも方法は同じです。
pao01
MoCalc2012のFirefly用の設定画面でMOLファイルを読みこませたら、ツールバーのStart >Build/Edit Z-Matrixをクリックします。

2) 新しいウインドウには、MOPACの内部座標形式(ZMTMPC)に関する設定画面が表示されます。MOPACの内部座標形式の見方がわからない方は、「MOPACを実行してみよう」の記事を参照してください。ここでは、C-Cl結合の距離を固定するのでOptのボタンを"F"に変更します(赤枠)。
pao02
最適化フラグは「F」(fixed=固定(0))、「O」(optimize=最適化(1))、「S」(Scan=反応座標(-1))の意味です。右下のOKボタンをクリックすると「ファイル名.zmt」というファイルが作成されます。

3) 後は、設定画面で計算方法を指定するだけです。今回は、デフォルトのままHF/3-21Gの構造最適化計算で入力ファイルを作成してみましょう。ツールバーのStart >Build/Create Input FileをクリックしてInputファイルを保存します。
pao04

Inputファイルの内容を確認しよう

ここでは、MOPACの内部座標形式を使用しているので$CONTRLグループで「COORD=ZMTMPC」と指定します。新しく出てきたキーワードは$STATPTグループのIFREEZ(1)だけです。後は、これまで紹介してきたキーワードなので過去の記事を参照してください。
pao03
ここで指定しているIFREEZ(1)=Nは、「N番目の変数を固定する」というフラグです。指定する数は丸で囲った数字のように変数を上から数えます。ここではC-Clの結合距離なので2番めですね。複数ある場合は、「IFREEZ(1)=2,4」のようにコンマで区切ります。

内部座標中の最適化フラグは、「1」で指定した内部座標の値を最適化する、「0」で指定した内部座標の値を最適化しない(固定する)、「-1」で反応座標に指定することを意味します。つまりMoCalc2012を使った場合、Optのボタンを"F"に変更した部分が"0"になっているという訳です。最適化フラグの値が「0」の原子とIFREEZ(1)=で指定した原子が一致している必要があるので注意しましょう。

例えば、メチル基以外を最適化したい場合は以下のようにインプットファイルを作成します。原子に付与されている番号がわからない場合は、モデリングソフトで表示させながら確認すると良いでしょう。
pao05
MoCalc2012が使えない環境の場合、MOPACの内部座標形式はOpen BabelもしくはAvogadroWebMOで作成したものを利用すると良いでしょう。
Open Babelの使い方はこちらの記事を参照してください。
oba06
Avogadroの場合、ツールバーのExtensions >MOPACのInputビルダーから取得できます。
pao06
WebMOの場合は、GAMESSのJob Option画面のPreviewタブから取得できます。詳しい使い方は、こちらの記事を参照してください。
pao07

計算を実行してみよう

後は、計算を実行するだけです。キーワードは共通なので、Firefly(PC GAMESS)でもGAMESS(US)どちらで実行してもOKです。計算結果はMaSKで可視化しています。クロロエタンのC-Cl結合長は1.7823Åのままで、その他の部分は最適化されたことが確認できると思います。
pao08
また計算の都合上、最適化過程で重心を原点に取り直す必要があるため、固定したはずの結合距離や結合角度は 10^-6 (計算誤差)程度は動く場合があることを覚えておきましょう。

他の座標系で部分最適化はできないの?

通常の内部座標(COORD=ZMT)を使用することもできます。その場合、座標中にフラグはないのでIFREEZ(1)=(固定する変数の番号)のみでOKです。
GAMESSのデフォルトであるCartesian座標系でも行えますが、その場合は当然X、Y、Z座標のいずれかを固定する事になります。IFREEZ(1)=の値はどちらも、変数を上から数えた数字を使用します。また、非局所化座標(DLC)を使用する場合は、代わりに$ZMATグループのIFZMATキーワードを使用する必要があります。

特に理由がなければ、作成の容易さと入力ファイルの見やすさから、MOPACの内部座標形式(COORD=ZMTMPC)をおすすめします。

おわりに

今回は、通常の構造最適化に対し、部分最適化は指定した変数だけを最適化すること、またGAMESSで部分最適化をする際の入力ファイルの作成方法などについて述べました。
遷移状態探索で置換基法を用いいる際に、新しく置き換えた置換基が振動してしまう場合などは、その部分だけを一度構造最適化してから再度遷移状態計算するとうまくいくことがあります。その際は、是非この方法を試してみてください。

また、今回は紹介できませんでしたが結合長や結合角を順次指定した値に変化させながら、そのエネルギー変化量を計算する際にもこの方法が応用できます。つまり、分子の回転障壁や遷移状態探索のためのミニマムエネルギーパス計算などに利用できます。これらキーワード「IFREEZ」の応用計算については今後紹介していきます。

この記事で使用した計算ファイルを以下に置いておきます。
http://pc-chem-basics.blog.jp/ChloroEthane(C-ClFix).out

※) 当ブログの連載が書籍になりました!!興味がある方は、お手に取っていただければ幸いです!!
(Amazon購入ページ)(書籍の紹介記事
ICam2
【関連記事】
構造最適化について知ろう
SCF計算と構造最適化計算の違いって何?
GAMESSの入力ファイルに追加・変更したいキーワード8選
GAMESSでミニマムエネルギーパス計算をしてみよう
エタンの回転障壁を計算してみよう