【翻译】量子化学计算中使用的基函数的种类、选择方法及注意事项
前言
在量子化学计算中,通常会在输入文件(input file)的关键词区域指定所采用的计算水平。
诸如 B3LYP/6-31G(d)、MP2/6-31+G(d,p) 之类的表达方式,在论文中也经常可以看到。根据所研究体系的不同,选择合适的基组(基底函数,basis set)是非常关键的,因为这会对计算结果产生显著影响。
如果使用了不恰当的基组,计算结果可能会失去意义。此外,在投稿时可能会被审稿人指出问题,导致必须重新进行全部计算。
本文将总结如何选择最适合的基组。
基组的种类
基组大致可分为以下四类:
- Pople 系(如 3-21G、6-31G 等)
- Huzinaga-Dunning 系(如 D95、D95V 等)
- Roos ANO 系(如 DZ-ANO、TZ-ANO 等)
- Dunning cc-pVNZ 系(如 cc-pVDZ、cc-pVTZ、cc-pVQZ 等)
不同领域或学派对基组的使用偏好也有所不同,但最常见的是Pople 系。在计算速度方面,Pople 系也具有显著优势。
因此,本文将以Pople 系的基组为例进行说明。
如何选择基组
先说结论,进行计算时,建议优先使用 6-31G**。然后根据体系的特性进行如下调整:
- 含阳离子时,添加一个星号
*
(即使用 6-31G**) - 处理阴离子或激发态时,添加一个加号
+
(即使用 6-31+G*) - 含氢化物时,添加两个加号
++
(即使用 6-31++G*)
如果希望进一步提升计算水平,可选用 triple zeta 等级的基组(如 6-311G)。
当与 ECP(有效核势)联用时,如果使用的是 double zeta,推荐使用 LANL2DZ;若是 triple zeta,则建议使用 SDD*,这样更易于保持一致性。
提升基组水平会显著增加计算成本,如下图所示。这需要结合所使用的计算资源和预期 wall time(墙钟时间)综合权衡。
特别是加入扩展函数(diffuse function)后,计算时间可能会急剧上升。

来源:http://www.wavefun.com/support/sp_compfaq/BasisSetFAQ.html
在 Gaussian 的输入文件中,书写 Pople 系基组时,可以使用简写替代方式:(d)
可用 /
表示,(d,p)
可用 **
表示。例如,6-31G/
实际等同于 6-31G(d,p)*
。
有些人可能会疑惑它们之间是否有差别,其实完全可以视为相同!
唯一的例外是,当使用 3-21G
与 3-21G(d)
计算含有亚砜(sulfoxide)或砜(sulfone)的体系时可能会有差异。不过,如今很少有人还使用 3-21 系,主流已经转向 6-31* 系,因此请记住:这两者可以视为没有区别!(出处: 《Introduction to Computational Chemistry》第三版,第201页)
原作者在写输入文件时通常使用 *
的形式,而在论文中则使用 (d)
或 (d,p)
的形式进行描述。
基组过大可能导致错误
在进行 NBO(天然键轨道)计算等操作时,如果基组过大,可能会导致计算失败并报错。此时可以在 log 文件中搜索关键词 “primitive” 来确认所使用的基组规模。
例如:
307 basis functions, 498 primitive gaussians, 307 cartesian basis functions
这表示原始的 Gaussian 基函数有 498 个,压缩后的为 307 个。
根据原作者的经验,如果 Gaussian 原始基函数数量超过 500 个,可能会出现错误并中止计算。(但并非一定会出错)
此时可以通过降低基组等级来规避问题。
在 DFT 计算中,并非基组等级越高越好
关于这一点,可参考下文详解:
举个例子,如果所使用的密度泛函(functional)本身对某反应倾向于高估,而所选基组又倾向于低估,两者误差相互抵消,最终结果反而接近真实值。如果这时再提升基组等级,导致无法抵消泛函的高估效应,计算精度反而会下降。
因此,在进行单点能(single point energy)计算时,一味追求高基组是没有意义的。正确做法是:通过基准测试等方式,选定最合适的基组才是关键。
从事 DFT 计算的读者,也建议同时阅读这篇:【翻译】如何选择密度泛函