计算化学公社

标题: G4MP2_XK脚本在win10下gjf运行成功,但perl脚本是针对的linux下的,需要对log文件修改 [打印本页]

作者
Author:
fastspeaker    时间: 2023-1-2 09:30
标题: G4MP2_XK脚本在win10下gjf运行成功,但perl脚本是针对的linux下的,需要对log文件修改
本帖最后由 fastspeaker 于 2023-1-2 09:39 编辑

一直想计算下SbCL5的能量,查了下文献有说G4MP2_XK非常适合。于是下载了G4(MP2)-XK: A Variant of the G4(MP2)-6X Composite Method with
Expanded Applicability for Main-Group Elements up to Radon文献以及对应的脚本。然后在电脑上安装了Strawberry perl。由于脚本中针对linux的,我的windows中没有home文件夹,将自定义基组的路径由"@/home/el_buno/g4mp2xk_basis/maSVXP.gbs"改成了“@D:\G16W\g4mp2xk_basis/maSVXP.gbs”,并将相应gbs文件拷贝到该目录,将CHK文件目录也相应改了,提交gjf运行成功显示“Normal termination of Gaussian 16”,perl脚本执行得得到的结果为
File                                     NImag           eE               H0             H298
HI_G4MP2XK.LOG                             0        -0.57271021      -0.56743453      -0.56412973
觉得这个能量有点不正常。于是从社长的链接里下载了G4MP2_6x.gjf和G4MP2_6x.pl,将运行了。结果正常
C:\gaussian\G4MP2XK\script>G4MP2_6x.pl G4MP2_6X.LOG
G4MP2_6X.LOG
   Temperature (K)   298.15
   NImag     0
   E_ele    -114.40449865
   H(0K)    -114.37809561
H(298K)    -114.37427924
U(298K)    -114.37522343
G(298K)    -114.39909483
然后我就觉得gjf执行以及perl都没有问题。由于G4(MP2)-XK的脚本文件中带了gjf的运行结果log文件,我把这个log文件,用脚本执行了下,发现结果是正常的,如下
File                                     NImag           eE               H0             H298
HI_G4MP2XK.log                             0      -297.81711347    -297.81183778    -297.80853299
于是我仔细对比了两个log文件的每一步的计算结果,发现每一步结果的能量都是一样的如下:
第一步 BMK/GenECP Opt Freq  HF=-297.2900888 一致
第二步 Geom=AllCheck Guess=Read CCSD(T,FrzG4)/GenECP CCSD(T)=-297.4092556 一致
第三步 Geom=AllCheck Guess=Read MP2(FrzG4)/GenECP MP2=-297.7898008 一致
第四步 Geom=AllCheck Guess=Read HF/GenECP(基组maTZVP.gbs) HF=-297.2420448 一致
第五步 Geom=AllCheck Guess=Read HF/GenECP(基组maQZVP.gbs)HF=-297.2439412 一致。
我运行的是 Gaussian 16:  EM64W-G16RevA.03(win10);例子中的是Gaussian 16:  ES64L-G16RevB.01。我的log文件只有138K,则例子中log文件有382K,且里面输出了自定义基组的参数。
为了验证这个想法,于是我将例子log文件中的基组相关文字全部删除,并用脚本执行下,发现结果也不对了。确定就是这个原因;继续努力,我将我运行的log文件中从第一步开始,逐个拷贝例子log文件中的基组定义,当拷贝到第4个文件后,运行脚本时,能量数值有变化,如下
File                                     NImag           eE               H0             H298
HI_G4MP2XK-add1-4.LOG                      0        71.85736174      71.86263743      71.86594223
拷贝完全时,运行脚本,能量数值正常,如下
File                                     NImag           eE               H0             H298
HI_G4MP2XK-add1-5.LOG                      0      -297.81711347    -297.81183778    -297.80853299

然后我又用记事本打开脚本仔细看了下,发现有以下代码影响第4-5步
### Determine external type of basis sets ###
                elsif ((/AtFile/) && (/maTZVP/)) {
                        $hfbs = 3;
                }
                elsif ((/AtFile/) && (/maQZVP/)) {
                        $hfbs = 4;
                }
这是由于gauss的输出log文件,第4步和第5步,均为Geom=AllCheck Guess=Read HF/GenECP,无法区分,linux下输了基组文件可以通过atFile和maTZVP的关键字来识别第4 段,atFile和maQZVP来识别第5段。这样就清楚了,我们只需要在log文件第4步开始拷入字符 atFile maTZVP,第五步开始拷入字符 atFile maQZVP,结果应该就OK了。试了下ctrl+end定位到文件末端,向上搜索Normal termination,在第2个拷入atFile maQZVP,第3个拷入atFile maTZVP。如下

结果很理想。就不啰嗦了。最后附上我的gjf,log文件以及修改后的log文件以便新手学习使用
这可能不是最好的办法,可是我翻了G16说明书,查遍了基组的关键词也没有找到能输出自定义基础的方法。可能是水平不够,如果有更好的办法,一起交流,谢谢







欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3