计算化学公社

标题: 给Ahlrichs的def2系列基组加弥散的方法 [打印本页]

作者
Author:
sobereva    时间: 2016-6-8 10:58
标题: 给Ahlrichs的def2系列基组加弥散的方法
给Ahlrichs的def2系列基组加弥散的方法
Method of adding diffuse functions to Ahlrichs' def2 series of basis sets

文/Sobereva @北京科音
First release: 2016-Jun-8  Last update: 2023-Apr-24


Ahlrichs等人2005年搞的def2系列基组(PCCP,7,3297)如今比较流行,构建得比较理想,比较普适,前六周期完全覆盖(锕系除外),对于3-zeta级别的版本在同等计算量下精度比Pople系列基组强不少,比Dunning相关一致性基组明显更适合DFT计算,还有对应的密度拟合辅助基组,在ORCA程序中能跑得很快,因而是DFT计算的首选基组之一。但是开发者并没专门提出def2系列带弥散的版本,而有些问题又必须有弥散函数(讨论见《谈谈弥散函数和“月份”基组》http://sobereva.com/119),经常有人问怎么给def2系列基组加弥散,这里就简单说一下。此文涉及的所有带弥散的def2基组在Gaussian里都没内置,而必须靠自定义基组方式使用,不知道具体怎么做的话仔细阅读和理解此文:《详解Gaussian中混合基组、自定义基组和赝势基组的输入》(http://sobereva.com/60)。

1 借用弥散函数
Dunning相关一致性基组的弥散函数可以直接挪到Alhrichs基组上,例如加到def2-QZVP上可以称为aug-def2-QZVP,例如Phys. Chem. Chem. Phys., 13, 6670-6688 (2011)就这么用。也可以按照月份基组的思路,砍掉aug上不重要的高角动量弥散函数以降低耗时。另外,Frank Jensen搞的aug-pc-n系列基组的弥散函数也可以借到def2上,由于aug-pc-n基组是专给DFT计算优化的,故对于DFT计算来说可能结果比借用aug-cc-pVnZ的弥散效果更好。

2 带D后缀的def2系列
在J. Chem. Phys., 133, 134105 (2010)中作者提出def2-SVPD、TZVPD、TZVPPD、QZVPD、QZVPPD,分别是对def2-SVP、TZVP、TZVPP、QZVP、QZVPP加上弥散函数,弥散函数的指数是通过优化原子的HF极化率得到(同样适合DFT下极化率计算)。这些基组用于其它需要弥散函数的任务,比如算弱相互作用,预期也能起到不错效果,但未必比本文其它的加弥散方式做法更好。这些带D的def2基组可以在EMSL上获得。

3 ma-方式添加弥散函数
Truhlar等人提出一种通用的给出原本不含弥散函数的基组以最低限度的弥散函数的策略,这样的基组以ma-开头,含义是minimal augmentation,详见J. Chem. Theory Comput., 7, 3027、Theor. Chem. Acc., 128, 295。也就是将原先基组中指数最小的s和p的指数除以3作为弥散函数的指数,但不对氢加弥散函数。这种处理后的def2基组可以直接从这里获得Gaussian格式的定义:http://comp.chem.umn.edu/basissets/basis.cgi。如ma-def2-TZVP在里面被简写为ma-TZVP。对于大多数需要弥散函数的问题,实际上像这样只给重原子加一层s和p弥散就已经解决绝大部分问题了,因此如果想给def2加弥散但又不想花费过高代价的话,这种ma-方式加弥散是比较理想的。
2019-Aug-28补充:上面这个基组库里的ma-def2系列基组包含的元素不全(即远少于def2系列原本支持的),由于ma-def2又很常用,因此我专门制作了一套元素完整的ma-def2系列基组的Gaussian格式的定义,用起来很方便,见《给def2以ma-方式加弥散函数的Gaussian格式的基组定义文件(含所有def2支持的元素)》(http://sobereva.com/509),同时给出了自动基于原有基组定义文件以ma-方式添加弥散函数的程序。

4 Even-tempered方法
若当前基组中某个角动量函数中指数最小的是ζ(n),第二小的是ζ(n-1),则这个角动量的弥散函数的指数应当为ζ(n)*[ζ(n)/ζ(n-1)]。这称为Even-tempered方法,见Int. J. Quantum Chem., 113, 21-34 (2013)式3,类似于靠几何级数关系来确定更弥散的函数的指数。这是比较普适的“自助”方式给原本没弥散函数的基组加各角动量弥散的做法。


顺带一提,在Int. J. Quantum Chem., 116, 1084 (2016)中,作者提出了R-ORP基组,是在def2基础上加了一层s和p弥散同时调节了指数,目的是让基组大小在aug-cc-pVDZ的级别但计算(超)极化率性能有明显提升。实际测试表明此基组算极化率效果一般,但算第一超极化率比较碉,根据作者的测试达到>=daug-cc-pVDZ的水准。不过此基组目前只对C、H、O、N、F有定义。如果想在Gaussian中使用,见《适合超极化率计算的R-ORP基组在Gaussian下的格式》(http://sobereva.com/338)。

另外,def2系列基组对弥散函数的要求低于pople系列基组。特别是在3-zeta级别,def2加ma后改进远比pople系列基组加+后的改进要小。所以像计算势垒这种加弥散有益但不是必须的情况,如果对精度要求不是很高的话def2不加弥散也无大碍。
作者
Author:
我本是个娃娃    时间: 2016-6-8 13:01
抢沙发,鼓掌!
作者
Author:
xpyp    时间: 2016-6-8 13:03
计算弱相互作用,用了def2-qzvp, 是否还需要加弥散函数呢?
作者
Author:
sobereva    时间: 2016-6-8 13:07
xpyp 发表于 2016-6-8 13:03
计算弱相互作用,用了def2-qzvp, 是否还需要加弥散函数呢?


如果是DFT-D3校正的泛函级别来算的话,不用加,而且D3本身拟合参数的时候就是在这个基组下的。如果用高级后HF方法要求贼精确,当金标准,而且是色散主导的作用的话,可以再加个aug-或者考虑BSSE
作者
Author:
bianwenbo    时间: 2016-6-8 18:30
本帖最后由 bianwenbo 于 2016-6-8 18:32 编辑

@sobereva 我感觉加了弥散的基组有这样的排序(都是乞丐级别):aug-cc-pVDZ > ma-def2-SVP ≈ 6-31+G*
至少我在计算单点能的时候使用同样参数,前面Dunning的耗时大概是中间Ahlrichs这个的三倍。
作者
Author:
sobereva    时间: 2016-6-8 19:01
bianwenbo 发表于 2016-6-8 18:30
@sobereva 我感觉加了弥散的基组有这样的排序(都是乞丐级别):aug-cc-pVDZ > ma-def2-SVP ≈ 6-31+G*
至 ...


因为aug-cc-pVDZ对d角动量、对氢都有弥散函数,ma就只有sp的弥散,所以耗时会高一截
你可以用月份基组

作者
Author:
greatzdk    时间: 2016-6-11 10:31
我本是个娃娃 发表于 2016-6-8 13:01
抢沙发,鼓掌!

还是玩点真东西吧
作者
Author:
helpme    时间: 2016-8-1 16:38
本帖最后由 helpme 于 2016-8-24 11:25 编辑

感谢sob介绍的方法。

针对使用ma-def2tzvp基组,提供一种具体的操作方式(另外的方式比如使用genecp当然也可以)。

1. 首先得到def2tzvp基组的具体形式(可以在网站下载,或者用高斯的def2tzvp + gfinput来输出)。把s和p的指数系数最小的两项系数除以3,作为弥散函数。(这个也可以到http://comp.chem.umn.edu/basissets/basis.cgi 下载,但是可能有些元素不全)。

2. 编辑一个基组文件 ma-def2tzvp.gbs,放在$g09root/basis下面内容包含所研究的所有原子的弥散函数信息(这个文件可以慢慢积累,以后还可以用)。包含C和O的文件的ma-def2tzvp.gbs文件如下(注意元素符号前面的-号,这样即使体系不含该元素,程序也不会报错退出):
-C 0
S   1 1.00       0.000000000000
      0.3172148001D-01  0.1000000000D+01
P   1 1.00       0.000000000000
      0.3352274557D-01  0.1000000000D+01
****
-O 0
S   1 1.00       0.000000000000
      0.6168178787D-01  0.1000000000D+01
P   1 1.00       0.000000000000
      0.5826140423D-01  0.1000000000D+01
****

3. 使用的时候,大致是这个样子(考虑到弥散函数常常用于弱相互作用的计算,这里把B3LYP-D3(BJ)的形式也写进去了):

# b3lyp/def2tzvp extrabasis empiricaldispersion=gd3 opt freq

test

0 1
C                  0.00000000    0.42348200    0.00000000
O                 -1.12068900   -0.21083400    0.00000000
。。。

@/home/soft/g09/basis/ma-def2tzvp.gbs /N

上面最后一行如果不加 /N ,那么会把ma-def2tzvp.gbs 文件里面的所有内容写到log文件里面,看上去不好看。                                                                                                                    

作者
Author:
kevin    时间: 2017-8-29 11:30
helpme 发表于 2016-8-1 16:38
感谢sob介绍的方法。

针对使用ma-def2tzvp基组,提供一种具体的操作方式(另外的方式比如使用genecp当然 ...

丁老师,学生有个疑问,您给出的ma-TZVP文件内容和网站上下载的不太一样,网站上给出的信息更多一些,写了更多的s和p轨道的定义,甚至给出了d和f轨道的定义,这跟您写的有什么不同,对于计算有什么影响?


作者
Author:
helpme    时间: 2017-9-20 08:24
kevin 发表于 2017-8-29 11:30
丁老师,学生有个疑问,您给出的ma-TZVP文件内容和网站上下载的不太一样,网站上给出的信息更多一些,写 ...

我给的例子里面,关键词加了 extrabasis,表示在原有基组的基础上,额外加一些基函数(用来弥散的),所以就不用再把def2tzvp本身包含的基函数写一遍了。你写的很多很长的部分,实际上就是原来def2tzvp包含的。

回复晚了不好意思。最近只是浏览网站没有登陆,这才看到。
作者
Author:
kevin    时间: 2017-9-21 17:34
本帖最后由 kevin 于 2017-9-22 09:05 编辑
helpme 发表于 2017-9-20 08:24
我给的例子里面,关键词加了 extrabasis,表示在原有基组的基础上,额外加一些基函数(用来弥散的),所 ...

谢谢丁老师,您的意思是,您的方法是 原有的TZVP + ma-从网站http://comp.chem.umn.edu/basissets/basis.cgi下载下来的是整个的ma-TZVP
如果用网站里的内容编辑成ma-TZVP.gbs文件,输入文件的写法是下面这样么?
# b3lyp  extrabasis empiricaldispersion=gd3 opt freq



test


0 1
坐标


@/home/soft/g09/basis/ma-def2tzvp.gbs /N

作者
Author:
helpme    时间: 2017-9-25 15:34
# b3lyp/def2tzvp extrabasis
empiricaldispersion=gd3 opt freq

就是命令行要把 def2tzvp和 extrabasis都写上。前者表示正常版本的def2tzvp,后者表示还要加点东西——要加的东西就是文件末尾那个了。
作者
Author:
熊琳    时间: 2018-4-19 11:01
本帖最后由 熊琳 于 2018-4-19 11:02 编辑
helpme 发表于 2017-9-25 15:34
# b3lyp/def2tzvp extrabasis
empiricaldispersion=gd3 opt freq

初学者刚接触Gaussian中的def2tzvp这个基组,不知道针对其的关键词如何使用,之前写的是“def2-tzvp”,出现语法报错的消息。然后刚好看到这个帖子,去掉“-”就OK了。嘿嘿,谢谢老师
作者
Author:
wuzhiyi    时间: 2021-5-22 16:51
想请教一下sob老师,我碰到一个很奇怪的问题,我要批量算一批分子的能量,所有哪怕不需要用pseudopotential,我也加上genecp了。其他所有分子都没有问题,但就这一个分子不行,而且换成的def2tzvp也没有问题,但ma-tzvp就不行,gaussian16A说是ecp读取错误,想请sob老师帮我看看,谢谢。 (, 下载次数 Times of downloads: 3) (, 下载次数 Times of downloads: 5)





作者
Author:
sobereva    时间: 2021-5-22 17:05
wuzhiyi 发表于 2021-5-22 16:51
想请教一下sob老师,我碰到一个很奇怪的问题,我要批量算一批分子的能量,所有哪怕不需要用pseudopotential ...

坐标后头少空一行试试
作者
Author:
wuzhiyi    时间: 2021-5-22 17:20
sobereva 发表于 2021-5-22 17:05
坐标后头少空一行试试

谢谢sob老师,
我试了

  1. @/data/biggin/grte2001/basis_set/ma-TZVP.gbs/N
  2. @/data/biggin/grte2001/basis_set/def2-ECP.gbs/N
  3. [空行]
复制代码

  1. @/data/biggin/grte2001/basis_set/ma-TZVP.gbs/N
  2. @/data/biggin/grte2001/basis_set/def2-ECP.gbs/N
  3. [空行]
  4. [空行]
复制代码


都不行
作者
Author:
sobereva    时间: 2021-5-22 18:18
wuzhiyi 发表于 2021-5-22 17:20
谢谢sob老师,
我试了

我是说原先@/data/biggin/grte2001/basis_set/ma-TZVP.gbs/N这行前头有两个空行,改成一个
作者
Author:
wuzhiyi    时间: 2021-5-22 18:51
sobereva 发表于 2021-5-22 18:18
我是说原先@/data/biggin/grte2001/basis_set/ma-TZVP.gbs/N这行前头有两个空行,改成一个

真不好意思,好像还真是这个问题,好像莫名其妙之前的xyz文件多了一个空行 就被转移到这里了
作者
Author:
mfdsrax2    时间: 2022-1-20 22:22
这些基组用于其它需要弥散函数的任务,比如算弱相互作用,预期也能起到不错效果,但未必比本文其它的加弥散方式做法更好。

这句话是什么意思,到底是好还是不好,能不能用
作者
Author:
sobereva    时间: 2022-1-20 22:38
mfdsrax2 发表于 2022-1-20 22:22
这些基组用于其它需要弥散函数的任务,比如算弱相互作用,预期也能起到不错效果,但未必比本文其它的加弥散 ...

没有歧义
作者
Author:
陈AG    时间: 2025-9-19 11:52
“所以像计算势垒这种加弥散有益但不是必须的情况,如果对精度要求不是很高的话def2不加弥散也无大碍。”老师,那我计算一个阴离子BDE的时候,优化不加,单点能用def2-tzvp,也可以不加弥散吗
作者
Author:
sobereva    时间: 2025-9-20 02:42
陈AG 发表于 2025-9-19 11:52
“所以像计算势垒这种加弥散有益但不是必须的情况,如果对精度要求不是很高的话def2不加弥散也无大碍。”老 ...

若断键区域的原子有显著负电荷,算电子能量必须给相应原子带弥散




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