计算化学公社

标题: 如何判断VASP的几何优化是否正常收敛 [打印本页]

作者
Author:
zorow    时间: 2020-7-25 22:30
标题: 如何判断VASP的几何优化是否正常收敛
各位老师好,本人用vasp算了一个几何优化的任务, INCAR中NELMIN和NELM分别为5和300,意思应该是最多优化跑300步。计算结束后,发现OUTCAR文件中出现了“aborting loop because EDIFF is reached”,能证明SCF已经收敛了吗?主要是在OSZICAR中发现SCF迭代也进行了300步,难道我的作业都是300步后正好收敛吗?还是说300步以后未收敛但是自动停止了呢?
作者
Author:
卡开发发    时间: 2020-7-26 08:38
你指的是几何优化中SCF有没收敛的情况?如果指的是这个问题,可以看“aborting loop because EDIFF is reached”。

关于消除VASP自带 IOp(5/13=1)的方案,我想了一种,可以一块讨论下:
vasp源码electron.F中585行:
  1.       IF (N>=INFO%NELM) THEN
  2.          IF (.NOT.INFO%LABORT) LABORT_WITHOUT_CONV=.TRUE.
  3.          INFO%LABORT=.TRUE.
  4.       ENDIF
复制代码

改成
  1.       IF (N>=INFO%NELM) THEN
  2.          IF (.NOT.INFO%LABORT) THEN
  3.            LABORT_WITHOUT_CONV=.TRUE.
  4.            IF (IO%IU0>=0) WRITE(IO%IU0,*) "SCF Failed!"
  5.            IF (IO%IU6>=0) WRITE(IO%IU6,*) "SCF Failed!"
  6.            STOP
  7.          ENDIF
  8.          INFO%LABORT=.TRUE.
  9.       ENDIF
复制代码


作者
Author:
zorow    时间: 2020-7-26 14:35
卡开发发 发表于 2020-7-26 08:38
你指的是几何优化中SCF有没收敛的情况?如果指的是这个问题,可以看“aborting loop because EDIFF is reac ...

谢谢老师!看到“aborting loop because EDIFF is reached”就能证明收敛了吗?主要是好几个任务跑完都是300步,虽然出现了上述文字但我还是担心这是算够300步强制停止了...
看了您说的VASP自带 IOp(5/13=1),我搜到这个帖子:http://bbs.keinsci.com/thread-11217-1-3.html,看来我要仔细检查一下OUTCAR里面是不是有电子步没收敛就继续的情况...
作者
Author:
zorow    时间: 2020-7-26 19:00
卡开发发 发表于 2020-7-26 08:38
你指的是几何优化中SCF有没收敛的情况?如果指的是这个问题,可以看“aborting loop because EDIFF is reac ...

老师,我检查了INCAR文件,发现我NSW写了300...好像是离子步上限到了,我是不是该加大离子步继续算... NELMIN应该是每一步最多迭代300吧,我的问题是300步之后自动停止了,然而要怎么知道NSW上限300步结束以后是否收敛了呢。。。
作者
Author:
卡开发发    时间: 2020-7-27 08:01
zorow 发表于 2020-7-26 14:35
谢谢老师!看到“aborting loop because EDIFF is reached”就能证明收敛了吗?主要是好几个任务跑完都是 ...

按照上面修改代码后,SCF超过最大步数还没达到收敛限就直接跳错了,避免了自带 IOp(5/13=1)。只是做的还不够好,但是要做得更好也不难,比如可以在合适的位置跳错,甚至可以在keywords里面加个logical来控制SCF失败是否继续进行计算。这里只是给个大概的思路而已。
作者
Author:
卡开发发    时间: 2020-7-27 08:06
zorow 发表于 2020-7-26 19:00
老师,我检查了INCAR文件,发现我NSW写了300...好像是离子步上限到了,我是不是该加大离子步继续算... NE ...

NSW=300指的是离子步为300步,即构型优化最大步数为300;NELM指的是电子步最大步数,即自洽场迭代的最大步数;NELMIN指的是至少做多少个电子步,如果是负数指的是开始的非自洽至少做多少次。我不知道你到底要问哪个没收敛?
作者
Author:
zorow    时间: 2020-7-27 21:58
卡开发发 发表于 2020-7-27 08:06
NSW=300指的是离子步为300步,即构型优化最大步数为300;NELM指的是电子步最大步数,即自洽场迭代的最大 ...

是我之前没搞懂... 每个离子步中SCF的步数很快就会收敛,我觉得是离子步没有收敛,到达300步后自动停止了。所以请问,如何判断离子步收敛与否呢...
作者
Author:
卡开发发    时间: 2020-7-28 02:48
zorow 发表于 2020-7-27 21:58
是我之前没搞懂... 每个离子步中SCF的步数很快就会收敛,我觉得是离子步没有收敛,到达300步后自动停止了 ...

"reached required accuracy - stopping structural energy minimisation"
作者
Author:
zorow    时间: 2020-7-28 12:08
卡开发发 发表于 2020-7-28 02:48
"reached required accuracy - stopping structural energy minimisation"

明白了,谢谢老师指教!




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