GAMESSのEFP読み込みは変?
EFP(Effective Fragment Potential)は溶媒効果をより短時間で効果的に見積もる良い方法です。GAMESSでは任意の分子についてEFPを生成することができ(RUNTYP=MAKEFP@$CONTRL)、これを使ったエネルギー計算ができる…はずです。
が、しかし。なぜかうまくいかない。
例えば、メタノールのEFPを作成し、それを使ったエネルギー計算を考えます。
$CONTRL SCFTYP=RHF RUNTYP=ENERGY COORD=UNIQUE
MAXIT=200 NZVAR=0 ICHARG=0 $END
$SYSTEM TIMLIM=600 MWORDS=1 $END
$STATPT NSTEP=100 OPTTOL=0.0001 $END
$BASIS NGAUSS=6 GBASIS=N31 NDFUNC=1 $END
$SCF DIRSCF=.T. DAMP=.T. $END
$GUESS GUESS=HUCKEL $END
$DATA
H2O+MeOH(EFP)
C1
O 8.0 1.992917 0.010734 -0.295215
H 1.0 2.292830 0.023732 -1.353462
H 1.0 2.574928 0.767442 0.251279
$END
$EFRAG
COORD=CART
FRAGNAME=MEOHEF
H1 0.041076 0.427531 -0.166429
O2 -0.892956 0.548707 -0.075101
C3 -1.464756 -0.615528 0.450662
H4 -2.527379 -0.437428 0.539296
H5 -1.313812 -1.473785 -0.199802
H6 -1.073131 -0.852832 1.437022
$END
$MEOHEF
MeOH EFP generated by RHF/6-31G(d)
COORDINATES
H1 1.9716525440 1.5312061941 0.0001682062 1.0078250 1.0
O2 1.2848181609 -0.1198317028 -0.0000142593 15.9949100 8.0
C3 -1.3560443279 0.0248832368 0.0000040521 12.0000000 6.0
H4 -2.0652865003 -1.8910037154 -0.0002077587 1.0078250 1.0
H5 -2.0755705732 0.9823990420 1.6697934737 1.0078250 1.0
H6 -2.0755987998 0.9829336270 -1.6695758633 1.0078250 1.0
BO21 1.6282353525 0.7056872457 0.0000769735
BO32 -0.0356130835 -0.0474742330 -0.0000051036
BO43 -1.7106654141 -0.9330602393 -0.0001018533
BO53 -1.7158074506 0.5036411394 0.8348987629
BO63 -1.7158215638 0.5039084319 -0.8347859056
STOP
MONOPOLES
H1 -0.3629493980 1.00000
O2 -8.4102454288 8.00000
…
(中略)
…
$END
これは、PC GAMESS 7.0で予めRHF/6-31G(d)で最適化したメタノールからEFPを計算し、水分子にくっつけて計算を行おうとしたものです。私の目には、何も怪しいところは無いように思うのですが、計算を始めてみると、PC GAMESSでもWinGAMESS 06でも、必ず
READING $EFRAG GROUP
COORD=CART POSITION=OPTIMIZE POLMETHD=FRGSCF
READING COORDINATES OF FRAGMENT 1 NAMED MEOHEF
ERROR...READING FRAGMENT 2
EXPECTED KEYWORD "FRAGNAME", FOUND "H4 ".
となって止まります。なぜか$EFRAGの分子データは3行読んだところで終わりと判断し、4行目からは次のEFPだと考えているようです。これはEFRAGの入力形式をCARTからINTに変えても、EFPの原子ラベルを変更しても、原子の並び順を変更しても解決しません。
これってどういうことでしょう?
===おまけ==========
Winmostar用に、H2OEF2に適合した置換基データを作成しました。
forH2OEF2.zip(1KB)
2種類入っていて、Hの方で相互作用するパターン(-HOH(EF2).wmy)とOの方で相互作用するパターン(-OH2(EF2).wmy)となっています。PC GAMESSでは内蔵されているEFPの構造パラメータと、入力されたEFPの構造パラメータがずれているとエラーが発生するようなので、これを使えばそれを回避できます。
コメント
EFPのデータを作成する方法については昨年Granovsky先生からメールで教えて
もらいました。完全に理解したとの自信はないのですが、下記の方法で「まと
もに見える結果」を得ております。この方法でやってみてください。
FRAGNAME=MEOHEFのブロックはEFPの局所座標系を指定するところです。
本体部の座標系における(x0、y0、z0)を原点とし、該EFP系のX,Y,Z軸
の向きを本体部のそれらと同じにするならば(普通そうしますね)、次
のように書きます。
FRAGNAME=MEOHEF
X1 x0+1.0 y0 z0
Y1 x0 y0+1 z0
Z1 x0 y0 z0+1
ここの”+1”というのは単位ベクトルのことです。今の例では本体系と
EFP系との原点は同一のようですから、x0,y0,z0はゼロですね。
FRAGNAME=MEOHEF
X1 1.0 0.0 0.0
Y1 0.0 1.0 0.0
Z1 0.0 0.0 1.0
$END
つまりFRAGNAME=MEOHEFの行は3行しかありません。
次の$MEOHEFのブロックですが、COORDINATES文の直後にはEFP系を指定する
単位ベクトルをa.u.単位で書きます。
$MEOHEF
MeOH EFP generated by RHF/6-31G(d)
COORDINATES
X1 1.88972599 0 0 1.0078250 1.0
Y1 0 1.88972599 0 15.9949100 8.0
Z1 0 0 1.88972599 12.0000000 6.0
1.88972599というのは1Aを原子単位で表した数値で、aH=0.529177249 の逆数です。
この後にH1,O2,C3...の座標を書きますが、これは上記x0,y0,z0に対する相対座標
値をa.u.で表した数値になります。つまりX1,Y1,Z1の後からやっと本番のデータ
になります。
投稿者: IRON28 | 2006年11月24日 22:25
IRON28さん、貴重な情報ありがとうございます。この方法だと、複数のMeOHを貼り付けるときに、MeOHの数だけ座標系の異なる$FRAGNAMEグループが必要になりそうな気がしたので、しばらく考えていたのですが…$EFRAGでは、$FRAGNAME内での原点と単位ベクトルを本体系のどこに定義するかを書くというのが本義でしょう。それを考えたときに、最終的な解決策がわかりました。それについては新しく記事にしますので、そちらを参照ください。
ありがとうございました。
投稿者: s2k | 2006年11月25日 05:14
S2Kさん
お役に立ててよかったです。ところで若干補足致します。私はEFP計算はもっ
ぱら構造化学的な目的でやっています。たとえば、尿素結晶のように極性分子
の結晶中の一個の分子の構造最適化というように。この場合、対象分子の他の
複数個の分子は仮に多重極モーメント化したとします。それらの位置は各分子
の重心でよいのですが、計算中は固定させておかねばなりません(実測結晶構
造使用の前提では)。その場合、$EFRAG行直下のCOORDのところは次のように書
きます。
COORD=CART POSITION=FIXED
また当然、EFP局所系の単位ベクトルの指定も結晶内原子配列との配置関係を
表現したものにしないといけないので、既に書きました、以下のような指定が
便利になるわけです(1種のダミー原子テクニック?)。
X1 x0+1.0 y0 z0
Y1 x0 y0+1.0 z0
Z1 x0 y0 z0+1.0
なお、「この方法だと、複数のMeOHを貼り付けるときに、MeOHの数だけ座標系の
異なる$FRAGNAMEグループが必要になりそうな気がしたので」のことですが、
私はよく複数の$FRAGNAMEグループを設定します。FRG1,FRG2,...というように。
結晶内の分子団あるいは原子団は近いものどおしを1グループに扱うと便利な場
合が多いので。しかし、$FRAGNAMEグループの数は5個までになっています(偶然
発見しました。確かマニュアルには書いてない)。つまり、FRG5までです。これ
だとEFP扱いにする分子・原子が多いと不自然なグループを作らざるを得ないこ
とがありますね(まあ、計算自体には支障ないですが)。。
投稿者: IRON28 | 2006年11月25日 10:40
補足ありがとうございます。
なるほど、私は溶媒和された有機分子や有機金属錯体を取り扱うことが多いので、ちょっと目的が異なるのですね。どちらも基本は同じですが、溶液という自由度の高い場か、結晶という自由度の比較的低い場か。
$FRAGNAMEが5つまでというのは初耳です。これも貴重な情報ですね。
あとは、早くEFP-2でOPTIMIZATIONをサポートしてくれることを祈ります…(PC GAMESSではコード自体はあるようで、計算は走りますが、途中でno messageでこけます。本家GAMESSはサポート外というメッセージが出て止まります)
投稿者: s2k | 2006年11月25日 13:53