高斯收敛问题

更新时间:2024-05-18 19:45:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

高斯收敛问题

首先,我们必须理解收敛是什么意思。在自洽场(SCF)计算中,自洽循环中,首先产生一个轨道占据的初始猜测,

1)然后根据此轨道占据构造电荷密度和哈密顿量。 2)对角化哈密顿量,得到新的轨道能级和占据。 3)产生新的电荷分布和哈密顿量,重复步骤2)

经过一定次数的循环后,某次循环前和循环后的电荷密度差别小于一定的标准,我们称之为收敛。

如果以上过程不能收敛,则gaussian给出convergence failure的警告。 如果SCF计算收敛失败,你首先会采取哪些技巧呢?这里是我们强烈推荐的首选方法。 1 考虑使用更小的基组

由于一定的基组对应于一定精度和速度,所以更换基组并不在所有的情况下都适用。方法是首先用小基组进行计算,由前一个波函得到用于大基组计算的初始猜测(Guess=Read自动进行)。

2 增加最大循环步数

Gaussian默认的最大循环步数为64 (SCF=DM或SCF=QC方法则为512),如果循环次数超过这个数目则会汇报convergence failure。在一定的情况下,不收敛的原因仅仅是因为最大循环步数不够。可以通过设置maxcyc来增大最大循环步数。更多的SCF迭代(SCF(MaxCycle=N),其中N是迭代数)。这很少有帮助,但值得一试。

3 放宽收敛标准

如果接近SCF但未达到,收敛标准就会放松或者忽略收敛标准。这通常用于

不是在初始猜测而是在平衡结构收敛的几何优化。SCF=Sleazy放松收敛标准,Conver选项给出更多的控制。在Gaussian中设置收敛标准的命令行是Conv=8 表示10-8,你可以将这个标准降低,比如改为10-5等等。微调结构是比较有效的方法,能量收敛标准不宜太低,最好不低于10-7. 4

尝试改变初始构型

首先略微减小键长,接下来略微增加键长,接下来再对结构作一点改变。 5 尝试能级移动Level shifting (SCF=Vshift)

如果不收敛的原因是波函数的震荡行为,通常是因为在相近的能量上的泰的混合。对于这种情况,我们可以采用level shifting的方法。Level shifting的含义是人工的升高非占据轨道的能级,以防止和最高占据轨道之间的混合,以达到收敛的目的。在Gaussian中此方法的关键词为SCF=Vshift

6 使用强制的收敛方法SCF=QC

SCF=QC通常最佳,但在极少数情况下SCF=DM更快。此关键字将大大增加计算时间,但是收敛的机会更大。不要忘记给计算额外增加一千个左右的迭代。应当测试这个方法获得的波函,保证它最小,并且正好不是稳定点(使用Stable关键字)。

7 对开壳层体系,尝试收敛到同一分子的闭壳层离子,接下来用作开壳层计算的初始猜测。添加电子可以给出更合理的虚轨道,但是作为普遍的经验规则,阳离子比阴离子更容易收敛。选项Guess=Read定义初始猜测从Gaussian计算生成的checkpoint文件中读取。

8 一些程序通过减小积分精度加速SCF。对于使用弥散函数,长程作用或者低能量激发态的体

系,必须使用高积分精度:SCF=NoVarAcc。 9 改变模型或方法

可以考虑改变模型方法。比较常见的方法有HF,GVB,MCSCF,CASSCF,MPn等。改变模型方法通常也会收敛性质。通常,精度更高的方法更难收敛。精度比较低的方法产生的计算结果可以作为高精度计算的初始猜测。考虑使用不同理论级别的计算。这并不总是实用的,但除此之外,增加迭代数量总是使得计算时间和使用更高理论级别差不多。

10关闭

DIIS

外推(SCF=NoDIIS)。同时进行更多的迭代

