计算化学公社

标题: 高性价比热力学组合方法G4(MP2)-6X的计算方法 [打印本页]

作者
Author:
sobereva    时间: 2018-5-27 00:04
标题: 高性价比热力学组合方法G4(MP2)-6X的计算方法
高性价比热力学组合方法G4(MP2)-6X的计算方法
Cost-effective thermodynamics composite method G4(MP2)-6X

文/Sobereva @北京科音
First release: 2018-May-26  Last update: 2019-Jul-30

在2011年,J. Chem. Theory Comput., 7, 112-120中,几个非Gn系列方法的官方人员提出了G4(MP2)-6X热力学组合方法,号称耗时与G4(MP2)相仿佛,而精度很接近昂贵得多的G4。其相对于G4(MP2)最主要变化是把MP2换成了SCS-MP2,把CCSD(T)的CCSD和(T)部分的相关能乘了系数,把优化和振动分析的泛函从B3LYP改为BMK。此方法竟然一直到当下最新的G16 B.01里都仍然没有被加入,好在文章的补充材料里给出了基于Gaussian做此方法计算的Perl脚本,使用很简单,这里简单说一下用法。原作者给的脚本只能输出H(0)和H(T),没法输出指定温度下的自由能和内能,因此我对脚本进行了一些修改使之能够输出。

首先需要编辑模板.gjf文件,内容如下,也可以直接从这里下: (, 下载次数 Times of downloads: 93) 。需要将此文件中的坐标、电荷和自旋多重度改成自己分子的情况
%chk=mol.chk
# BMK/6-31+G(2df,p) Opt

A molecule G4(MP2)-6X calculation

0 1
C                  0.00000000    0.00000000   -0.56221066
H                  0.00000000   -0.92444767   -1.10110537
H                 -0.00000000    0.92444767   -1.10110537
O                  0.00000000    0.00000000    0.69618930

--Link1--
%chk=mol.chk
# Geom=AllCheck Guess=Read BMK/6-31+G(2df,p) Freq

--Link1--
%chk=mol.chk
# Geom=AllCheck Guess=Read CCSD(T,FrzG4)/GTBas1

--Link1--
%chk=mol.chk
# Geom=AllCheck Guess=Read MP2(FrzG4)/GTMP2LargeXP

--Link1--
%chk=mol.chk
# Geom=AllCheck Guess=Read HF/GFHFB3

--Link1--
%chk=mol.chk
# Geom=AllCheck Guess=Read HF/GFHFB4

用Gaussian运行此脚本,产生比如G4MP2_6x.out。G09和G16经测试都可以用。

下载此Perl脚本: (, 下载次数 Times of downloads: 81) 。把Gaussian输出文件文件和这个.pl文件都拷到Linux下,运行G4MP2_6x.pl G4MP2_6x.out,这个Perl脚本就会自动把相关数据从Gaussian输出文件中提取出来并进行处理,默认是在标况下算的。输出信息例子如下
   Temperature (K)   298.15
   Pressure (atm)     1
   NImag     0
   E_ele    -114.40450436
   H(0K)    -114.37806386
    H(T)    -114.37424742
    U(T)    -114.37519161
    G(T)    -114.39906286

Nimag就是虚频数目,E_ele就是电子能量,其它的都不言自明,单位是Hartree。

如果需要计算别的温度和大气压的情况,用文本编辑器打开.pl脚本,修改开头的$temp和$pres即可。

注:后来此方法的作者又提出了G4(MP2)-XK,把G4(MP2)-6X用的Pople基组改为了def2系列,使得此方法可以用于H~Rn的主族体系,对前四周期精度和G4(MP2)-6X相仿佛。在其原文DOI: 10.1021/acs.jctc.9b00449的补充材料里提供了相应的结合Gaussian使用的Perl脚本。



作者
Author:
wuzhiyi    时间: 2019-7-25 15:35
谢谢sob老师的分享 有一问题请教 我的小分子液相和气相优化结构有较大的差异 想问能否用热力学的方式来算?
我的想法是这样

%chk=mol.chk
# BMK/6-31+G(2df,p) Opt SCRF=SMD

A molecule G4(MP2)-6X calculation

0 1
C                  0.00000000    0.00000000   -0.56221066
H                  0.00000000   -0.92444767   -1.10110537
H                 -0.00000000    0.92444767   -1.10110537
O                  0.00000000    0.00000000    0.69618930

--Link1--
%chk=mol.chk
# Geom=AllCheck Guess=Read BMK/6-31+G(2df,p) Freq SCRF=SMD

