gaussian中自恰场方程不能收敛的问题

发布时间:2024-05-23 23:31 发布:上海旅游网

问题描述:

请教达人,是否遇到过类似问题:g03在解hf方程时无论怎么增加scf关键字的选项maxcycle来增大迭代次数都不能收敛,而且分子构型类似的一定范围里都是如此。

这种问题如何解决?如果能让方程收敛,请介绍一下方法;如果不能,最好能分析一下原因。

PS:如果问题解决得好,我还会加倍追分
不是优化失败,不涉及优化的问题,只是解某一构型的hf方程不能收敛,我只是想知道能不能或者如何让方程收敛

问题解答:

关于收敛问题 (L502, L508, L9999)

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

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

对于SCF不收敛,通常有以下的解决方法:
1. 使用小基组,或低级算法计算,得到scf收敛的波函数,用guess=read读初始波函数。
2. 使用scf=qc,这个计算会慢,而且需要用stable关键字来测试结果是否波函数稳定。如果这个还不收敛,会提示L508错误。
3. 改变键长,一般是缩小一点,有时会有用。
4. 计算相同体系的其他电子态,比如相应的阴离子、阳离子体系或单重态体系,得到的收敛波函数作为初始猜测进行计算。
5. 待补充.

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

这有几种可能性:
1. 看一下能量的收敛的情况,可能正在单调减小,眼看有收敛的趋势,这样的情况下,只要加大循环的步数(opt(maxcycle=200)),可能就可以解决问题了。
2. 加大循环步数还不能解决的(循环步数有人说超过200再不收敛,再加也不会有用了,这虽然不一定绝对正确,但200步应该也差不多了),有两种可能。一是查看能量,发现能量在振荡了,且变化已经很小了,这时可能重新算一下,或者构型稍微变一下,继续优化,就可以得到收敛的结果(当然也有麻烦的,看运气和经验了);二是构型变化太大,和你预计的差别过大,这很可能是你的初始构型太差了,优化不知道到哪里去了,这时最好检查一下初始构型,再从头优化。
3. 对于L9999快达到收敛时,考虑减小优化步长有时对于能量振荡的情况也是有用的,opt(maxstep=1).(flyingheart )

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

嗯,不错,楼上说的很有道理。
希望以后多和你交流~~~~~

你提的问题很宽泛,不知道什么体系,也不知道最后的优化结果是什么比如:link 9999之类的,不好判断原因的。建议先用分子动力学或者宽泛方法的优化一下,而后再在这个结果的基础上用较精确的方法去优化,如果实在什么方法都优化不了,那么这个构型可能 离基态构型相去甚远,也可能选择的基组不适合这个体系,你可以尝试换个基组,再者,如果身边还有其他的软件,比如adf。dmol,vasp,win2k之类的软件,可以把这个构型输入到他们上算一下,如果都不收敛,或者构型扭曲的非常厉害,那就说明这个构型不好。
另外,这些问题在百度上问,不如去论坛,国内讨论gaussian的最好的论坛是厦门大学理论化学论坛,这上面都是专业量子化学的老师同学,你可以试试。
希望你的问题早日解决

热点新闻