乱谈DFT-D

注1:若对细节、原理不感兴趣,只想赶快选择合适的方法计算弱相互作用体系,直接看本文靠后蓝字部分推荐的计算级别即可

注2:之后笔者还写了《谈谈“计算时是否需要加DFT-D3色散校正?”》 http://sobereva.com/413,是对此文的重要补充,推荐阅读


乱谈DFT-D
Talking about DFT-D

文/Sobereva @北京科音
First relase: 2011-Apr-13  Last update: 2016-Jun-18


以下与弱相互作用计算有关的文章可以看看

第1篇是Grimme写的综述Density functional theory with London dispersion corrections
http://onlinelibrary.wiley.com/doi/10.1002/wcms.30/full
对于色散作用本质没写清楚,分析目前DFT泛函对弱相互作用之差的原因倒是挺明白,很自然地引出了要进行校正的必要。谈了四种将色散校正纳入泛函的做法,进行了比较,写得不错,着重说了DFT-D的巨大好处。然后简要比较了下各种泛函的性能,不过不很系统。

第2篇是Grimme最近在PCCP上一篇庞大的文章(光是supplement里就有55个表)
http://pubs.rsc.org/en/Content/ArticleLanding/2011/CP/c0cp02984j
用GMTKN30测试集(含30个子集,原子化能、反应热、势垒、弱相互作用等等体系大全),号称是thorough比较泛函的性能。比较是挺全面的,不过,文中都是带着DFT-D3校正的情况,泛函原始性能等于根本没比,这实在可惜,恐怕这才是大家更关心的。有趣的是,加了DFT-D3后,Jacob梯子仍然灵验!也就是双杂化-D3>杂化-D3>meta-GGA-D3>GGA-D3>LSDA-D3。对于GGA-D3们,作者推荐revPBE-D3。Meta-GGA-D3们对GGA-D3改进很有限,也就TPSS-D3还成。对于带D3的杂化泛函们,M06-2X-D3颇好,但是作者说明尼苏达系列泛函难收敛,对格点选取敏感,Grimme用最差也最容易收敛出问题、对格点依赖性强的M06HF来论证其观点,于是说明尼苏达系列泛函在使用时都有困难,建议不用,但这明显很大程度冤枉了M06-2X,M06HF真是一粒老鼠屎坏了一锅粥。于是作者就推荐仅次于M06-2X且没什么其它问题的PW6B95。双杂化泛函-D3们显著比杂化-D3的好,其中DSD-BLYP-D3,也就是B2PLYP-D3基础上考虑了MP2自旋分量校正,即somewhat类似于B2PLYP + SCS-MP2 + D3校正,在四zeta基组下最好,而PWPB95-D3仅次于之,在三zeta下最好,对基组依赖性稍小。文中结果显示对于双杂化-D3泛函切不可用双zeta,否则就没比普通杂化-D3泛函结果好多少了。虽然一般认为DFT不用太大基组,但结果显示三zeta比双zeta的改进还是挺明显的,但是四zeta绝对没必要。文中发现原子化能算得好,不代表算反应能算得好,而计算原子化能也没什么应用意义,就不建议以后用此来衡量方法的好坏。看来,以后发展CBS、Gn系列高精度热力学方法恐怕也应该考虑考虑是不是该去掉些算原子化能的测试体系,而多加入些测反应能的。由于GMTKN30主要包含的是低周期元素、以单参考态特征为主的体系,所以这些DFT-D们好坏关系用在其它问题尚不可妄下结论,文中说测试金属体系的工作正在进行中,值得关注。

第3篇是2009年的一篇综述Dispersion interactions in density-functional theory
http://onlinelibrary.wiley.com/doi/10.1002/poc.1606/abstract
由于将色散作用纳入DFT的方法发展迅猛,此文显得略为陈旧,深度也有限(也许是因为受众对象不是专业搞理论的),不如第1篇。文中对DFT-D的认识不太深入,还有些误会。第1篇一笔带过的XDM倒是着重谈了谈,明尼苏达系列泛函的缺陷说得稍微多一些,有夸大的嫌疑。文中作者DiLabio鼓吹了自己的Dispersion-correcting potentials(DCP)方法的优点。


