计算化学公社

标题: ORCA几何优化不收敛的改进办法,如何“使用更好的Hessian矩阵” [打印本页]

作者
Author:
flyingchow    时间: 2021-11-18 08:11
标题: ORCA几何优化不收敛的改进办法,如何“使用更好的Hessian矩阵”
本帖最后由 flyingchow 于 2021-11-18 09:44 编辑

sob老师在他的http://sobereva.com/164里面系统介绍了gaussian解决几何优化不收敛的一些办法,并且说明这些办法的原理也可以在ORCA里使用。我在用ORCA作几何优化的时候想“使用更好的Hessian矩阵”,每隔几步就精确算一次(gaussian里面就是opt=recalc=n)
为此我查看了ORCA手册发现,ORCA的相对应的好像是(我不十分确定,因为手册上这个上面注释写的是“Hessian控制过渡态的几何优化"。)
  1. %geom
  2.     Recalc_Hess n
  3. end
复制代码
手册上还另外提供了一个"Rebuilding the model Hessian after a number of cycles",说是可以加速收敛过程。
  1. %geom
  2.    NResetHess n
  3. end
复制代码
想请教一下老师这两个命令有什么区别吗?看上去第一个很像gaussian的,但是第二个的注释描述好像更贴近我的需求。

作者
Author:
wzkchem5    时间: 2021-11-18 16:44
recalc_hess是每隔N步计算一个精确的Hessian矩阵,nresethess是每隔N步计算一个近似的Hessian矩阵(相当于分子力学的精度)
如果什么都不写,是第一步用那个分子力学精度的近似Hessian,后面每步根据前一步的梯度信息来对前一步的Hessian做修正(比如用BFGS算法),可以理解为修正以后的Hessian在几何优化已经跑过的方向上是基本精确的,在几何优化还没跑过的方向上是分子力学的精度
作者
Author:
flyingchow    时间: 2021-11-18 22:53
wzkchem5 发表于 2021-11-18 16:44
recalc_hess是每隔N步计算一个精确的Hessian矩阵,nresethess是每隔N步计算一个近似的Hessian矩阵(相当于 ...

请问这两个可以同时使用,以利于更好收敛吗?谢谢
作者
Author:
wzkchem5    时间: 2021-11-18 23:02
flyingchow 发表于 2021-11-18 15:53
请问这两个可以同时使用,以利于更好收敛吗?谢谢

不太确定同时用会不会有什么问题,但是感觉这两个的作用不是可加和的
recalc_hess基本总是可以降低迭代步数,它的问题仅在于会增加计算时间(因为额外算了精确Hessian),而nresethess不一定降低迭代步数,属于既有可能让收敛变好也有可能让收敛变差的关键词,建议了解BFGS算法的基本原理再用,否则可能适得其反。个人感觉recalc_hess和nresethess合用不会比单独用recalc_hess好




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