|
本帖最后由 beefly 于 2019-8-1 02:02 编辑
像Gaussian、Gamess、Orca这类程序处理general contraction类型的基组是非常低效的。比如用HF/ANO-RCC-VDZ算At2的单点能,Molpro、Molcas几分钟就算完了,而前面的几个程序要算几个小时(甚至可能超过一天),甚至还不如用非收缩形式快。Turbomole、Orca开发的def-、def2-、sarc、x2c-等类型基组其实就是一种折衷的办法,仅对1s、2p、3d等最低芯层比较重要的几个基函数(一般小于10)做了收缩,其余的大部分基函数都是非收缩的,这样不仅效率比较快(虽然不如Pople型基组),而且半芯层、价层的精度比较高。
Gaussian使用非收缩基组的一种办法是把基组手工编辑为非收缩形式以后,通过gen关键词读入。另一个办法是设置Int(UnConAO),原始的收缩基组既可以来自内部基组库,也可以通过gen读入。但是UnConAO存在一些问题。
在Gaussian09比较早的几个版本里,UnConAO仅能用于Pople型基组。general contraction基组有大量重复的高斯指数,UnConAO并没有删除它们,导致基组有严重的线性依赖。
在Gaussian09晚期的版本和Gaussian16里,UnConAO仅能保证general contraction基组非收缩后的形式正确,但基函数在程序内部的存储并未优化,所以仍然非常慢。还是前面用HF/ANO-RCC-VDZ算At2单点的例子,用Gaussian16.b,单节点8核。作为极端的测试,这里做了二分量相对论DKH4(ghf/gen int=dkhso),这种情况下程序自动关闭对称性。
- Gen读入收缩基组:将近1小时。
- Gen读入收缩基组+UnConAO:算完单电子积分之后没反应,等了半小时后强行终止。
- Gen读入非收缩基组:3分钟。
|
评分 Rate
-
查看全部评分 View all ratings
|