Firstrelease:2016-Jun-16Lastupdate:2023-May-3
该用什么基组?琢磨这个问题前必须先明确以下要素,综合判断。问高手用什么基组的时候提供的以下信息越充分,高手也能给你越确切的答案(经常有人问我算个某某某分子,用什么基组,这根本没法准确回答)a)算什么体系,多少原子、都有什么元素b)算什么问题c)要求多高精度、用什么理论方法d)能利用的计算资源如何(尤其是核数)、能接受最多多长的计算耗时e)用什么程序
注意,不同方法对基组的要求是截然不同的,体现在以下两点:
(1)对基函数角动量和zeta数的依赖性:普通泛函的DFT及HF计算(下文直接说“DFT”时指代这两种情况)不需要太多高角动量基函数,而s、p角动量基函数对改进结果意义明显更大。因此对比如B3LYP,用3-zeta基组6-311G*相对于2-zeta基组6-31G*改进明显,而6-311G(3df,2pd)比6-311G(2d,p)耗时高得多却不会有什么改进。有些人居然用6-31G(2df,p)这种基组做DFT计算,显然极为荒诞,连3-zeta还没达到,亟待改善的地方不改善,却把计算量增加对DFT结果影响较小的f极化上,一看就非常缺乏理论知识。
(2)耗时与基函数和GTF(高斯型函数)数目的关系:DFT计算的耗时绝大部分用在双电子积分计算上,而双电子积分形式上正比于GTF数目的四次方,因此,体系的GTF数是最直接影响DFT计算耗时的。
后HF计算的耗时主要取决于基函数数目(也和体系电子数有关),因为这直接决定Slater行列式或组态函数的数目,以及AO->MO积分变换的花费,而在SCF迭代过程的双电子积分上的花费则相对次要。
对于非双杂化泛函的DFT计算,根据精度要求,一般问题基组选用建议如下。符号对应于同一档内基组尺寸关系。笑话级别:STO-3G(极小基)玩具级别:3-21G(最烂2-zeta基组)最低可接受级别:def2-SV(P)≈6-31G* 对于后HF、双杂化泛函、多参考方法计算,根据精度要求,一般问题基组选用建议如下。最低可接受级别:def-TZVP(一般3-zeta基组)较好级别:cc-pVTZ≈def2-TZVPP(高档3-zeta基组)高精度计算:cc-pVQZ≈def2-QZVPP(4-zeta基组)无敌:cc-pV5Z(5-zeta基组。很浪费且极昂贵,一般通过TZ→QZCBS外推来达到这个档次) 学术界现在有共识认为Pople系列基组构建得不是很理想。对于3-zeta及以上档次的基组,对于DFT计算,强烈建议在同等基组尺寸下使用def/def2、pcseg系列基组代替Pople系列基组,以在差不多耗时的情况下获得更高精度。而对于后HF计算,Pople基组更是极差的选择,强烈不建议用!Pople基组超过6-311+G(d,p)大小的版本基本没有实用价值,因为总有性价比高得多的其它基组可以用。 对于需要弥散函数的情况勿忘加弥散函数!什么情况该加在前述的《谈谈弥散函数和“月份”基组》中已经明确说了,后文也有提到。 用什么基组和弱相互作用类型有一定关系。弱相互作用本质分为两大类:色散作用:pi-pi堆积、范德华吸引静电吸引主导,少量色散吸引参与:氢键、二氢键、卤键、pi-氢键、碳键、硫键、磷键等色散作用起的比重越大,越需要弥散函数、考虑BSSE问题。 含弱相互作用体系的几何优化的基组建议:色散主导的弱相互作用:may-cc-pVTZ足够理想,6-311+G**一般够用,6-311G**或def-TZVP也能接受静电主导的弱相互作用:def-TZVP足够理想,6-31G**或def2-SVP也可以接受 算NMR强烈建议用pcSseg系列基组(JCTC,11,132),专门给NMR计算优化。pcSseg-1只比6-31G**大一丁点,NMR计算结果却和比它大得多的def2-TZVP、cc-pVTZ差不多,已经算是颇理想了。pcSseg-0大小和3-21G相仿佛,精度虽明显不如pcSseg-1,但是却比6-31G**整体还好一点。如果计算量还有富余可以提升到pcSseg-2,不过比pcSseg-1大不少但结果改进有限,不算很划算。如果非要用常见的基组算NMR,可以用def2-TZVP,算不动就降到def2-SVP。IGLO-II算NMR也不错,不过推荐程度低于pcSseg系列。不建议用pople系列基组算NMR,非要用起码得6-311G(2d,p)。 如果研究NMR峰的分裂需要算自旋-自旋耦合常数J,算这个绝对不能用一般的基组,必须用专用的在内核附近有很紧的(指数很大的)基函数的基组才行。强烈建议用pcJ系列,用其中pcJ-1结果就很不错了。IGLO-III基组也很适合计算J。 一些人在NMR计算时加弥散,这是愚蠢的。加弥散对NMR的计算精度几乎无任何改进。 算NMR、J值时,被考察的原子绝对不能用赝势基组,否则根本没法表现内层电子对外磁场的屏蔽。但对相邻原子用赝势基组则完全没关系。 势垒计算的基组按照1.2节推荐的就可以。如果已用到了较好3-zeta级别基组,计算量还有富裕,想用来进一步提升精度,那么建议加上最低程度的弥散(对重原子加s,p角动量的弥散),会令结果有定量改进。值得一提的是def2系列加弥散对势垒计算结果的改进没有pople基组那么大。 算势垒不要在2-zeta基组上加弥散,把加弥散的精力用在增加zeta数上会令精度明显提升得更多。 算偶极矩:用def2-TZVPD的话在基组层面就没什么误差了,用aug-cc-pVTZ也很好但昂贵得多。如果def2-TZVPD用不动就降到aug-cc-pVDZ,如果还算不动就降到def2-SVPD,还算不动就干脆放弃或者用ORCA程序开RI来算。Pople基组算偶极矩极烂,绝对不能用。 虽然Raman、ROA谱也是振动谱,但是计算它们需要有弥散函数才能得到较好结果。因为它们在计算时都要涉及极化率对振动坐标的导数,而极化率要算准是需要有弥散函数的。J.Chem.TheoryComput.,7,3323(2011)提出计算Raman、ROA的两步方法,在优化和振动分析时不用弥散函数(低至6-31G*高至def-TZVP就够),但是计算极化率导数的时候再考虑弥散函数(建议>=aug-cc-pVDZ),这样比整个过程都用弥散函数更便宜而且精度没什么损失。Gaussian支持这种两步方法。(由于ROA、Raman是振动谱,所以也应考虑频率校正因子) 一些初学者对全电子相对论计算一无所知,居然用了赝势基组还用诸如DKH2相对论哈密顿,此时结果完全错误!用相对论哈密顿时必须是全电子基组。 不过,如果不考虑相对论效应中的标量部分而只考虑旋轨耦合部分的话可以照常用普通全电子基组和赝势。 对于Gaussian、Crystal这样基于高斯基函数的程序,算孤立体系常用的6-31G**基组也适合有机周期性体系计算。但很多专门给分子计算的基组不宜直接用在周期性计算上,如6-311G*计算Si。因为这些基组往往有指数较小的呈一定弥散特征的基函数,对于描述原子轨道的尾巴特征有益,但在周期性体系中并不需要描述这点,还可能造成数值问题,故需要将这些基函数的指数人为调大或去掉。一些基组有冗余的基函数也应适当去掉。本身带弥散函数的基组更是绝对不能用于周期性计算的,否则麻烦极多。 赝势的主要用处在于:(1)将化学上不感兴趣的内层电子以等效的势场描述,从而不需要将内层电子显式地表达出来,大大节约了计算量(2)可以等效地体现标量相对论效应。从第四周期相对论效应开始显现,但不考虑也问题不大;而对第五周期及之后相对论效应是不可忽视的,不考虑甚至结果定性错误。 只有极少数基组,如UGBS、WTBS是几乎覆盖整个周期表的,大多数基组只对周期表中的一部分有定义。基组定义了哪些元素,可以自行去BSE网站上,点击相应基组查看。 CBS=completebasisset(完备基组)。用CBS相当于用了无穷大基组,此时基组不完备性导致的结果误差为0。文献中经常有CCSD(T)/CBS这种写法,当然实际计算用的基组不可能无穷大,CBS下的结果是通过有限大小基组下的结果外推来达到的,具体见前述的《谈谈能量的基组外推》。 由于绝大多数量子化学程序用的基函数都是高斯函数,数学形式是一致的,因此高斯函数基组可以在任何基于高斯函数的量化程序中使用。基本上所有量子化学程序都有自己的基组库,包含主流的基组,可以直接使用。 但是内置的基组往往不够全面,往往需要从其它地方获得基组定义来在程序中使用。可以从其它程序基组库中借来,或者根据基组原文献中的数据自行手写,或者从一些基组开发者的网站上获取。最常规的获得外部基组的做法是通过BSE基组数据库,这是基组最全的公开的基组数据库(极个别基组对于个别元素的数据可能有错误)。详见前述的《在线基组和赝势数据库一览》。 混合基组是指计算时有的原子用某种基组,而有的原子用另一种基组。适当使用混合基组可以令计算耗时大为降低,而精度损失不多,建议大家充分利用这种做法。例如,计算一个大体系的化学反应过程,反应部分只涉及其中一个区域,那么可以只给这个区域的原子用大基组(如def2-TZVP)而其余部分用中/小基组(如6-31G*乃至3-21G)。再比如,若体系有的地方局部带大量的负电荷,那么没必要对整个体系所有原子都加弥散函数,只给那部分的原子加上弥散函数就足够了。计算配合物时通常给过渡金属原子用赝势基组而轻原子用全电子基组,这实际上也属于使用了混合基组。 Gaussian中用混合基组的方法见前述的《详解Gaussian中混合基组、自定义基组和赝势基组的输入》。 和氢关系密切的计算,比如计算氢键、氢转移反应、质子化能、氢的NMR谱等等才很有必要给氢加极化函数,其它情况不给氢加极化也不会带来多大误差。 很多初学者,道听途说网上一些乱七八糟说法,对概念稀里糊涂,经常问某某计算用的基组是否必须得和优化用的基组一致之类。实际上,只有走IRC、做振动分析的时候用的级别(显然包括所用的基组)必须和几何优化(包括优化过渡态)时候的一致,除此之外,任何常见的任务之间都绝对不要求所用基组一致!!! Pople系列基组的一个特点是自定义强,对6-31G和6-311G后面极化函数加多少、加什么角动量的可以自己随意控制,对重原子可以是d,df,2d,2df,3d,3df,3d2f,对轻原子可以是p,pd,2p,2pd,3p,3pd,3p2d。很多人乱加,不注意各角动量的平衡性,比如说按这个顺序逐渐增加试图改进结果是合适的:(d,p)(2d,p)(2df,2p)(2df,2pd)(3d2f,2pd)(3d2f,3p2d)。但是如果使用诸如(3d,3p2d),就很不合适了,对重原子d极化都那么多了怎么一个f都没有?而且氢的极化给那么多,重原子的极化显得也偏少。另外,对6-31G这个2-zeta基组,给个(d,p)或至多(2d,p)也就够了,如果用6-31G(2df,2pd)就很蠢了,把闲资源用在加那么多极化函数上带给结果的改进远远不如先把基组升到3-zeta! 顺便再说一下,对于绝大多数情况,6-31G、6-311G不加极化函数根本没法用!6-31G*相比6-31G、6-311G*相比6-311G精度一个天上一个地下,虽然加了极化耗时高了些,但这是超划算的。频繁看到初学者居然直接就敢用兀秃兀秃的6-31G、6-311G,明显是不懂极化函数有多么必不可少。随便用6-31G、6-311G暴露出研究者在基组选用常识上的极度无知。 什么时候该用弥散函数在前述的《谈谈弥散函数和“月份”基组》当中专门说了,本文前面也提到了很多次什么时候该加什么时候不该加弥散函数。老夫长期在网上回答计算化学问题,看到别人乱用弥散函数的情形真是太多太多了。再次强调一下,如果你已经仔细看过上文以及《谈谈弥散函数和“月份”基组》了,碰到一个问题不确定该不该加弥散函数,那么答案就是:别加弥散函数!!!根据洒家网上长期答疑经验,不该加弥散函数的时候加了弥散函数的情况,比该加弥散函数却没加的情况多至少10倍! 不该加弥散函数的时候加弥散几乎对结果完全没改进,还导致许多问题,尤其是计算量暴增、难收敛。要知道,同样是加一层sp基函数,如果加的是弥散函数,远比增加一级zeta数耗时多得多!即曰,对重原子,相对于6-31G*,增大到6-31+G*的耗时显著高于增大到6-311G*(体系越大这个现象越明显)。因为弥散函数指数小,延展范围广,量化程序不容易靠积分屏蔽(integralscreening)策略来忽略掉对结果贡献很小的积分来节约计算量,而且本身弥散函数也容易导致收敛需要更多圈数。而对于不是非得有弥散函数不可的情况,6-311G*比6-31+G*结果好到不知哪里去了。即便是对于弥散函数较有用的问题,比如色散主导的弱相互作用体系优化,考虑到计算量以及任务类型,我也推荐用6-311G*而非6-31+G*,因为前者本身此时结果也不比后者差,虽然它没有弥散函数,但是3-zeta最外层本身就体现出一点弥散的特征,也基本够了,而且3-zeta对价层电子的描述准确度也比2-zeta充分得多。