计算化学公社

标题: CASSCF迭代中报DIIS矩阵病态是什么问题? [打印本页]

作者
Author:
啊不错的飞过海    时间: 2023-3-19 17:42
标题: CASSCF迭代中报DIIS矩阵病态是什么问题?
在我的一个CASSCF计算任务中,ORCA给出了这样的输出:
...
MACRO-ITERATION  13:
   --- Inactive Energy E0 = -763.97167590 Eh
CI-ITERATION   0:
  -764.655921071   0.000000000000 (    0.00)
   CI-PROBLEM SOLVED
   DENSITIES MADE
   E(CAS)=  -764.655921071 Eh DE=    7.141728e-08
   --- Energy gap subspaces: Ext-Act = 0.096   Act-Int = 0.092
   N(occ)=  1.97890 0.02110
   ||g|| =     1.571557e-03 Max(G)=    2.657148e-04 Rot=66,58
   --- Orbital Update [SuperCI(PT)]
   --- Canonicalize Internal Space
   --- Canonicalize External Space
   --- SX_PT (Skipped TA=0 IT=0): ||X|| =      0.003438581 Max(X)(65,63) =     -0.001857350
Warning: badly conditioned DIIS matrix, 1 vectors out of 13 destroyed
   --- SFit(Active Orbitals)

...

输出文件没有对这个报错作更多解释,并直接接着算了;ORCA的手册中也没有关于这个错误的说明。
请问各位老师,这个报错表明DIIS矩阵出了什么问题?不加处理是否可能引起什么错误?

作者
Author:
wzkchem5    时间: 2023-3-19 18:35
本帖最后由 wzkchem5 于 2023-3-19 11:37 编辑

这只是一个warning,报错原因是DIIS的矢量之间出现接近线性相关的问题,导致DIIS不能直接求解,而必须扔掉一个迭代初期的向量以后才能求解。这个情况的唯一影响在于可能让CASSCF收敛略微变慢,不影响结果的可用性。如果多次出现这个警告,并且CASSCF收敛确实变慢了很多,乃至很难收敛,那么可以考虑改用DIIS以外的算法继续收敛(注意此处“CASSCF收敛确实变慢了很多”的条件不可或缺,也就是如果只看到了多次出现警告,但收敛速度还可以,那么不要仅因为有警告就杀掉任务换收敛算法,否则很可能得不偿失),否则不用管。
具体建议了解一下DIIS的基本原理,以及DIIS数值稳定性问题的成因以及解决方法:https://www.tandfonline.com/doi/full/10.1080/00268970701691611





欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3