计算化学公社

标题: 用MRCC软件对一些耦合簇方法的测试 [打印本页]

作者
Author:
Accelerator    时间: 2017-7-22 09:08
标题: 用MRCC软件对一些耦合簇方法的测试
MRCC是由匈牙利布达佩斯大学开发的主攻高精度量化计算的软件包,其亮点在于可用于任意阶耦合簇(包括其各种微扰近似)和组态相互作用,并有对应的解析梯度。

笔者将对该软件的耦合簇功能进行试用。限于笔者的电脑的计算力(Xeon E5 2696V3),CC只算到三阶;引入微扰近似后只算到四阶,即最高计算水平为CCSDT(Q).
使用水分子和羟基负离子用于测试,结构在M06-2X/def2-TZVP下优化得到。
MRCC程序的输入文件和操作流程都比较独特。输入文件在提交计算时必须改名成MINP(必须大写)才可计算,对应的命令为dmrcc > xxx (xxx为输出文件的名称)
输入文件格式如下图:
(, 下载次数 Times of downloads: 109)
CC(3)(4)对应CCSDT(Q)。这样计算同时会输出CCSDT[Q]的结果。
虽然官方手册上写并行计算需要使用MPI并有一些特殊操作,但亲测提交任务后自动并行占满全部CPU.
用aug-cc-pVTZ基组,测试了水分子和羟基负离子在HF, CCS(D), CCSD, CCSD(T), CCSD[T], CCSDT, CCSDT(Q), CCSDT[Q]下的能量(CCSDTQ或更高阶的耗时已经不可接受)。
输出文件是这个画风:
(, 下载次数 Times of downloads: 115)
然后是相关能,以CCSDT(Q)结果作为标准:
(, 下载次数 Times of downloads: 102)
低于三阶的耦合簇误差都相当大,而CCSD(T)的结果和CCSDT相当甚至更好。进一步加到四阶后并没有显著改进。
同时还把MRCC的CCSD(T)结果与Gaussian相同条件下的结果进行了对比,几乎相同(区别在于输出值的最后两位)。
(, 下载次数 Times of downloads: 106)
这是MRCC程序实现的不同方法的CPU时间比较。可以看到引入第n阶的微扰近似后耗时与无近似的(n-1)阶CC相同,而精度几乎没有损失。
同时还检查了羟基负离子结合质子生成水的气相反应能(只考虑电子能量),仍然以CCSDT(Q)结果为基准:
(, 下载次数 Times of downloads: 85)
其中DFT方法用Gaussian实现。M06-2X在相同基组下表现相当好。由于这个反应涉及阴离子,因此M06-2X/def2-TZVP表现不太好也是可以理解的;尽管如此,误差这么大甚至差于HF还是令人意外。
同时还做了一个测试,把构型优化水平改到B3LYP/6-31G*,以刚才M06-2X/def2-TZVP构型得到的CCSDT(Q)反应热为标准,观察各种CC和DFT水平算出的结果的误差。
(, 下载次数 Times of downloads: 83)
CCSD(T)和CCSDT(Q)的结果和之前几乎相同,而之前表现较好的M06-2X/aug-cc-pVTZ的误差则大得惊人。令人惊讶的是此时采用较小的基组的DFT水平(如B3LYP/6-311+G**)反而误差较小。这从一定程度上说明对于低水平的构型优化,单点能计算可能未必水平越高越好,而是存在微妙的误差抵消现象。
最后比较一下MRCC和Gaussian的运行效率。全部采用36核心(18物理+18超线程)时,水分子的CCSD(T)单点,MRCC总CPU时间高达28.7min, 而Gaussian仅仅3min左右。说明MRCC程序其实在性能上并没有任何优势。
最后,由于本文中只测试了一个体系,因此对诸多方法精度等的测试很难说有普遍意义,需要谨慎采信。

ps 本文最早发在微信公众号“清化科协”上(微信号:THUchemST),我作为作者转到了这里,同时也希望宣传一下这个公众号←_←


作者
Author:
beefly    时间: 2017-7-22 09:15
CCSDT和CCSDT(Q)可以用cfour 2.0做。人写的代码比计算机产生的代码效率高
作者
Author:
Daniel_Arndt    时间: 2017-7-22 09:15
附带宣传一下网址 https://thuchemst.github.io/
作者
Author:
我本是个娃娃    时间: 2017-7-22 09:27
MRCC能做极化率和超极化率计算吗?

另外能把安装的过程写一点吗?
作者
Author:
liyuanhe211    时间: 2017-7-22 09:36
本帖最后由 liyuanhe211 于 2017-7-22 09:38 编辑

CCSD(T)耗时比CCSD低?另外DFT的绝对能量和post-HF的绝对能量比较、看DFT的准确程度好像是错误的?