--Link1--
%chk=mol.chk
# Geom=AllCheck Guess=Read CCSD(T,FrzG4)/GTBas1

--Link1--
%chk=mol.chk
# Geom=AllCheck Guess=Read MP2(FrzG4)/GTMP2LargeXP

--Link1--
%chk=mol.chk
# Geom=AllCheck Guess=Read HF/GFHFB3

--Link1--
%chk=mol.chk
# Geom=AllCheck Guess=Read HF/GFHFB4

--Link1--
%chk=mol.chk
# Geom=AllCheck Guess=Read M052X/6-31G*

--Link1--
%chk=mol.chk
# Geom=AllCheck Guess=Read M052X/6-31G* SCRF=SMD


最后加上溶解自由能
作者
Author:
sobereva    时间: 2019-7-25 21:18
wuzhiyi 发表于 2019-7-25 15:35
谢谢sob老师的分享 有一问题请教 我的小分子液相和气相优化结构有较大的差异 想问能否用热力学的方式来算? ...

不是“热力学的方式”而是“热力学组合方法的方式”

这么做从实际角度上可行,但原理上不十分严格,毕竟热力学组合方法里的参数是对于气相优化的情况拟合的
作者
Author:
wuzhiyi    时间: 2019-7-30 16:02
本帖最后由 wuzhiyi 于 2019-7-30 17:05 编辑

https://pubs.acs.org/doi/10.1021/acs.jctc.9b00449
这里好像有人提出了一个将G4(MP2)-6X拓展到第五行以内的所有的主族元素
作者说在有些测试集表现比原本的G4(MP2)-6X好
作者
Author:
wuzhiyi    时间: 2019-9-18 19:12
想请教社长一个比较细节的问题,对于HLC的计算,作者分成了三种情况考虑,闭壳,开壳,原子和单电子对。

在作者的perl脚本中,为了区分这几种情况,作者考虑了四个变量$na,$mult,$nh和$ex

$nh和$ex是根据$xyz[2]这个变量生产的

在gaussian输出中对应Atomic Type

在我的输出中永远是0.

我想问一下这Atomic Type到底是啥,我翻manual好像是onion的东西,但肯定这里做的是纯QM的,和onion无关。

作者
Author:
sobereva    时间: 2019-9-19 16:25
wuzhiyi 发表于 2019-9-18 19:12
想请教社长一个比较细节的问题,对于HLC的计算,作者分成了三种情况考虑,闭壳,开壳,原子和单电子对。

...

量化计算这个始终都是0,不用管(对于Bq原子是1000)

是ONIOM不是ONION
作者
Author:
wuzhiyi    时间: 2019-9-19 16:45
sobereva 发表于 2019-9-19 16:25
量化计算这个始终都是0,不用管(对于Bq原子是1000)

是ONIOM不是ONION

谢谢社长 我发现在perl中$xyz[2]对应的是第二个值不是第三个值
所以这应该对应原子序号
作者
Author:
zmm0418    时间: 2019-10-8 17:08
请问社长,想用这个方法计算单点能,不知道精度怎么样呀?
作者
Author:
sobereva    时间: 2019-10-9 08:37
zmm0418 发表于 2019-10-8 17:08
请问社长,想用这个方法计算单点能,不知道精度怎么样呀?

精度很理想
作者
Author:
1355447622    时间: 2020-5-13 09:26
本帖最后由 1355447622 于 2020-5-13 09:29 编辑

sobereva 老师您好,我想用这个方法计算一个单独硫原子的热力学数据,但是算完后我在Liunx里运行脚本时他没有数据,我算的其他分子倒是挺正常的,请问怎么办呢?

C:\Users\admin\Desktop\233[scu@localhost ~]$ cd wzk/[scu@localhost wzk]$ perl G4MP2_6x.pl S.out
Can't take log of 0 at G4MP2_6x.pl line 298, <LOG> line 1749.
S.out                                    [scu@localhost wzk]$


作者
Author:
linq5203    时间: 2020-5-13 22:27
本帖最后由 linq5203 于 2020-5-13 23:26 编辑
1355447622 发表于 2020-5-13 09:26
sobereva 老师您好,我想用这个方法计算一个单独硫原子的热力学数据,但是算完后我在Liunx里运行脚本时他没 ...

单原子连频率都没有,当然报错。详情可看Shermo手册或自行复习物化(不是阉割版的话)
作者
Author:
sobereva    时间: 2020-5-14 15:58
1355447622 发表于 2020-5-13 09:26
sobereva 老师您好,我想用这个方法计算一个单独硫原子的热力学数据,但是算完后我在Liunx里运行脚本时他没 ...