接下来谈谈我的看法

目前DFT之所以对弱相互作用性能弱,是在于local/semilocal形式的相关势在中、长程行为不对,尤其是在长程,导致范德华作用C/R^6行为表现不出来。对中程进行强化,对空缺的远程彻底进行弥补。目前有四类解决方法:

1 vdW-DF(DF=density functional)和VV(Vydrov & Van Voorhis)。这是nonlocal形式的相关泛函,也称为DFT-NL,计算相关能时不再是只做单变量的全空间积分(局域形式相关泛函),而是要积分两个变量,也就是给能量多加了一个校正泛函∫∫ρ(r1)φ(r1,r2)ρ(r2)dr1dr2,φ就不细谈了。这类方法不流行,计算复杂。好处是原理比较严格,经验成分少。vdW-DF目前有vdW-DF-04和它的重新参数化版本vdw-DF-10。VV比vdW-DF形式简单不少,目前有VV09和VV10。vdW-DF-04、vdw-DF-10、VV09都是结合LSDA用,而VV10结合PBE来用。这些方法在Q-Chem、ORCA中支持。总之vdW-DFT和VV都没有发展和应用前景。

2 参数化泛函。也就是明尼苏达系列泛函,M开头,比如M06-2X、M11,在拟合参数时就引入了弱相互作用体系,显然用起来比较方便,已被很多主流量化程序采纳。但是虽比一般泛函性能好得多,但算弱相互作用性能仍有限,毕竟受到semilocal形式的制约,也因此不可能展现C/R^6的行为。也就是说,尽管中程相关问题,比如平衡态复合物分子还成,但是当离远了,就没那么好了。比如一个大分子,有几条挨得不是很近的支链,那么支链间色散作用就描述得不好。

