计算化学公社

标题: ORCA里面的SOSCF和TRAH有什么区别? [打印本页]

作者
Author:
hebrewsnabla    时间: 2022-6-6 01:23
标题: ORCA里面的SOSCF和TRAH有什么区别?
阅读了手册和TRAH的文献(Helmich-Paris 2021)、SOSCF的参考文献(Neese 2000)之后,比较显然的区别是
1. TRAH求解Augmented Hessian方程,SOSCF求解newton方程。
2. TRAH有trust region,SOSCF可能没有?
我不确定的区别是
3. 产生orbital Hessian初猜的方式不同?SOSCF用的是Hessian对角元,TRAH似乎也是Hessian对角元不过我不确定。
4. 更新orbital Hessian(或其inverse)的方式不同?SOSCF用的是BFGS,TRAH应该是基于ao-Fock和轨道系数,用轨道旋转矩阵更新sigma vector。
5. SOSCF似乎没有micro iteration的概念?


(以上提到的SOSCF均指ORCA的关键词CNVSOSCF,并非方法意义上的SOSCF)

另外的困惑是,我觉得TRAH也属于一种SOSCF,但是orca手册的写法好像搞得两者没什么关系一样……
以及,Helmich-Paris 2021这篇文章没有比较TRAH和SOSCF也比较令人困惑。

扩展的问题是,ORCA开发者新推出的TRAH-CASSCF和ORCA现有的CASSCF solver中的SOSCF、NR有什么区别?似乎TRAH和NR都是AH但是前者是1-step的。



作者
Author:
wzkchem5    时间: 2022-6-6 03:04
最大的区别是TRAH每次都用精确的orbital Hessian来更新轨道,而SOSCF是用BFGS迭代构建的近似Hessian。当然没有办法在合理的时间内求出完整的精确orbital Hessian,所以TRAH的做法是用Davidson方法直接计算inverse orbital Hessian与orbital gradient的乘积。
从字面上讲,TRAH确实是一种second-order SCF,但是鉴于以上的原因,TRAH和orca里的SOSCF差别还是挺大的,所以不比较也正常。
和NR相比,TRAH的trust radius的更新方式比较合理,此外NR好像忽略了Hessian里面轨道系数和组态系数的cross term,而TRAH是考虑了这些cross term的
作者
Author:
hebrewsnabla    时间: 2022-6-6 12:42
本帖最后由 hebrewsnabla 于 2022-6-6 12:44 编辑
wzkchem5 发表于 2022-6-6 03:04
最大的区别是TRAH每次都用精确的orbital Hessian来更新轨道,而SOSCF是用BFGS迭代构建的近似Hessian。当然 ...

我的意思是我比较希望看到他们证明DIIS+TRAH比DIIS+SOSCF好,而不是只展示DIIS+TRAH比只用DIIS或KDIIS好,毕竟原有的DIIS+SOSCF也挺稳的,如果TRAH不能把它比下去,引入TRAH的意义(或者说服用户接受TRAH的理由)好像就不太足(虽然TRAH在各种方面都更加现代)。

此外NR好像忽略了Hessian里面轨道系数和组态系数的cross term,而TRAH是考虑了这些cross term的

对,这个应该就是2-step和1-step的区别。
作者
Author:
wzkchem5    时间: 2022-6-6 15:39
hebrewsnabla 发表于 2022-6-6 05:42
我的意思是我比较希望看到他们证明DIIS+TRAH比DIIS+SOSCF好,而不是只展示DIIS+TRAH比只用DIIS或KDIIS好 ...

DIIS+TRAH的优点是(1)收敛概率高,(2)收敛到稳定解的概率高,(3)当存在多个稳定解时,收敛到其中能量最低解的概率高。但收敛所需迭代次数并不少。DIIS+SOSCF前三条都没有显著优势,只是迭代次数少。所以还是我说的,TRAH和SOSCF是非常不一样的两个方法,文章没有比较这两者也是正常的
作者
Author:
hebrewsnabla    时间: 2022-6-6 15:49
wzkchem5 发表于 2022-6-6 15:39
DIIS+TRAH的优点是(1)收敛概率高,(2)收敛到稳定解的概率高,(3)当存在多个稳定解时,收敛到其中能 ...

确实如此。
作者
Author:
Freeman    时间: 2022-11-1 19:17
感觉“SOSCF(二阶SCF)”这个名称有误导性。一些软件支持的“SOSCF”不是真正的二阶方法,因为其inverse hessian是bfgs或l-bfgs迭代出来的近似矩阵。原文“Approximate second order method for orbital optimization of SCF and MCSCF wavefunctions”标题已经指出该“二阶”方法是近似的(approximate),但不知道为什么一些软件把“approximate”漏掉了,直接写SOSCF,让人把它和真正的二阶方法(如TRAH)混淆。
作者
Author:
wjc404    时间: 2022-12-17 17:20
本帖最后由 wjc404 于 2022-12-17 17:29 编辑

用orca(5.0.3)计算18碳环的稳定UHF波函数(几何结构R1=1.27Å, R2=1.29Å;def2-TZVP),发现用默认的方式(DIIS+SOSCF)先会收敛到不稳定的RHF解(预期之中)。在激活STABRestartUHFIfUnstable后,重新优化出的解还是接近RHF的(s2<0.01;预料之外)。但如果一开始就用TRAH,则能一次算到稳定的解,虽然SCF耗时增加了一个数量级,但和后续稳定性分析相比耗时并不算大。
作者
Author:
zjxitcc    时间: 2022-12-17 17:38
本帖最后由 zjxitcc 于 2022-12-17 17:39 编辑

“重新优化出的解还是接近RHF的(s2<0.01;预料之外)”这是不可能的,或者说错误的。UHF算C18自旋污染非常大,你当前可能收敛到了错误的解上,或者用了很多默认的收敛限(过松),建议上强心剂(收敛限严格一些):
(1)在关键词!这一行中加上TightSCF或VeryTightSCF
(2)在%scf中加上以下5行
STABPerform true
STABRestartUHFifUnstable true
STABMaxIter 500
STABDTol 1e-5
STABRTol 1e-5

当然,也可以先用高斯算完UHF,检验好波函数稳定性,确保波函数稳定了,再用fch2mkl小程序传轨道给ORCA,可保后者3圈内收敛。


作者
Author:
zjxitcc    时间: 2022-12-19 12:15
wjc404 发表于 2022-12-17 17:20
用orca(5.0.3)计算18碳环的稳定UHF波函数(几何结构R1=1.27Å, R2=1.29Å;def2-TZVP),发现用默 ...

请见8楼回复,忘记按回复按钮了。
作者
Author:
wjc404    时间: 2022-12-19 22:19
zjxitcc 发表于 2022-12-19 12:15
请见8楼回复,忘记按回复按钮了。

谢谢您的建议~我只是想举个例子说TRAH比默认的方式要可靠:)
作者
Author:
zjxitcc    时间: 2022-12-20 00:12
wjc404 发表于 2022-12-19 22:19
谢谢您的建议~我只是想举个例子说TRAH比默认的方式要可靠:)

哦哦




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