(SCF=(MaxCycle=N)。

11 试着改用DIIS之外其它方法(SCF=SD或SCF=SSD)。 Gaussian不收敛的可能原因及对策:

1 由于体系有很多能量相近的能级,导致计算不收敛。

如果计算中采用的是Hartree-Fock方法或者其他的混合形式的交换相关势(如B3LYP),则可以尝试一下的方法进行改进。

scf=(noincfock,conver=11,maxcyc=1025) iop(5/22=20)

用以上的命令行将强制Gaussian采用EDIIS的算法。此算法计算量更大,但是更加稳定。在命令行里也增加了最大循环数,以增加收敛的到基态的可能性。

2.检查是否有初始文件错误 常见初级错误: a. 自旋多重度错误 b. 变量赋值为整数 c. 变量没有赋值或多重赋值

d. 键角小于等于0度,大于等于180度 e. 分子描述后面没有空行

f. 二面角判断错误,造成两个原子距离过近

g. 分子描述一行内两次参考同一原子,或参考原子共线 3. SCF(自洽场)不收敛

则一般是L502错误,省却情况做64个cycle迭代(G03缺省128 cycles) a. 修改坐标,使之合理 b. 改变初始猜

Guess=Huckel或其他的,看Guess关键词。

c. 增加叠代次数 SCFCYC=N (对小分子作计算时最好不要增加,很可能结构不合理) d. iop(5/13=1)这样忽略不收敛,继续往下做。

4.分子对称性改变

a. 修改坐标,强制高对称性或放松对称性

b. 给出精确的、对称性确定的角度和二面角。如CH4的角度给到109.47122 c. 放松对称性判据 Symm=loose

d. 不做对称性检查iop(2/16=1) (最好加这个选项) iop(2/16=2) 则保持新的对称性来计算 5. Opt时收敛的问题 a. 修改坐标,使之合理 b. 增加叠代次数optcyc=N

6.优化过渡态,若势能面太平缓,则不好找到。

iop(1/8=10) 默认30(下一个结构和该结构的差别0.3?),可改成10。如果每一步都要用到小的步长,应该加opt(notrustupdate)

7.在CI(组态)方法中

如QCISD(T),CCSD(T),CID方法中,省却最大循环50,若出错(L913错误) 解决方法:#P QCISD(maxcyc=N) 注:N≤512 8.优化过渡态 opt=TS (给出过渡态) opt=qst2 (给出反应物和产物) opt=qst3 (给出反应物和产物和过渡态)

a.用G03时的出错 opt=ts必须加FC (force constant) 写法:opt=(TS, calcFc)

or opt=(TS,calchffc)计算HF力常数,对QCISD,CCSD等方法用; or opt=(TS,modRedundant) (最好写这个)

b. 如果计算采用QCISD计算(不好计算FC) 则写为QCISD opt=(TS, calcHFFC) (用HF计算FC) 9. 无法写大的Scratch文件RWF

a. 劈裂RWF文件 %rwf=loc1,size1,loc2,size2,……..,locN,-1 b. 改变计算方法 MP2=Direct可以少占硬盘空间

c. 限制最大硬盘maxdisk=N GB,****MB,有些系统写2GB会出错,可以写2000MB

10. FOPT出错原因是变量数与分子自由度数不相等。可用POPT 或直接

用OPT

11. 优化过渡态只能做一个STEP 原因是负本征数目不对添加iop(1/11)=1或者noeigentest (eigentest是表示优化过渡态检测分子振动的本征值,过渡态只有一个负值,但优化的时候往往出现两个或者更多的情况,默认的是如果出现多于一个的情况就停止优化计算,这往往时不必要的,noeigentest表示优化时不坐此检测,实际上优化过渡态的时候出现两个三个很正常的,只是第一个一般负的很大,接着的比较小,不会影响过渡态的搜寻,当然有时候需要自己判断是不是接近真实的过渡态。其实经验上也是过渡态的本征虚频越小,相对越难找。)

对于 (L502, L508, L9999)出错的对策

对于一个优化计算,它的过程是先做一个SCF计算,得到这个构型下的能量,然后优化构型,再做SCF,然后再优化构型。。。因此,会有两种不收敛的情况:一是在某一步的SCF不收敛(L502错误),或者构型优化没有找到最后结果(L9999错误)。

预备知识:计算时保存chk文件,可以在后续计算中使用guess=read读初始猜测.

对于SCF不收敛,通常有以下的解决方法:

1. 使用小基组,或低级算法计算,得到scf收敛的波函数,用guess=read读初始波函数。

2. 使用scf=qc,这个计算会慢,而且需要用stable关键字来测试结果是否波函数稳定。如果这个还不收敛,会提示L508错误。 3. 改变键长,一般是缩小一点,有时会有用。

4. 计算相同体系的其他电子态,比如相应的阴离子、阳离子体系或单重态体系,得到的收敛波函数作为初始猜测进行计算。

对于优化不收敛,即L9999错误,实际上是在规定的步数内没有完成优化,即还没有找到极小值点。(或者对于过渡态优化,还没有找到过渡态)

这有几种可能性:

1. 看一下能量的收敛的情况,可能正在单调减小,眼看有收敛的趋势,这样的情况下,只要加大循环的步数(opt(maxcycle=200)),可能就可以解决问题了。

2. 加大循环步数还不能解决的(循环步数有人说超过200再不收敛,再加也不会有用了,这虽然不一定绝对正确,但200步应该也差不多了),有两种可能。一是查看能量,发现能量在振荡了,且变化已经很小了,这时可能重新算一下,或者构型稍微变一下,继续优化,就可以得到收敛的结果(当然也有麻烦的,看运气和经验了);二是构型变化太大,和你预计的差别过大,这很可能是你的初始构型太差了,优化不知道到哪里去了,这时最好检查一下初始构型,再从头优化。

3. 对于L9999快达到收敛时,考虑减小优化步长有时对于能量振荡的情况也是有用的,opt(maxstep=1).(flyingheart )

http://www.ccl.net/chemistry/resources/messages/2002/10/16.005-dir/index.html

Hello,

here is the summary of all the answers I got for my problem. Thanks (in

alphabetically order) to Laurence Cuffe, Kerwin Dobbs, Paul Kiprof, Liviu

Mirica, Cory Pye and Dave Shobe.

The problem was solved by increasing the number of SCF cycles, as suggested by many. This seems very often necessary with transition metals.

The two other suggestions (using first a small basis set before switching

to the larger, or turning off \Thanks again, R.Herrmann.

The original question:

---------------------------------------------------------------------------- Hello,

I recently tried to calculate the NMR chemical shifts of VOCl3 with Gaussian 98: --------------------- #B3LYP/6-31G* SP NMR VOCl3 0 1 cl cl 1 clcl2

cl 2 clcl3 1 clclcl3 o 3 ocl4 2 oclcl4 1 dih4 v 3 vcl5 2 vclcl5 1 dih5 clcl3 3.506243 clclcl3 59.999 ocl4 2.938735 oclcl4 53.376 dih4 -64.586 vcl5 2.118170 vclcl5 34.144 dih5 -31.640 -----------------------

The result (even with several variations in the input) is always an error termination when trying the \(convergence criterion not met). The structure was optimized with GAMESS.

Any suggestion what I could do is wellcome - thank you! ------------------------------

108 basis functions 288 primitive gaussians 41 alpha electrons 41 beta electrons

nuclear repulsion energy 561.9817715949 Hartrees. One-electron integrals computed using PRISM.

NBasis= 108 RedAO= T NBF= 108 NBsUse= 108 1.00D-04 NBFU= 108 Projected Huckel Guess.

Requested convergence on RMS density matrix=1.00D-08 within 64 cycles. Requested convergence on MAX density matrix=1.00D-06.

Virtual orbitals will be shifted by 0.200 hartree. Restarting incremental Fock formation. Restarting incremental Fock formation. Restarting incremental Fock formation. >>>>>>>>>> Convergence criterion not met.

SCF Done: E(RB+HF-LYP) = -2359.59549049 A.U. after 65 cycles Convg = 0.5851D-03 -V/T = 1.9657

S**2 = 0.0000

Convergence failure -- run terminated.

Error termination via Lnk1e in /usr/local/g98_a7/l502.exe. Job cpu time: 0 days 0 hours 16 minutes 33.0 seconds.

File lengths (MBytes): RWF= 14 Int= 0 D2E= 0 Chk= 1 Scr= --------------------------------------------------------------------------

The answers:

1. From: Kerwin D Dobbs To: \Subject: Re: CCL:G98: VOCl3 problem: convergence criterion not met

Dr. Herrmann,

Try turning off the \#B3LYP/6-31G* SP NMR to 1

# B3LYP/6-31G* SP NMR IOP(5/10=-1)

When there is a TM in the molecule, G98 automatically turns

on \addition to your line turns off \Give it a try and see what happens.

Kerwin

------------------------------------------------------------------ 2. From: Cory Pye To: Rudolf Herrmann

Subject: Re: CCL:G98: VOCl3 problem: convergence criterion not met Hello,

your SCF is not converging. Try running, at first, HF/STO-3G. If it works, then

Then try B3LYP/6-31G* afterwards with guess=read in the input. It usually works like a charm for me, I always use something like this.

-Cory

---------------------------------------------------------------------- 3. From: LiviuMihailMirica

To: Rudolf Herrmann

Subject: Re: CCL:G98: VOCl3 problem: convergence criterion not met Try adding SCFcyc=1000 in your command lines. This will increase the # of SCF cycles up to the desired number (1000 in this case). that should be enough for your system.

------------------------------------------------------------------------ 4. From: Laurence Cuffe To: Rudolf Herrmann

Subject: Re: CCL:G98: VOCl3 problem: convergence criterion not met And it should run these keywords change the default SCF method and then increase the number of SCF cycles allowed. I got the job to complete in about 50 minutes running it in core on a linux box with a memory limit of 600MB but it this doesn't make sense to

you don't worry about it. Try using the modified line above and if there are any problems don't hesitate to come back to me.

All the best Laurence Cuffe

------------------------------------------------------------------------- 5. From: Paul Kiprof To: herrmann-: at :-itqb.unl.pt Subject: VOCL3 Dear Dr. Herrmann,

I would add to the input SCF(direct,qc,maxcycle=1000)

This will increase the number of convergence cycles and hopefully converge the calculation. I always do that when I have transition metal compounds.

Best wishes, Paul Kiprof

--------------------------------------------------------------------------- 6. From: \To: 'Rudolf Herrmann'

Subject: RE: G98: VOCl3 problem: convergence criterion not met The standard 64 SCF \

procedure) is rarely enough for transition metal compounds, even closed shell ones like VOCl3. Read the section in the Gaussian manual describing the \

keyword, and you will find various options which may improve the convergence. A lot of it is trial and error, with these different scf options. The simplest is scf(maxcyc=999) which increases the number of cycles/iterations to 999 before the program \

error message. Scf=qc and scf(vshift=###) have also been useful in my

experience.

More advice: once you get a good wavefunction, make a backup of the

checkpoint file, so if the wave function becomes corrupted in subsequent

calculations you can always go back to it.

---------------------------------------------------------------------------- --

Dr. Rudolf Herrmann

Instituto de TecnologiaQuimica e Biologica (ITQB) Av. da Republica, EAN, Apt. 127 P-2781-901 Oeiras

e-mail: herrmann-: at :-itqb.unl.pt gaussian学习笔记(一)

默认分类 2008-11-17 17:41:53 阅读124 评论0 字号:大中小订阅 --------------用Gaussian计算不收敛的问题

问题一:

Problem detected with inexpensive integrals. Switching to full accuracy and repeating last cycle. Cycle 2 Pass 1 IDiag 1:

Warning! Spurious integrated density:

NE= 188 NElCor= 0 Integral= -76.06821 Tolerance=1.00D-03 Consistency failure #2 in CalDSu.

Error termination via Lnk1e in /home/gaussian/g98/l502.exe. Job cpu time: 1 days 3 hours 21 minutes 30.2 seconds.

File lengths (MBytes): RWF= 118 Int= 0 D2E= 0 Chk= 17 Scr= 1 解决:(from ccl)

As far as I know it's a dft-related error. Gaussian checks the charge resulting from the integration of the density to the number of electrons,

and in case of a large difference prints this eror message. Try a denser grid with the \

可是我采用integral(Grid=ultrafine )网格仍是出现以下错误信息: Raffenetti 2 integral format.

Two-electron integral symmetry is turned off. 306 basis functions 778 primitive gaussians 51 alpha electrons 51 beta electrons

nuclear repulsion energy 865.0704012775 Hartrees. One-electron integrals computed using PRISM. 1 Symmetry operations used in ECPInt.

ECPInt: NShTT= 17391 NPrTT= 123061 LenC2= 14761 LenP2D= 57336. LDataN: DoStor=F MaxTD1= 3 Len= 28

LDataN: DoStor=T MaxTD1= 3 Len= 28 NBasis= 306 RedAO= T NBF= 306 NBsUse= 306 1.00D-04 NBFU= 306

Projected Huckel Guess. of initial guess= 0.0000

Requested convergence on RMS density matrix=1.00D-06 within 800 cycles. Requested convergence on MAX density matrix=1.00D-04.

Integral accuracy reduced to 1.0D-05 until final iterations. Warning! Spurious integrated density:

NE= 102 NElCor= 0 Integral= 102.20958 Tolerance=1.00D-03 Consistency failure #2 in CalDSu.

Error termination via Lnk1e in /usr/people/gaussian/g98/l502.exe. Job cpu time: 0 days 0 hours 13 minutes 24.7 seconds. File lengths (MBytes): RWF= 90 Int= 0 D2E= 0 Chk= 2 Scr= 1 请问各位大侠有没有什么解决方法? 问题二:

>>>>>>>>>> Convergence criterion not met.

SCF Done: E(UB-PW91) = -1306.37542885 A.U. after 801 cycles Convg = 0.1221D+01 -V/T = 2.0190 S**2 = 0.0000 KE=

1.281978320748D+03

PE=-8.302694580633D+03

EE=

3.210822249139D+03 Annihilation of the first spin contaminant:

S**2 before annihilation 0.0000, after 0.0000 Convergence failure -- run terminated.

Error termination via Lnk1e in /usr/people/gaussian/g98/l502.exe.

Job cpu time: 2 days 2 hours 6 minutes 40.2 seconds.

File lengths (MBytes): RWF= 97 Int= 0 D2E= 0 Chk= 19 Scr= 1 一般而言,解决收敛的问题有以下几种,

第一,波函数初猜,不稳定的波函数,积分难以收敛是肯定的,解决方案是作stable= opt,做完以后,在此基础上从check文件中读入波函数。

--link1-- %chk

#p hf opt guess=read geom=check

第二,过渡金属原子会出现d轨道分裂问题,如果分裂能不够大,电子显然会在高能轨道 和低能轨道之间跳动,能量会上下波动,难以收敛,

解决方案是加入vshift关键词

第三,氢键,过渡金属,默认的129cycle所难以达到收敛,所以加大scf(cyc=500)可能可 以解决问题。

第四,初始结构一直容易被人所忽略,所以很多方法没有解决问题的时候,还是希望能 仔细检查一遍结构

第五,scf的时候,检查一下力常数也是好的,通常的解决方案作一下calcfc 对于第二个收敛的问题,我正在用SCF(vshift,QC) 尝试,得过几天才知道行不行。至少我已尝试了将内坐标改为直角坐标;加大循环次数(800仍不收敛)从check文件中读入,这些都不行。

对于第一个问题,我是用massage考虑分子间相互作用,可是好多都出现第一个问题,根本不让你算,用了integral(grid=ultrafine) 还是不行,输入文件如下:(这是一个不含金属原子的,有好几个含金属的输入,也是出现这个情

况。

芝麻582:

1. 在Guess关键字中使用Core,Huckel或Mix选项,试验不同的初始猜测。 2. 对开壳层体系,尝试收敛到同一分子的闭壳层离子,接下来用作开壳层计算的初始猜测。添加电子可以给出更合理的虚轨道,但是作为普遍的经验规则,阳离子比阴离子更容易收敛。选项Guess=Read定义初始猜测从Gaussian计算生成的checkpoint文件中读取。 3. 另一个初始猜测方法是首先用小基组进行计算,由前一个波函得到用于大基组计算的初始猜测(Guess=Read自动进行)。 4. 尝试能级移动(SCF=Vshift)。

5. 如果接近SCF但未达到,收敛标准就会放松或者忽略收敛标准。这通常用于不是在初始猜测而是在平衡结构收敛的几何优化。SCF=Sleazy 放松收敛标准,Conver选项给出更

多的控制。.

6. 一些程序通过减小积分精度加速SCF。对于使用弥散函数,长程作用或者低能量激发态的体系,必须使用高积分精度:SCF=NoVarAcc。

7. 尝试改变结构。首先略微减小键长,接下来略微增加键长,接下来再对结构作一点改变。

8. 考虑使用不同的基组。 9. 考虑使用不同理论级别的计算。这并不总是实用的,但除此之外,增加迭代数量总是使得计算时间和使用更高理论级别差不多。 10. 关闭

DIIS

外推(SCF=NoDIIS)。同时进行更多的迭代

( SCF=(MaxCycle=N) )。

11. 更多的SCF迭代( SCF(MaxCycle=N),其中N是迭代数)。这很少有帮

助,但值得一试。

12. 使用强制的收敛方法。SCF=QC通常最佳,但在极少数情况下SCF=DM 更快。不要忘记给计算额外增加一千个左右的迭代。应当测试这个方法获得的波函,保证它最小,并且正好不是稳定点(使用Stable关键字)。

13. 试着改用DIIS之外其它方法(SCF=SD或SCF=SSD)。

L9999错误,实际上是在规定的步数内没有完成优化,即还没有找到极小值点。(或者对于过渡态优化,还没有找到过渡态)

这有几种可能性:

1。看一下能量的收敛的情况,可能正在单调减小,眼看有收敛的趋势,这样的情况下,只要加大循环的步数(opt(maxcycle=200)),可能就可以解决问题了。

2。加大循环步数还不能解决的(循环步数有人说超过200再不收敛,再加也不会有用了,这虽然不一定绝对正确,但200步应该也差不多了),有两种可能。一是查看能量,发现能量在振荡了,且变化已经很小了,这时可能重新算一下,或者构型稍微变一下,继续优化,就可以得到收敛的结果(当然也有麻烦的,看运气和经验了);二是构型变化太大,和你预计的差别过大,这很可能是你的初始构型太差了,优化不知道到哪里去了,这时最好检查一下初始构型,再从头优化。

一个建议是,对于大体系,难收敛体系,先用小基组,低精度算法优化一下,以得到较高的初始构型,再用高精度的计算接着算。如果前面的方法保留了chk文件,重新计算时需要使用geom=allcheck读入构型(就不必麻烦地写构型了), guess=read(读入初始波函数,可以加快第一步SCF收敛)。

确实是不收敛!有几种方法参考:1、添加关键词scf=qc;2、添加关键词scf=vshift或scf=vshift=n(n取1~200),有时候会成功收敛,但成功率不高,不常用;3、改变初始结构(楼上的已说,常用);4、改用不同的方法(常用)5、增加计算步长(也不常用) 我就用过这些,仅供参考!希望能有帮助.

使用了SCF=QC后,计算量要远远超过同等级的非QC计算。

另外,QC计算得到的结果还需要进行波函数稳定性分析,这也是为什么不推荐使用QC的原因之一,实在要用,可以参照我前面的帖子用scf=(maxcycle=n,xqc), n是一个你认为合适的数值,推荐不要超过100,这样能节省绝大部分的计算量,因为这个参数只在必要时使用qc。

本文来源:https://www.bwwdw.com/article/gj17.html

Top