3 DFT-D。这是最最最具有潜力,炙手可热的方法。其实上世纪70年代就有人在HF上做这样校正了,但是2000年左右才重新被捡起来。大抵从07年开始越来越红。不同的人提出的校正形式大同小异,但基本都是像分子力场中那样,每个原子对儿都算一次C/R^6然后加起来,但是其中要乘上阻尼函数f(R),到了短程后就DFT-D校正项就为0了,就回归DFT泛函原始形式,不影响泛函本身在短程相关效应描述较好的原有优点。DFT-D这种校正形式的一个额外好处是可以很容易地单独估计出色散相互作用能。十分值得注意的是,DFT-D绝不只是对加强泛函的长程描述有益处,对于各个方面包括热化学也有益处!毕竟之所以色散作用描述不好是因为相关势不对,而DFT-D虽然目的是使得色散作用能正确描述,但本质上也可以视为校正了相关势,所以DFT-D对于其它问题都是可能有好处的,实践也确实验证了这一点,DFT-D使原先泛函还算擅长的领域也都有了改善。有时还引入C/R^8项,可以进一步加强中程的描述。DFT-D当中最著名的就是Grimme的D2和D3校正了,可以用于各种已有的泛函,实际上就是给出一个C/R^6项具体、完整形式,然后提供了一些预置参数,比如每个原子的系数C、原子间参考距离等等。对于DFT-D3,将它用于一个新的泛函只需要拟合两个参数,1到94号元素的参数都已提供了。虽然明尼苏达系列泛函都已经对弱相互作用参数化了,但是用DFT-D弥补其semilocal形式内在缺陷后,结果仍可以进一步改进,也使长程拥有了C/R^6行为。虽然双杂化泛函已经有了能够描述长程作用的MP2成分,但是毕竟只是占了其中一部分,并不完整,所以也可以用DFT-D校正。DFT-D校正几乎不需要任何额外计算量,实现简单,如今已被大多数主流程序支持,如Gaussian、GAMESS-US、ORCA等。Grimme也提供了名曰DFT-D3的程序(http://www.thch.uni-bonn.de/tc/index.php?section=downloads&),可以计算DFT-D校正能和色散作用导致的原子受力,给50多种泛函的参数已经预置了。DFT-D很安全,只要参数好好拟合,结果只会使原有泛函性能变好而不会变糟。DFT-D的最大问题就在于(其它三种方法都没这问题),它不是修改KS势能算符,而只是给能量多加了一项,所以没法将弱相互作用的影响引入SCF,也因此电子密度不能响应弱相互作用,但是一般即使引入了,差别也不大,一般可忽略。这不由得令我想起杨伟涛JACS那篇文章用约化密度梯度分析图形化分析弱相互作用时只用B3LYP密度。

另外值得一提,不是说DFT-D用在每种泛函上都能使弱相互作用变得很好,虽然肯定用了会明显变好,但用过之后谁更好还是很大程度取决于泛函本身是不是好苗子。(原因之一可能是因为不同泛函对静电相互作用描述得好坏不同)

原子在不同价态、成键方式中的色散系数是不同的,比如原子在分子中的色散系数就远比它在自由状态小,就像分子力场里同一种元素有不同原子类型。在传统的DFT-D方法中需要预先设定体系中的原子类型(也有的只依赖于元素,但这样显然不准),这是备受批评的,尤其是反应过渡态中,原子类型难以定义,反应过程则可能伴随原子类型的改变。Grimme的DFT-D3校正解决了这个问题,它引入了原子的分数配位数(CN)的概念,CN的确定只依赖于分子坐标。比如甲烷中H的CN值很接近理想的1,在自由状态H的CN为0,而在反应过程中某个点H的CN值比如可能是0.7,那么就通过一套公式,将预先计算的CN=0时以及CN=1时H的色散系数进行插值生成CN=0.7时H的色散系数。这就使得DFT-D摆脱了拓扑关系的束缚。注意,这里是为了易于理解才这么说的,实际上DFT-D3当中并不是给每个原子一个色散系数,而是给每一对儿类型的原子一个色散系数,算法见其原文JCP,132,154104。DFT-D3这种思路不仅对改进DFT-D有用,对经典力场的开发也有启示作用。另外DFT-D3还引入了三体色散校正项,这是由于ABC间的色散作用并不完全是对儿可加和的,即E_disp(ABC)不等于E_disp(AB)+E_disp(BC)+E_disp(AC),这种考虑在其它色散校正方法中都是未曾引入的。引入了三体校正项使得DFT-D3对大体系精度进一步提高,不过三体校正项毕竟较小,对结果改善有限,而且考虑它的话DFT-D校正没有解析梯度,所以一般程序是默认不考虑三体校正项的。

还有一类特殊的DFT-D校正方法,目前用得没典型DFT-D校正广泛,其中XDM是典型,与DFT-D最大区别是不用预先计算参数,能自动响应实际化学环境并自动计算参数,这个过程也并不耗时,结果也还不错。但是能搭配的泛函有限,形式复杂,计算受力不方便,而且计算时需要体系的波函数而不像DFT-D那样只要有坐标就够了,故用起来麻烦。

关于DFT-D细节的讨论和使用方式见《DFT-D色散校正的使用》(http://sobereva.com/210)。

4 1ePOT。也叫Dispersion-correcting potentials(DCP)。它是修改单电子有效势算符,在其中引入体系中周围一个个原子产生的等效vdW势(一个长程弱吸引势+一个近程弱互斥势),某种程度上类似于ECP的做法。即是说不像vdW-DF那样考虑它们的电子分布,只是类似DFT-D的做法将周围每个原子视为一个点。凡是支持ECP的量化程序,1ePOT方法都能很容易地纳入,计算量不大,1ePOT可以结合各种已有泛函。1ePOT缺点是用的参数多,每种元素+每种泛函+每种基组都要搞一套参数,经验性太强,而且目前已被参数化的元素太少。虽说对S22测试集性能不错,但有些体系比如乙烷二聚体不好,整体性能不够明朗,尤其对于热化学的能力更不清楚,DOI:10.1002/open.201500192指出其对大体系结果明显不如小体系好。而且没有正确的C/R^6渐进行为。目前也没被量化程序广泛支持。我并非在原理上不赞同这种引入色散校正的方法,只是目前DFT-D经营得明显比1ePOT更好,应用更方便更广泛,效果也毋庸置疑。

另外,注意还有个LC(Long-range corrected),与色散校正没直接关系,勿混淆。LC方法在中、长程完全用HF交换势代替纯DFT泛函交换势(而不是像杂化泛函在全程都用相同的杂化系数),用于解决TDDFT算高阶激发态、电荷转移激发态和算极化率等问题不好的问题,虽然确实使交换势的收敛行为得到大大改善,但目的并不是解决弱相互作用问题,与色散作用最直接相关的长程库仑相关仍没考虑,直接用对色散作用没任何帮助,这正如HF算弱相互作用极差一样(换个角度,从解决弱相互作用最低限度的方法MP2的形式上看,本应包含的虚轨道作用没有被引入校正势,而电子相关问题可以被占据轨道到虚轨道的跃迁模型所等价表述)。但是比如像ωB97X那样用好了LC的话则有效果,弱相互作用能描述得更好(但仍不能指望能代替DFT-D的效果),对其它问题也都有增强,毕竟拟合中还是多了个自由度。


下面我说说我对几种不错的或者值得一提的泛函和一些相关理论方法用于弱相互作用的经验性的看法
PBE:在GGA里几乎算是描述弱相互作用最好的了,尽管仍然不够理想。
B3LYP:老掉牙的泛函,尽管有说法说B3LYP算氢键不是很烂(JPCA,111,10439),但是事实上就是不太理想,只能算是勉强凑合。算范德华作用更别指望它,完全不能描述色散作用。
X3LYP:据说作者徐昕说这泛函算氢键很好,有时确实挺好,但是算堆叠作用据说极差,见Grimme那篇综述。别用。尤其是有了DFT-D3后,X3LYP的存在价值几乎为0了。
B97D:Grimme 2007年的,和D2一起提出来的,B97结合了DFT-D2校正,Gaussian09最初版本中就已经能用。毕竟D3后来被提出来了,而且用更大训练集参数化,B97D就别用了。
revPBE-D3:修改版PBE结合DFT-D3,是GGA-D3中最出色的,对各种问题都很好。当然还是不如色散校正的杂化、双杂化泛函。必须用GGA且可以用色散校正时建议用这个,但更流行的PBE-D3也不比它差。
SSB-D2:其作者鼓吹其很好,一些困难体系别的都不灵它灵。目前还没有被程序广泛支持。注意SSB-D3在Grimme的PCCP文中的比较中表现并不好,一方面是可能D3不适合它(而适合D2),也可能是训练集不同,也可能是作者鼓吹SSB-D时所用的测试集太小不足以说明问题。
M06-2X-D3:即使不用DFT-D3校正,这东西算弱相互作用本身已经很不错(不过对某些pi-pi堆积体系比如苯二聚体可能会严重低估结合能),而且已被广泛支持,而且还可以把弱相互作用效应引入密度中。用了DFT-D3后,各方面都无敌!无论弱相互作用还是计算反应能、原子化能之类,在Grimme的泛函-D3横评中是杂化泛函里最好的。
M11:比M06-2X更新的明尼苏达系列泛函。和M06-2X一样是杂化meta-GGA交换相关泛函,但是这回用了范围分离的杂化形式,在远程100% HF交换成份,近程42.8% HF交换成份。文章测试表明各方面综合性能挺好,和M06-2X半斤八两,在多参考态方面进步较多,在弱相互作用、激发态上没进步。参数拟合自种类全面的数据。不过,根据本人的测试(JMM,19,5387),我发现M11对弱相互作用描述得明显不如其前辈M06-2X!所以不建议用M11。
M11-L:是meta-GGA泛函,不含HF杂化成份。在非杂化、非DFT-D类里它是在弱相互作用上表现最好的泛函,因为它的参数的训练集里面就包含了弱相互作用体系。整体性能,包括弱相互作用都不如M11,但是多参考态强的体系表现很好,远胜其它泛函。
PW6B95-D3:色散校正杂化泛函测试里仅次于M06-2X-D3,如果M06-2X-D3使用有问题,就用这个。同样地,各方面都很好,不仅限于弱相互作用好。不过此泛函被主流量化程序支持得不很广泛。目前能支持的有NWCHEM、Q-Chem、ORCA。
ωB97X-D:Head Gordon于2008年弄的,在ωB97X上加了色散校正并重新参数化,其中阻尼系数函数形式与Grimme D2有所不同。在g09可以直接用wB97XD关键词使用之。由于同时拥有LC和色散校正,比较全能,算弱相互作用、TDDFT都很好,热化学计算也是色散校正杂化泛函里很好的。但色散校正并不像DFT-D那样给原始泛函其它方面也带来好处,ωB97X-D相对于ωB97X只有色散作用有改进,其它无明显改进(可能LC-已经解决了不少中程相关问题,没有DFT-D插足余地了),对TDDFT略微恶化。总之ωB97X-D是很妙的,可以放心地用于任何问题(原理上可代替B3LYP,但由于计算速度明显更慢,所以酌情使用)。
MP2:算氢键很好,弱相互作用总高估,即结合得过于稳定,当然,还是比传统DFT泛函好得多。MP2算饱和分子二聚体,比如甲烷二聚体准确度极高,接近CCSD(T)。MP2比DFT需要更大的基组,由于已经有了更好的双杂化泛函,就没必要用了。
SCS-MP2:算色散作用比MP2好(但是饱和分子二聚体结果却恶化),达到双杂化泛函的水平,但氢键不如MP2,算反应能颇好。其它方面没比MP2有什么提高。至于其它变种,如SOS-MP2、S2-MP2之类还不如MP2。毕竟双杂化泛函整体表现更好,除非密度泛函不能用,比如SIE问题明显时,才应该用这个。
MP2.5:MP2能量加上乘上了0.5的MP3校正能,这个数来自分析计算精度、基组依赖性和理论意义。性能比各种自旋校正的MP2都好,主要是pi-pi堆叠改进明显,弱相互作用号称在中等基组下(不加弥散亦可)就能接近CCSD(T)/CBS。计算量比MP2大一个数量级,但是比CCSD小一个数量级。
MP2.X:MP2.5用在小基组上结果不如在大基组好,为解决此问题,MP2.X对从小到大的基组都通过S66测试集重新拟合了MP2和MP3校正能的权重,这使得不同基组下(乃至低至6-31G*)得到的弱相互作用能精度都相仿佛,和MP2.5/aug-cc-pVTZ下差不多。虽然6-31G*下就能高精度计算弱相互作用很诱人,但对更多的体系的可靠性还有待广泛验证。总之,MP2.X的测试数据虽然不错,但实际应用中是否真的靠谱,是否robust,还很难讲,故慎用。
SCS-CCSD:类似SCS-MP2对MP2的处理。弱相互作用和反应能都比CCSD好不少,接近CCSD(T)。
SCS-MI-CCSD:与SCS-CCSD的区别是这个方法中参数拟合自弱相互作用体系,比SCS-CCSD在弱相互作用计算方面又有了很大进步,是很划算的方法。比MP2.X更昂贵但结果也更好一点。
XYG3:徐昕、Gordard等人2009年搞的双杂化泛函,算主族、反应能、弱相互作用都很好,整体强于其它未经DFT-D校正的双杂化泛函。但是毕竟不含专门的色散校正项,而且MP2在长程只是占据部分成分而非全部,故对范德华作用渐进描述得并不正确。拟合参数也只是拟合G3/99热力学数据,在其它双杂化泛函纷纷用D3后XYG3计算弱相互作用就明显吃亏了。
B2PLYP:最早提出的双杂化泛函。毕竟引入了MP2,弱相互作用明显好于一般DFT。虽然略胜于一般DFT-D(包括M06-2X、wB97XD),但计算耗时明显增加,不划算。个别普通体系还不如普通DFT。
B2PLYP-D3:各方面总是比B2PLYP好,但不一定比最好的杂化泛函-D3更好。
B2GPPLYP-D3:略强于B2PLYP-D3但略弱于DSD-BLYP-D3,双杂化泛函中性能中等。
DSD-BLYP-D3:双杂化泛函DSD-BLYP加上D3色散校正,在四zeta下Grimme号称它是目前综合性能最出色的色散校正泛函,不仅对于弱相互作用,对其它问题也最好。
PWPB95-D3:双杂化泛函,三zeta下它是最棒的色散校正泛函,对各种问题都很好,四zeta下仅次于DSD-BLYP-D3。
CCSD(T):基组外推到CBS时是弱相互作用的金标准。钱多得没处花就用它。
B3LYP-gCP-D3/6-31G*:B3LYP/6-31G*的误差(尤其是对于势垒、弱相互作用等)有两个来源,其一是忽视了色散作用,其二是基组太小而BSSE大。DFT-D3用于弥补色散作用,gCP是基于几何结构来对分子内及分子间进行BSSE校正的方法(计算量极小),二者需同时考虑效果才好,否则误差可能更大。将这两个校正都考虑后,尽管还是和B3LYP-D3结合大基组结果有差距,但是对于6-31G*来说,尤其是计算势垒、弱相互作用,B3LYP-gCP-D3/6-31G*是最合适的,比B3LYP/6-31G*改进明显。关于gCP的更多介绍参见《大体系弱相互作用计算的解决之道》(http://sobereva.com/214)。
PBEh-3c:使用提升HF成份后的PBE0,结合gCP、DFT-D3和修改版def2-SV(P)基组的组合方法。目的在于以较小计算量就能得到不错弱相互作用计算结果,比起B3LYP-D3-gCP/6-31G*结果更好,测试见DOI: 10.1002/open.201500192。


下面说说算弱相互作用选用方法的推荐顺序,符号代表同一档内精度关系,尽量用靠前的。这里的档次划分只是对于精度而言的,你到底富不富,要看体系。比如你有16核,对于10个原子内的分子你是大富翁,但是对于150个原子的分子,你则是穷人。优化的时候完全可以用比计算能量时低一个或两个档次的级别来节省时间。静电主导的体系在优化时都不用带弥散。静电吸引主导少量色散吸引参与的弱相互作用类型包括氢键、二氢键、卤键、pi-氢键、碳键、硫键、磷键等,而pi-pi堆积、范德华吸引则属于纯色散作用。色散作用成份越大的情况BSSE越需要考虑,而静电主导的体系对BSSE问题则不敏感。以Counterpoise来处理BSSE问题只适合给单点计算用,优化时绝对不要用。

乞丐:分子力场,如MM3、MMFF94、GAFF、OPLSAA、UFF
特困:PM6-D3H4 > PM6-D3
穷人:B3LYP-gCP-D3/6-31G*,用PBEh-3c更好但尚无程序支持
低保:PW6B95-D3 M06-2X-D3 >= ωB97X-D > B3LYP-D3,基组6-31+G**
小康:理论方法同上,基组:6-311+G**。色散主导时可用Counterpoise改进结果
致富:DSD-BLYP PWPB95-D3 > B2PLYP-D3,基组:jun-cc-pVTZ或jul-cc-pVTZ。色散主导时可用Counterpoise改进结果
富裕:SCS-MI-CCSD > MP2.5,基组:jun-cc-pVTZ或jul-cc-pVTZ。色散主导时可用Counterpoise改进结果
小土豪:CCSD(T)/aug-cc-pVTZ + Counterpoise
大土豪:CCSD(T)/CBS。CBS通过aug-cc-pVTZ和QZ考虑Counterpoise外推来实现
-------------------
注1:上面的D3校正除M06-2X为零阻尼外皆指的是BJ阻尼。不清楚差异的话看《DFT-D色散校正的使用》(http://sobereva.com/210)。

注2:对于脱贫级别,强烈不建议用6-311++G**,因为氢的弥散函数起不到什么价值还白费时间。6-31+G*是计算弱相互作用的底限,有些人拿6-31G**计算弱相互作用,纯属搞笑。如果降格到6-31G*,前提条件是必须用counterpoise或者gCP方式考虑BSSE问题。

注3:以上推荐顺序只是对于Gaussian等一般的量化程序而言。如果用ORCA,由于它的强大RI技术,以下推荐顺序会被完全颠覆,特别是对于大体系而言,工薪阶层也能开上法拉利!见《大体系弱相互作用计算的解决之道》(http://sobereva.com/214)。


最后,再说一些杂碎内容

利用基组、相关作用可加和性近似获得高精度结果(前两项相减得到基组尺寸的校正,加到小基组的CCSD(T)上近似等于大基组下的CCSD(T)):
E(CCSD(T)/aug-cc-pVQZ) ≈ E(MP2/aug-cc-pVQZ) - E(MP2/aug-cc-pVDZ) + E(CCSD(T)/aug-cc-pVDZ)

有人抨击明尼苏达系列泛函数值问题太严重,不仅难收敛,由于过参数化造成PES上出现一些不太明显、不影响曲线整体行为的虚假极小点,需要很高积分格点精度(如ultrafine)才能消除。实际上,M06-2X经过D3校正后,虚假极小点问题应该很大程度上已被弱化,另外几何优化过程中过小的PES的皱纹是可以越过的,所以用int=fine级别的积分格点是没问题的。继续提高格点精度也不会带来明显好处,Grimme在测试它在int=fine和ultrafine下的精度差异时,发现仅比其它泛函大一丁点,而远小于问题最严重的M06HF。不过,如果想要追求绝对精确和稳妥,也不在意多耗费点计算量,那么可以用int=ultrafine。

对于一些庞大体系,DFT-D都做不动,除了分子力场外也可以考虑一些半经验方法。老的半经验方法比如PM3、AM1千万别用。PM7推出之前最好的半经验方法几乎是PM6,但是算弱相互作用很不灵,于是后来有人提出对之加上校正,虽然具体形式明显不同,但目的却像DFT-D。比如PM6-DH1、PM6-DH2,其中D和H分别代表Dispersion和Hydrogen-bond,后来又被不断改进,提出了诸如PM6-DH+、PM6-D3H4等等,从MOPAC2012开始都已经加入了。类似的方法还用在别的半经验方法上,得到比如AM1-D、OM3-D、DFTB-DH2等等。PM7是目前最新的半经验方法,相对于PM6在弱相互作用上有了质的进步,和PM6-DH+相仿佛,其它方面相对于PM6也有改进但整体改进不大。不过本人也发现PM7在PM6-DH+对于特殊情况的弱相互计算也存在微小问题,见《PM7、PM6-DH+半经验方法在优化碱基对儿时的失败》(http://sobereva.com/217)。总的来说,对于弱相互作用计算,目前笔者最推荐PM6-D3H4,而PM7则误差比它要大。

使用大基组的时候为了节省时间,可以适当去掉一些基函数。比如aug-cc-pVDZ计算苯二聚体,若将氢的弥散函数去掉对结果影响甚微。若是结构优化,由于对基组和理论方法不如能量敏感,进一步将碳的d弥散函数去掉甚至都对结果没太大影响。一些省时技巧的讨论可以参考Review in Computational Chemistry vol.26第一章。上文中涉及的maug-cc-pVDZ是在aug-cc-pVDZ的基础上砍掉多余的弥散函数的结果,只给重原子留下一层s和p弥散函数,而氢的弥散函数全砍掉。may、jun、jul开头的基组是将aug-cc-pVnZ系列基组的氢原子的弥散函数全砍掉,且将重原子砍掉两层、一层最高角动量弥散函数和不砍掉弥散函数,参见《谈谈弥散函数和“月份”基组》(http://sobereva.com/119)。