单个原子虽然能做振动分析(此时只有平动贡献),但没法优化,显然脚本调用Gaussian时会报错。你可以修改脚本,把优化的步骤去掉。
作者
Author:
一条君    时间: 2020-7-4 11:36
请问老师此方法如何在windows下输出能量呢?谢谢
作者
Author:
sobereva    时间: 2020-7-5 02:03
一条君 发表于 2020-7-4 11:36
请问老师此方法如何在windows下输出能量呢?谢谢

何必非要用windows,本来这种耗时高的任务就严重不适合windows版Gaussian
不想装实体linux就用虚拟机就完了
作者
Author:
Melvin    时间: 2022-5-25 11:47
sobereva 发表于 2020-5-14 15:58
单个原子虽然能做振动分析(此时只有平动贡献),但没法优化,显然脚本调用Gaussian时会报错。你可以修改 ...

sobereva老师请问这个“可以修改脚本,把优化的步骤去掉”这个怎么实现呢(比如用的CBS-QB3),是在gjf文件里加什么关键字就可以实现吗?
作者
Author:
sobereva    时间: 2022-5-26 05:44
Melvin 发表于 2022-5-25 11:47
sobereva老师请问这个“可以修改脚本,把优化的步骤去掉”这个怎么实现呢(比如用的CBS-QB3),是在gjf文 ...

自己把perl脚本内容看一遍就知道改哪

当前脚本是做G4(MP2)-6X的,跟CBS-QB3没关系。你若要用CBS-QB3而且不优化,在G16里写CBS-QB3=noopt就完了。

作者
Author:
Melvin    时间: 2022-5-26 14:18
本帖最后由 Melvin 于 2022-5-26 14:30 编辑
sobereva 发表于 2022-5-26 05:44
自己把perl脚本内容看一遍就知道改哪

当前脚本是做G4(MP2)-6X的,跟CBS-QB3没关系。你若要用CBS-QB3而 ...

受教了,感谢Sob老师,还有就是noopt只能G16实现吗,G09这个指令会报错,有别的方法实现吗
作者
Author:
sobereva    时间: 2022-5-27 03:14
Melvin 发表于 2022-5-26 14:18
受教了,感谢Sob老师,还有就是noopt只能G16实现吗,G09这个指令会报错,有别的方法实现吗


没有简单的办法
作者
Author:
Melvin    时间: 2022-5-27 14:19
sobereva 发表于 2022-5-27 03:14

没有简单的办法

谢谢Sob老师
作者
Author:
黑色桃花    时间: 2023-9-16 15:22
卢老师,感谢您之前的回帖,学生现在想对过渡态及初始及最终产物想进行单点能(算吉布斯自由能),但是涉及到离子(价态不为0,自旋多重度为1),那么这种情况怎么采用G4MP2-6X计算,或许说能用这种方法算吗,如果能,我该怎么改,请老师赐教,谢谢卢老师~~
作者
Author:
sobereva    时间: 2023-9-18 09:06
黑色桃花 发表于 2023-9-16 15:22
卢老师,感谢您之前的回帖,学生现在想对过渡态及初始及最终产物想进行单点能(算吉布斯自由能),但是涉及 ...

恰当设置净电荷,该怎么算还怎么算
作者
Author:
黑色桃花    时间: 2023-9-18 21:09
sobereva 发表于 2023-9-18 09:06
恰当设置净电荷,该怎么算还怎么算

好的,感谢卢老师
作者
Author:
黑色桃花    时间: 2023-9-18 21:19
sobereva 发表于 2023-9-18 09:06
恰当设置净电荷,该怎么算还怎么算

卢老师,学生再问一个“不恰当”的问题,这个方法在2023年算高级吗,或许说这个方法会不会被审稿人质疑方法落后,请您不吝赐教~谢谢卢老师
作者
Author:
sobereva    时间: 2023-9-18 23:50
黑色桃花 发表于 2023-9-18 21:19
卢老师,学生再问一个“不恰当”的问题,这个方法在2023年算高级吗,或许说这个方法会不会被审稿人质疑方 ...

不落后。除非将来理论方法有什么显著突破,否则在未来10年内都妥妥属于高精度范畴。
作者
Author:
黑色桃花    时间: 2023-9-24 15:37
老师,我想请问一下,采用G4MP2-6X该怎么像shermo一样读取它的热校正值呢,有办法吗
作者
Author:
sobereva    时间: 2023-9-25 01:56
黑色桃花 发表于 2023-9-24 15:37
老师,我想请问一下,采用G4MP2-6X该怎么像shermo一样读取它的热校正值呢,有办法吗

