24小时热门版块排行榜    

查看: 3638  |  回复: 1

小范范1989

木虫 (著名写手)

[交流] 高斯计算不收敛-转帖已有1人参与

我优化激发态的时候,遇到不收敛,查阅,看到这个帖子不错,我就复制过来,自己收藏一下,就是这样子
http://blog.sina.com.cn/s/blog_89efc1b101012363.html

首先,我们必须理解收敛是什么意思。在自洽场(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选项给出更多的控制。

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)。
回复此楼

» 收录本帖的淘帖专辑推荐

量化计算

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关商家推荐: (我也要在这里推广)

» 本主题相关价值贴推荐,对您同样有帮助:

It doesn't matter how slow you are, as long as you're determined to get there, you'll get there.
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

madong890119

木虫 (小有名气)

送红花一朵
相关版块跳转 我要订阅楼主 小范范1989 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见