作者
Author:
Accelerator    时间: 2017-7-22 09:40
liyuanhe211 发表于 2017-7-22 09:36
CCSD(T)耗时比CCSD低?另外DFT的绝对能量和post-HF的绝对能量比较、看DFT的准确程度好像是错误的?

并没有把DFT的绝对能量和CC相比,带有DFT的比较的是反应热
作者
Author:
Accelerator    时间: 2017-7-22 09:47
我本是个娃娃 发表于 2017-7-22 09:27
MRCC能做极化率和超极化率计算吗?

另外能把安装的过程写一点吗?

按照手册上的说法,本身不能算,需要对接其他程序。
安装过程即按照手册描述,解压源代码后build.mrcc Intel -pMPI
作者
Author:
Accelerator    时间: 2017-7-22 09:51
liyuanhe211 发表于 2017-7-22 09:36
CCSD(T)耗时比CCSD低?另外DFT的绝对能量和post-HF的绝对能量比较、看DFT的准确程度好像是错误的?

检查了一下,CCSD耗时较高是因为在这个例子中CCSD没有修改默认内存(默认是256MB,其他例子都改到了24GB);而修改内存到24GB后CCSD耗时和CCSD(T)基本相同
作者
Author:
sobereva    时间: 2017-7-22 10:26
beefly 发表于 2017-7-22 09:15
CCSDT和CCSDT(Q)可以用cfour 2.0做。人写的代码比计算机产生的代码效率高


你说的2.0是非公开版本么?
用公开版本,写CALC=CCSDT(Q)时候发现结果和CCSD一样。貌似公开版本最高就能算到CCSDT
作者
Author:
冰释之川    时间: 2017-7-22 10:27
我本是个娃娃 发表于 2017-7-22 09:27
MRCC能做极化率和超极化率计算吗?

另外能把安装的过程写一点吗?

如果是指解析极化率和超极化率,目前看来还是高斯支持得最好。如果是算数值解,可以自己编程处理数据。(娃娃不是在学fortran么,可以试着自己写批处和计算脚本,而差分公式都是现成的)
作者
Author:
我本是个娃娃    时间: 2017-7-22 11:10
Accelerator 发表于 2017-7-22 09:47
按照手册上的说法,本身不能算,需要对接其他程序。
安装过程即按照手册描述,解压源代码后build.mrcc I ...

好,我更喜欢gfortran
作者
Author:
我本是个娃娃    时间: 2017-7-22 11:11
冰释之川 发表于 2017-7-22 10:27
如果是指解析极化率和超极化率,目前看来还是高斯支持得最好。如果是算数值解,可以自己编程处理数 ...

好,我还是等待ORCA输出更多的跃迁系数吧
作者
Author:
sobereva    时间: 2017-7-22 11:31
冰释之川 发表于 2017-7-22 10:27
如果是指解析极化率和超极化率,目前看来还是高斯支持得最好。如果是算数值解,可以自己编程处理数 ...

但是不支持耦合簇级别。CFOUR能做到CC3级别的动态极化率,NWChem甚至支持CCSDTQ级别的极化率
作者
Author:
jiangning198511    时间: 2017-7-22 15:42
sobereva 发表于 2017-7-22 10:26
你说的2.0是非公开版本么?
用公开版本,写CALC=CCSDT(Q)时候发现结果和CCSD一样。貌似公开版本最高就 ...

CFOUR貌似在今年秋天之前发布新版本
A new release of CFOUR should happen no later than autumn 2017
作者
Author:
beefly    时间: 2017-7-22 17:32
sobereva 发表于 2017-7-22 10:26
你说的2.0是非公开版本么?
用公开版本,写CALC=CCSDT(Q)时候发现结果和CCSD一样。貌似公开版本最高就 ...

需要设定CC模块:CC_PROGRAM=NCC
现在只能算闭壳层单点能
http://slater.chemie.uni-mainz.d ... hp?n=CFOURV2.00beta

作者
Author:
sobereva    时间: 2017-7-22 22:12
beefly 发表于 2017-7-22 17:32
需要设定CC模块:CC_PROGRAM=NCC
现在只能算闭壳层单点能
http://slater.chemie.uni-mainz.de/cfour/in ...


设了NCC后提示Option NCC for keyword CC_PROGRAM  not known.  Default used.,结果自动用的还是VCC,最终CCSD和CCSDTQ结果相同,输出文件附上了
官网上看貌似NCC在公开版本里没有:http://slater.chemie.uni-mainz.de/cfour/index.php?n=Main.CCModules

作者
Author:
sobereva    时间: 2017-7-22 22:33
我本是个娃娃 发表于 2017-7-22 09:27
MRCC能做极化率和超极化率计算吗?

