简谈量子化学计算中DFT泛函的选择

简谈量子化学计算中DFT泛函的选择

文/Sobereva @北京科音

First release: 2014-Dec-29   Last update: 2018-Aug-31


经常有人问怎么选择DFT泛函,或要求推荐一些专门讲各种泛函特点、适用场合的文章。这比较为难,要想详细剖析各类泛函的特点,那得长篇大论一番,几句话根本说不清楚。至于推荐文献,也真没什么和适合推荐的。虽然泛函的综述很多,专著也很多,但是极少有全面评述的,而且写这种文章的人多半是研究泛函且提出过泛函的,观点、内容取材总是很有偏向性,有失客观,一个人一个说法。而且新泛函不断出现,稍老一点的文章就会和主流形势相脱节,甚至对读者产生误导。所以,真想对泛函的选择搞得十分灵通的话,必须认真读读DFT专著打好基础,并且多关注主流文献,逐渐形成自己的认识。光是看几篇综述根本没用,看10篇也不够。这就像测试数据,测一次或几次可能会有很大误差,但测试得多了,平均值就会很接近实际值。

这里简要地罗列一下对于各种情况,结合笔者计算经验和大量测试文章给出的泛函选择建议,以后还会不断更新。这里只涉及量子化学计算,第一性原理计算不涉及。

