在量化计算中经常遇到收敛失败的情况,可进一步分为SCF不收敛和几何优化不收敛两种情形。SCF自洽场叠代不收敛,是指对指定结构的波函数不断优化、寻找能量最低点的波函数时出现的收敛失败,而几何优化不收敛是在结构优化过程中出现的收敛错误。网上关于量化计算收敛失败的讨论贴较多,本文汇总了网络资料和个人的使用经验,以Gaussian16为例,详细地列出了这类报错的可能解决办法。在Gaussian16中,默认的SCF程序使用EDIIS和CDIIS的组合,没有使用阻尼或费米展宽。默认是SCF=Tight。
1. SCF自洽场收敛失败
在几何构型优化过程中,每一步构型优化都包含很多次的SCF迭代计算,每次SCF迭代计算都会产生一个轨道占据的初始猜测,然后进行以下计算:
(a)利用轨道占据构造电荷密度和哈密顿量
(b)对角化哈密顿量,产生新的轨道能级和占据
(c)计算新的电荷分布和哈密顿量,重复步骤(b)
经过N次迭代后,某次迭代前和迭代后的电荷密度差别小于一定的标准,即达到收敛标准。如果以上过程不收敛,那么Gaussian给出convergence failure的警告。
一、SCF收敛失败的解决办法
1. 增加最大循环步数
设置maxcyc来增大最大循环步数,N是迭代数,设置为SCF(MaxCycle=N),N一般不超过512。
2. 放宽收敛标准
如果接近SCF但未达到,收敛标准就会放松或者忽略收敛标准,SCF=Sleazy,Conver选项给出更多的控制,默认N=8。
3. 采用小基组获得初始猜测
尝试采用小基组获得轨道占据的初始猜测,然后开展更高精度和更大基组的理论计算,用guess=read读取chk文件。
4. 尝试改变初始构型
通过略调键长和键角等方式,稍微改变几何结构的对称性。
5. 移动轨道能级
SCF=(Vshift=N),N=100是默认值。N=-1相当于NoVShift。当波函数震荡导致不收敛时,通常是因为能量相近的能级的混合。通过level shifting可人为升高非占据轨道的能级以达到收敛的目的。
6. 强制收敛方法
常用SCF=QC方法,但SCF=XQC更节省计算资源。后者相当于关键字MaxConventional=32。SCF=(maxcycle=30,xqc),即SCF正常计算30个循环不收敛时才进行昂贵的QC计算。对于含金属体系几乎是必选项,使用Stable关键字可测试由此关键字获得的波函数的稳定性。
7 将闭壳层体系的轨道占据作为同一分子体系的开壳层计算的初始猜测。
8 对于使用弥散函数,长程作用或者低能量激发态的体系,必须使用高积分精度:SCF=NoVarAcc。相比之下,VarAcc在直接SCF计算早期使用中等积分精度,随后转向全精度计算。
9 将低精度模型的计算结果作为高精度模型计算的初始猜测。改变模型有时会收敛,而精度更高的方法通常更难收敛,常用HF、DFT、MPn、CCSD()等模型方法。
10. 关闭DIIS外推(SCF=NoDIIS),同时进行更多的SCF迭代(SCF=(MaxCycle=N))。
11 在分子有对称性的情况下,使用SCF=dsymm关键词来强制密度对称,有时可以收敛。
12. 可以在输入文件的“#”开头行的 #号后面加字母"p"来输出更多的信息,其中就有自洽场叠代的信息,详细分析原因。
13. 对于收敛特别困难的体系,可以使用多个关键字的组合策略,比如我个人经常处理的体系含重金属元素且原子数众多,所以经常使用下面的组合策略,scf=(maxcycle=520,xqc,vshift,novaracc)。
二、结构优化收敛失败的常用解决办法
在几何优化过程中,总共有四个收敛标准。如果四个收敛标准中前两项早就收敛了,后两项尤其是第三项不收敛,这需要判断原因。如果能量持续下降,则继续优化;如果能量出现震荡,说明势能面过于平坦。常用的策略如下:
1. 如果“Number of steps exceeded, NStep=”,同时grep查看能量发现呈持续下降趋势,可以通过过加大优化的循环次数来解决问题。使用关键词opt=(maxcycle=n)。
2. 如果能量震荡,可以使用的关键字包括:
opt=(maxstep=n),缩小最大步长,默认的n= 30
opt=gdiis,很多时候可以很快收敛
opt=calcfc,在几何优化的第一步计算力常数
opt=calcall,在几何优化计算的每一步都计算力常数
以上内容总结了Gaussian收敛错误的常用解决方法,希望对大家有帮助!
