另外能把安装的过程写一点吗?

你直接下载预编译好的包,把路径加入到$PATH里直接就能用
作者
Author:
beefly    时间: 2017-7-22 22:34
可能是版本问题,需要用2014年的2.0beta版
作者
Author:
sobereva    时间: 2017-7-22 23:10
beefly 发表于 2017-7-22 22:34
可能是版本问题,需要用2014年的2.0beta版

是我搞错了,之前机子里有cfour v1版,明明编译了v2 beta,结果不知怎么回事跑的是v1。删了v1版现在CCSDTQ能正常计算了。谢谢提示。
作者
Author:
我本是个娃娃    时间: 2017-7-23 08:15
sobereva 发表于 2017-7-22 22:33
你直接下载预编译好的包,把路径加入到$PATH里直接就能用

感谢大博士
作者
Author:
scf    时间: 2017-7-24 01:02
beefly 发表于 2017-7-22 09:15
CCSDT和CCSDT(Q)可以用cfour 2.0做。人写的代码比计算机产生的代码效率高

展开说说?automatical implementation的挑战在哪里?
作者
Author:
Warm_Cloud    时间: 2017-7-24 22:31
MRCC慢在了积分变换以及排序上,它的CCSD(T)的算法本身更快。高斯的积分变化出奇的快,CCSD(T)的话,molpro更稳健一些。
作者
Author:
lidanhui2    时间: 2018-2-9 16:37
您好,能发一下MRCC的安装软件吗?940469319@qq.com
作者
Author:
ldatea    时间: 2020-8-18 22:58
本帖最后由 ldatea 于 2020-8-18 23:52 编辑

不知道为什么,我用G16无法重复你的结果。我使用的能量参考值时CCSD(T)/jun-cc-pvqz下的能量,和CCSDT(Q)差不了多少。
我的结论是:
此体系中,
1.  只要结构是接近的,不同的几何优化结果对最终能量的影响很小,大概就是0点几kcal/mol
2.  算阴离子体系能量不加弥散函数结果会很烂
这两条通常都是成立的

如果你的结果是对的,就说明  小基组几何优化+大基组单点   在这个体系会严重不符。虽然不是说一定不可能,但在这么一个很正常的体系里出这种事会非常非常怪。

另外还发现一个很神奇的事,如果把水摆成直线几何优化(键拉长的情况下,键压缩的情况我还没试过),即便用nosymm,(没算Hessian时,没尝试过算Hessian的情况)在M06-2X/def2-tzvp下总是会优化出一个直线的构型。




作者
Author:
zjxitcc    时间: 2020-8-19 10:00
ldatea 发表于 2020-8-18 22:58
不知道为什么,我用G16无法重复你的结果。我使用的能量参考值时CCSD(T)/jun-cc-pvqz下的能量,和CCSDT(Q)差 ...

不好意思我想问得详细点儿,是哪部分没重复出楼主的计算结果?某个电子能量?某个相对能量?打开表格没看出所说的问题在哪儿
作者
Author:
喵星大佬    时间: 2020-8-19 15:35
ldatea 发表于 2020-8-18 22:58
不知道为什么,我用G16无法重复你的结果。我使用的能量参考值时CCSD(T)/jun-cc-pvqz下的能量,和CCSDT(Q)差 ...

这很容易理解,因为直线往任意方向弯的受力是平衡的,所以用受力优化怎么优化都是直线,这也是几何优化之后有虚频,消虚频的时候为什么要手动破坏对称性。对称的结构一定是能量极值点,但未必是极小值点。
作者
Author:
ldatea    时间: 2020-8-19 22:02
本帖最后由 ldatea 于 2020-8-19 22:28 编辑
zjxitcc 发表于 2020-8-19 10:00
不好意思我想问得详细点儿,是哪部分没重复出楼主的计算结果?某个电子能量?某个相对能量?打开表格没看 ...

我用的计算方法和基组没有严格对应,现在直接给出不能重复的地方。先前的表格把基组从aug-cc-pvtz改成jun-cc-pvqz,把冻芯去掉,对于水和氢氧根也没啥影响(单点能差398kcal/mol附近)。这里冻芯对反应能的结果大一点。(为了一眼就能看懂,没贴额外信息)

1.楼主的图中,CCSD(T)和CCSDT(Q)相差无几
2.第 4 张条形图中M06-2X/aug-cc-pvtz//b3lyp/6-31g*与CCSDT(Q)/aug-cc-pvtz//M06-2X/def2-tzvp相差12.1kcal/mol

3.我算出来的M06-2X/aug-cc-pvtz//b3lyp/6-31g*与CCSD(T)/aug-cc-pvtz//M06-2X/def2-tzvp相差1.1kcal/mol
这三条里无论如何,至少有一条是错的。







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