如果当前考察的是基态能量、优化基态结构、计算相互作用能类型的问题,能用得起双杂化泛函(耗时比MP2仅略高一丁点)时建议用双杂化泛函,通常精度比普通泛函能提升一个档。双杂化泛函精度好坏没有定论,和体系有极大关系,不同测试文章的结论出入很大。即便不算弱相互作用也应当加DFT-D3以改善综合性能。值得考虑的泛函:
PWPB95-D3(BJ):稳健性高,性能也较好,推荐优先考虑。ORCA等支持,Gaussian没法用
B2PLYP-D3(BJ):历史最老,精度在双杂化泛函里平庸,但被程序支持最广泛,稳健性还不错
DSD-PBEP86-D3(BJ)和DSD-BLYP-D3(BJ):在一些测试文章中表现极好,但也有不少令人大跌眼镜的时候,故使用风险大。ORCA和Gaussian中通过特殊方式可以用(见《Gaussian中非内置的理论方法和泛函的用法》http://sobereva.com/344)。G16已内置了DSD-PBEP86-D3(BJ),直接写DSD-PBEP86即可
wB97X-2:性能优秀,也可靠,但仅有GAMESS-US、Q-Chem支持

对于用不起双杂化泛函的情况,选择如下:
计算垂直局域价层激发能:PBE0(误差约在0.2~0.3eV,平均好于B3LYP一丝)
计算大共轭体系激发能、电荷转移、高阶价层、里德堡垂直激发:wB97XD、CAM-B3LYP
计算三重态激发能:M06-2X
计算各类激发能,只用一个泛函的情况:wB97XD、M06-2X
计算极化率、超极化率:wB97或LC-τHCTH。PBE38或M06-2X也可以考虑。专门为此优化的PBEDH-P双杂化泛函也是个很好选择
注:计算以上问题,最最理想的是用w调控后的LC-wPBE,见http://sobereva.com/346,但需要花很大额外代价优化w
计算NMR:B97-2(see JCTC,10,572)或KT1。但不如MP2好(对碳、氢,最佳的做法是用B3LYP结合标度法计算,见http://sobereva.com/354)
计算分子振动(谐振、非谐振都算):B3LYP
有机分子结构优化:PBE0(弱相互作用明显时应加DFT-D3校正)、M06-2X
计算HOMO-LUMO gap:HSE06、B3PW91(整体来说这个好,HSE06的杂化参数有点依赖于体系)
计算有机体系热力学数据(反应能、构型能量差、能垒等):M06-2X(加上DFT-D3校正更好)
计算多参考特征强的体系:M06L、MN15L、SCAN
计算过渡金属配合物:SCAN、TPSSh、BP86、B97-1、PBE0、MN15L。B3LYP也能用,但表现一般。最好都加D3
计算闭壳层金属有机反应:PBE0-D3(BJ)。纯泛函用TPSS-D3(BJ)
计算过渡金属之间的化学键(包括过渡金属团簇体系):PBE、BP86、TPSS
计算弱相互作用:M06-2X-D3、PW6B95-D3(BJ)、wB97X-D3。追求速度用BLYP-D3(BJ)(ORCA里结合RI速度很快)
计算卤键:M06-2X  (及SCS(MI)MP2。最好用ECP。基组最好3-zeta+弥散,若不加弥散则CP必须考虑)
计算碳团簇用B3LYP,硼团簇用TPSSh(PBE0也很常用,亦可,不宜用B3LYP)
计算配合物不同自旋多重度能量差:B3LYP*(JCP, 117, 4729)
计算有机体系垂直电子亲和能、Fundamental gap:wB97X (最好用w调控的泛函)
计算有机体系垂直电离能:M06-2X
计算偶极矩、电子密度分布:PBE0


其它情况或模棱两可的时候首选B3LYP(加上DFT-D3(BJ)校正更好)。若发现B3LYP结果不理想,或允许更大计算量试图追求更可靠结果可尝试M06-2X、wB97XD、MN15。其它情况或模棱两可的时候首选B3LYP-D3(BJ),若发现其结果不理想,或允许更大计算量试图追求更可靠结果可尝试M06-2X、wB97X-D、MN15。

关于激发态、弱相互作用、NMR的计算笔者专门写过帖子,上面只是十分简略地一说,强烈建议看看帖子了解详情。

关于激发态计算:
乱谈激发态的计算方法
http://sobereva.com/265
几篇横测电子激发能计算精度的文章
http://bbs.keinsci.com/forum.php?mod=viewthread&tid=470

关于弱相互作用计算:
乱谈DFT-D
http://sobereva.com/83
大体系弱相互作用计算的解决之道
http://sobereva.com/214
DFT-D色散校正的使用
http://sobereva.com/210

关于NMR计算:
谈谈如何又好又快地计算NMR化学位移
http://sobereva.com/354

其它相关文章:
量子化学研究中切换泛函应当注意的问题
http://sobereva.com/415
Gaussian中非内置的理论方法和泛函的用法
http://sobereva.com/344

再顺便说几句B3LYP。这把老骨头,从1994年到现在已过了20年,依然还是量化界用得最多的泛函,也是多数人,包括笔者在内的默认泛函。尽管有很大程度上是因为大家用习惯了,但关键还是B3LYP整体来说很皮实耐用,鲁棒性好。虽然目前有几百种泛函,不少都能在自己的专长领域秒杀B3LYP,但是极少有哪种泛函综合性能能超过B3LYP,因此流行度、知名度和B3LYP也根本没法比。B3LYP主要有两个关键性软肋 1:范德华作用完全没法描述,但加上DFT-D3(BJ)校正后可完全解决,这个校正也使B3LYP其它方面如热力学数据计算精度上有少量改进 2:电荷转移(CT)激发、里德堡激发计算很烂,但变体CAM-B3LYP也大体解决了这个问题(但注意CAM-B3LYP用在其它场合都很烂)。另外,B3LYP还有些其它相对次要的问题,比如静态相关强的体系和双核金属键描述不很理想(杂化泛函的通病)、对某些过渡金属配合物高估了高自旋态稳定性(将HF成份从20%调低至15%可解决,见JCP,117,4729、TCA,107,48)、某些化学反应计算不好(如F+H2->HF+H没有预测出势垒)等等。但是,泛函无完泛函(除非是传说中的圣杯泛函,就算找到了也根本算不动),不能苛求B3LYP尽善尽美,或者说,B3LYP大致达到了一个最佳平衡,如果为了改进A性质的精度而优化参数,那么B性质的计算精度就会下降。总之,除了范德华主导的弱相互作用和CT/里德堡激发这两个绝对不能用B3LYP的问题以外,碰到一个新问题,若不知道用什么泛函合适同时又懒得去查文献找最适合的泛函,那么大可以先用B3LYP算算试试。

作为B3LYP这种“准万能”泛函的潜在替代品有二,一个是M06-2X,一个是wB97XD,都是2008年诞生的,主流的量化程序如Gaussian也都支持。这两个泛函都有B3LYP的风采,整体都还不错,且不仅没有B3LYP那两根关键性软肋,这软肋反倒还成了它们的长处。M06-2X是通过拟合参数时引入弱相互作用体系使得弱相互作用描述颇不错,而且由于HF成份高达54%,使得算CT、里德堡激发算得不错。wB97XD使用了DFT-D2色散校正使得弱相互作用计算精度不错,又引入了长程校正使得CT、里德堡激发也算得不错。这两个泛函都有个通病,就是计算速度慢,比B3LYP慢不少(不过,B3LYP算得动的,这两个泛函肯定也能算得动)。而且,M06-2X等明尼苏达系列泛函对DFT积分格点精度要求比普通泛函高很多,有时候因为格点不够精细导致几何优化和SCF不容易收敛、势能面上出现皱纹。提高积分格点精度(如Gaussian09里用int=ultrafine。极个别时候需要int=superfine)可解决,但会明显增加耗时。另外,M06-2X是针对主族进行参数化的,对于含过渡金属体系的能量计算问题非常不合适,非要用明尼苏达系列泛函的话应改用同门的M06L,这个比较适合过渡金属。wB97XD和M06-2X一样也不适合过渡金属体系的能量计算。由于wB97XD和M06-2X的HF成分都比B3LYP高得多,故对于静态相关的描述也糟得多,而且会高估HOMO-LUMO gap,对单重态局域价层激发能也产生了偏高的倾向。另外,根据JCTC,6,2115的测试,M06-2X计算非谐振频率极烂,wB97X也不咋地(因此其姊妹wB97XD这方面也应该不怎么样)。由于这些原因,特别是计算速度慢,导致它们还没法真正替代B3LYP成为默认的泛函,只能是在有确切需要的时候才用。M06-2X的一个鲜明优点是有机体系反应能、异构化能、势垒等热力学量有关方面的计算精度颇好,有时候甚至接近双杂化泛函的精度,这也跟拟合参数时引入了这类问题直接相关。算有机体系的热化学性质、结构优化等方面,在非双杂化泛函里,M06-2X是目前几乎最顶尖的。

wB97XD提出后,其中作者之一又提出了wB97X-D3,把色散校正从DFT-D2改成了DFT-D3,也改了些其它参数。wB97X-D3的精度比wB97XD整体有所改善,包括热化学、弱相互作用等方面,只要程序能支持wB97X-D3(ORCA支持,但Gaussian不支持),那么前面说的wB97XD都建议改为wB97X-D3。

M06系列明尼苏达系列泛函提出后,虽然又提出了很多新的明尼苏达系列泛函,但对于分子体系,精度都没有实质性的进步(泛函构建思想不行,就知道拟合来拟合去,显然很快就会陷入瓶颈),有的还明显不如M06系列。2016年提出的MN15和MN15L可以稍微留意下,从Gaussian16开始都支持了。MN15提出的目的是对过渡金属和主族可以描述得比较均衡,但是哪方面都不算特别擅长,主族明显不如M06-2X,过渡金属不如M06L,所以用处其实也不大。MN15L的提出意图是取代M06L的地位,但也没实质性的进步。

实际上,2016年提出的wB97M-V几乎是非双杂化泛函里平均精度最高的(对过渡金属除外),但只有Q-Chem支持,且由于含有VV10色散校正而比较昂贵,故不纳入本文的推荐。



最后,我不得不提一下Hartree-Fock (HF)。居然这年头,在网上答疑时,还时常看到初学者居然使用HF来做计算!用HF在现在来看完全就是在搞笑!这些初学者多半是被一些特别过时,或者作者水平很低劣的文章或书籍给严重误导。除非泛函选用得超级烂,否则DFT的结果绝对比HF强得多!而在Gaussian里,用普通泛函做DFT只比HF贵一点点而已,显然如今没有任何理由用HF。审稿人只要稍微有一丁点最基本的理论计算常识,几乎都不可能让使用HF计算的文章发表。自从DFT兴起之后,特别是90年代初B3LYP提出并立刻流行后,HF根本就无任何用武之地了。


还有些初学者居然还用MP2,并且自我感觉良好,在这里也激烈批评一下。MP2计算耗时显著高于普通泛函,尤其是对于大体系、较大的基组来说,而对于需要计算能量导数的情况耗时更是贼高,还特别耗内存、硬盘。随便选个稍微靠谱的泛函,结果都不比MP2差,如果泛函选好了,结果精度更是吊打MP2,这在《各种后HF方法精度简单横测》(http://sobereva.com/378)就已经清楚地体现出来。而且,双杂化泛函的耗时和MP2是同一档次,精度更是远远甩开MP2几条街。因此,这年头用MP2完全是是费力不讨好,耗时又高精度又烂,很容易糟有经验的审稿人和同行吐槽、批评、鄙视,被认为缺乏计算化学常识。MP2倒也不是一点使用价值也没有,但少得可怜,也就这些:(1)计算氢键很准 (2)计算NMR、(超)极化率这样的响应性质比现有的各种普通泛函都要好 (3)可以借用MP2的数据以比较便宜的方式估算CCSD(T)/大基组的能量(此做法在《各种后HF方法精度简单横测》里已经提到了)。

已有 3 条评论

  1. 乐平

    M06系列的泛函在(谐性和非谐性)振动光谱计算中表现较差, J. Chem. Theory Comput. 2010, 6, 2115–2125 对这个主题进行了较系统的阐述,B2PLYP泛函在此计算中表现突出。

  2. 高斯菜鸟

    Harmonic and Anharmonic Vibrational Frequency Calculations with the Double-Hybrid B2PLYP Method: Analytic Second Derivatives and Benchmark Studies

  3. nkallwar

    2016年之后 K.N Houk JACS灌水paper的标准方法已经由 B3LYP/6-311+G**//6-31G(d) 升级成 M06-2x/def2TZVPP//6-31G(d) 了

评论已关闭