读懂了脚本自然清楚哪些变量是干什么的,输出出来就完了
作者
Author:
黑色桃花    时间: 2023-9-25 13:48
sobereva 发表于 2023-9-25 01:56
读懂了脚本自然清楚哪些变量是干什么的,输出出来就完了

哈哈,好的,谢谢卢老师
作者
Author:
黑色桃花    时间: 2023-9-28 13:07
老师,如果算的这个体系是离子体系(0,1),上述的基组都包含弥散函数吗,可以用吗
作者
Author:
sobereva    时间: 2023-9-28 16:55
黑色桃花 发表于 2023-9-28 13:07
老师,如果算的这个体系是离子体系(0,1),上述的基组都包含弥散函数吗,可以用吗

说清楚什么叫上述
作者
Author:
黑色桃花    时间: 2023-9-29 16:31
sobereva 发表于 2023-9-28 16:55
说清楚什么叫上述

好的老师,我就是看了G4MP2-6X热力学组合方法输入文件中含有很多的方法基组,那么这些基组对于需要考虑弥散函数的离子体系(电荷0,自旋多重度1),还适用嘛,换句话说就是输入文件的那些基组考虑弥散函数了嘛,谢谢老师的回复
作者
Author:
sobereva    时间: 2023-9-30 05:47
黑色桃花 发表于 2023-9-29 16:31
好的老师,我就是看了G4MP2-6X热力学组合方法输入文件中含有很多的方法基组,那么这些基组对于需要考虑弥 ...

电荷为0明明不是离子体系

涉及到什么基组自行看方法原文便知

作者
Author:
sobereva    时间: 2023-9-30 14:47
Melvin 发表于 2022-5-25 11:47
sobereva老师请问这个“可以修改脚本,把优化的步骤去掉”这个怎么实现呢(比如用的CBS-QB3),是在gjf文 ...

先把方法原文看一遍,搞清楚原理,再把这perl脚本从头到尾读一遍,不懂perl语法就随手google查一下,撑死了2个小时也能搞明白脚本是怎么运作的了,自然也就知道怎么改。
作者
Author:
林小浪    时间: 2023-9-30 14:48
sob老师您好,我想请教您一个问题。我最近在用G4MP2-XK方法计算CH4分子的H的时候,计算出的H数值总是不正确。
下图是我在G4MP2-XK方法原文J. Chem. Theory Comput. 2019, 15, 8, 4478–4484中下载的计算输入文件,根据自己的计算情况进行了修改,将原文自带的基组传到g09/basis目录下,计算了一个CH4分子。
(, 下载次数 Times of downloads: 19)
使用将该方法自带的perl文件,对计算生成的log文件进行计算,得到的H(298k)如下。得到H(298K)为0.04730458,这个数值显然是有问题的。
(, 下载次数 Times of downloads: 21)
之前使用G4MP2-6X计算的甲烷分子的H(298K)为 -40.42744909,这个数值是比较合理的。由于我使用的g09.d01版本在处理大一点的体系(比如TNT)时,会有l906报错,看了您的帖子,只有更换g09.e01以上版本能解决这个问题,所以想用G4MP2-XK代替G4MP2-6X。现在遇到这个问题,还希望sob老师能指点一二。
(, 下载次数 Times of downloads: 19)
作者
Author:
sobereva    时间: 2023-9-30 14:50
林小浪 发表于 2023-9-30 14:48
sob老师您好,我想请教您一个问题。我最近在用G4MP2-XK方法计算CH4分子的H的时候,计算出的H数值总是不正确 ...

建议发邮件联系脚本的作者
作者
Author:
林小浪    时间: 2023-9-30 14:57
sobereva 发表于 2023-9-30 14:50
建议发邮件联系脚本的作者

好的,谢谢sob老师,节日快乐
作者
Author:
黑色桃花    时间: 2023-9-30 16:27
sobereva 发表于 2023-9-30 05:47
电荷为0明明不是离子体系

涉及到什么基组自行看方法原文便知

好的,感谢老师的回复,老师您人真的太好了(我问了太多问题,您都不厌其烦地回复),真心谢谢您~
作者
Author:
tangdu    时间: 2024-11-12 21:55
林小浪 发表于 2023-9-30 14:48
sob老师您好,我想请教您一个问题。我最近在用G4MP2-XK方法计算CH4分子的H的时候,计算出的H数值总是不正确 ...

您好,请问输出能量的指令是什么?我怎么也输出不出来




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