计算化学公社

标题: VASP结构收敛正常结束但是力不收敛问题请教 [打印本页]

作者
Author:
KCM@SHU    时间: 2024-6-27 21:51
标题: VASP结构收敛正常结束但是力不收敛问题请教
本帖最后由 KCM@SHU 于 2024-6-27 21:57 编辑

各位老师好,我最近接触到VASP,我想问一下各位老师在VASP结构收敛的时候程序显示达到设定收敛值,但是在检查力的收敛的时候发现没有达到设定值,我设定的是EDIFFG = -0.01,但是实际受力明显大于0.01,这种情况一般可以怎么做呢?(如下图每一步的收敛图是按照这个链接:http://bbs.keinsci.com/forum.php ... 65&fromuid=1532里面老师的方法绘制的)(1)我尝试了将上次优化结果的构型再当成初始构型进行计算结果发现也没有达到设定值;(2)我看网上说VASP显示达到设定值但是力还没收敛的情况下可以尝试将POTIM调小,我把POTIM调小到0.2后还是没有收敛。针对VASP显示达到结构收敛但是力没收敛这种情况各位老师有什么好的建议吗?

作者
Author:
乐平    时间: 2024-6-27 21:55
你用什么判断力没达到收敛标准?
作者
Author:
KCM@SHU    时间: 2024-6-27 22:03
乐平 发表于 2024-6-27 21:55
你用什么判断力没达到收敛标准?

老师我是按照您之前的那个代码绘制的图判断的,我看图里面最后一步受力明显大于0.01,刚刚图片没上传上去,我修改了一下原贴。
作者
Author:
乐平    时间: 2024-6-27 22:14
本帖最后由 乐平 于 2024-6-27 22:24 编辑
KCM@SHU 发表于 2024-6-27 22:03
老师我是按照您之前的那个代码绘制的图判断的,我看图里面最后一步受力明显大于0.01,刚刚图片没上传上去 ...

也没差太多……

另外,由于你的 KPOINTS 文件名没有S (你的是 KPOINT),于是,你的 OUTCAR 里 645 行警告说没找到 KPOINTS 文件,于是自动产生了 1 1 1 k-点


还有,你的赝势为什么都选的是  _GW 结尾的啊…… 你又不是算光学性质

Available pseudopotentials - VASP Wiki
GW potentials are recommended for calculations involving unoccupied states, e.g., computing optical properties or using many-body perturbation theory.

当然,这可能不是力没收敛的原因



作者
Author:
KCM@SHU    时间: 2024-6-27 22:36
乐平 发表于 2024-6-27 22:14
也没差太多……

另外,由于你的 KPOINTS 文件名没有S (你的是 KPOINT),于是,你的 OUTCAR 里 645  ...

好的老师,我看一下,我最近刚接触VASP,赝势我当时选的时候就看文件后面带个NEW我就想着最新的就选了,我试试改一下KPOINTS和换个赝势试试,我把计算精度也提高一下试试看看能不能达到收敛标准,谢谢老师
作者
Author:
卡开发发    时间: 2024-6-28 11:54
KCM@SHU 发表于 2024-6-27 22:36
好的老师,我看一下,我最近刚接触VASP,赝势我当时选的时候就看文件后面带个NEW我就想着最新的就选了, ...
我自己写了一小段代码,看了一下你最后一步的力是7e-3左右,下面的代码我没有考虑原子固定的情况,实际上要处理固定也不麻烦,欢迎坛友有兴趣自己来扩展。
  1. import sys
  2. import re
  3. from io import StringIO
  4. import numpy as np

  5. """
  6. 使用方法:python3 get_max_forces.py OUTCAR
  7. """


  8. class VaspData(object):
  9.     def __init__(self, outcar) -> None:
  10.         self.outcar = outcar

  11.     @property
  12.     def max_forces(self):
  13.         pattern = '(.*?)'.join(['TOTAL-FORCE \(eV/Angst\)\n ?-+\n',
  14.                                 '-+\n +total drift'])
  15.         string = re.findall(pattern, self.outcar, re.S)
  16.         forces = [np.loadtxt(StringIO(s)).reshape(-1, 6)[:, 3:]
  17.                   for s in string]
  18.         max_forces = [np.max(np.linalg.norm(f, axis=1)) for f in forces]
  19.         return max_forces


  20. if __name__ == '__main__':
  21.     with open(sys.argv[1]) as f:
  22.         outcar = f.read()
  23.         outputs = VaspData(outcar)
  24.         for i, fmax in enumerate(outputs.max_forces):
  25.             print('%5d %.3e' % (i, fmax))
复制代码




作者
Author:
乐平    时间: 2024-6-28 17:08
KCM@SHU 发表于 2024-6-27 22:36
好的老师,我看一下,我最近刚接触VASP,赝势我当时选的时候就看文件后面带个NEW我就想着最新的就选了, ...

抱歉,是我的代码里有个地方写错了,现在更新了

  1. np.amax(np.linalg.norm(data, axis=-1), axis=-1)
复制代码

之前的轴弄错了,应该是 -1 轴

http://bbs.keinsci.com/forum.php ... 293265&fromuid=1532

作者
Author:
乐平    时间: 2024-6-28 17:10
卡开发发 发表于 2024-6-28 11:54
我自己写了一小段代码,看了一下你最后一步的力是7e-3左右,下面的代码我没有考虑原子固定的情况,实际上要 ...

卡老师读取表格的代码很优雅,值得学习
作者
Author:
KCM@SHU    时间: 2024-6-29 21:22
本帖最后由 KCM@SHU 于 2024-6-29 21:24 编辑
乐平 发表于 2024-6-28 17:08
抱歉,是我的代码里有个地方写错了,现在更新了

好的,谢谢老师,老师我还想问一下NCORE这个命令是可以直接加到INCAR里面的吗?我再INCAR里面写上NCORE=16的时候,还是会出现关于NCORE=1的warning
作者
Author:
乐平    时间: 2024-6-29 21:24
KCM@SHU 发表于 2024-6-29 21:22
好的,谢谢老师,老师我还想问一下NCORE这个命令是可以直接加到INCAR里面的吗?我再INCAR里面写上NCORE=1 ...

关于并行效率,看我之前的帖子

http://bbs.keinsci.com/forum.php ... 87&fromuid=1532
作者
Author:
KCM@SHU    时间: 2024-6-29 21:25
卡开发发 发表于 2024-6-28 11:54
我自己写了一小段代码,看了一下你最后一步的力是7e-3左右,下面的代码我没有考虑原子固定的情况,实际上要 ...

谢谢老师分享
作者
Author:
KCM@SHU    时间: 2024-6-29 21:36
乐平 发表于 2024-6-29 21:24
关于并行效率,看我之前的帖子

http://bbs.keinsci.com/forum.php?mod=redirect&goto=findpost&ptid=3 ...

老师我是想问一下NCORE是直接写进INCORE里面就可以修改计算方式还是要在其他文件里面修改呢?

作者
Author:
乐平    时间: 2024-6-29 21:45
本帖最后由 乐平 于 2024-6-29 22:04 编辑
KCM@SHU 发表于 2024-6-29 21:36
老师我是想问一下NCORE是直接写进INCORE里面就可以修改计算方式还是要在其他文件里面修改呢?

KPAR, NCORE  当然是在 INCAR 里啊
看来你对 VASP 各个输入文件的基本内容不熟悉,建议先看看下面的视频
VASP输入文件
https://www.bilibili.com/video/B ... 828517ca6bef0a8956b



另外,仔细看我上面的帖子,对你的计算速度提升很有帮助

最后,建议用 VASPKIT 来准备你的输入文件 INCAR, POTCAR, KPOINTS
下面是VASPKIT软件开发者王伟老师介绍 VASPKIT 使用的视频(从安装到使用都有详细介绍)
https://www.bilibili.com/video/B ... 828517ca6bef0a8956b



作者
Author:
KCM@SHU    时间: 2024-6-29 21:58
乐平 发表于 2024-6-29 21:45
KPAR, NCORE  当然是在 INCAR 里啊

仔细看我上面的帖子,对你的计算速度提升很有帮助

好的老师我看看,那他个这个关于NCORE的warning是不管怎么设置都会出现嘛?,我理解的是这个warning是提醒我NCORE=1计算效果很慢,但是我在INCAR里面设置了INCAR=16了
作者
Author:
乐平    时间: 2024-6-29 22:01
KCM@SHU 发表于 2024-6-29 21:58
好的老师我看看,那他个这个关于NCORE的warning是不管怎么设置都会出现嘛?,我理解的是这个warning是提 ...

你真的仔细看了我的贴子吗?

你设置了 KPAR 和 NCOER 两个参数配合了吗?

另外,之前指出了你的 KPOINT 是错的,应该是 KPOINTS ,你改名字了吗?
作者
Author:
KCM@SHU    时间: 2024-6-29 22:09
乐平 发表于 2024-6-29 22:01
你真的仔细看了我的贴子吗?

你设置了 KPAR 和 NCOER 两个参数配合了吗?

老师我看了,我在网上搜的一些教程里面说不太熟练的情况下不要动KPAR,主要改变NCORE,然后我就先改变了NCORE,但是运行的时候我看他和我没设NCORE的时候出现的warning一样,我以为是我的NCORE命令没被识别所以问一下您,KPOINTS我已经修改了,VASP已经可以读取了,计算量大了很多,所以我最近在看NCORE的使用方法,我先看一下您推荐的视频讲解,谢谢老师
作者
Author:
乐平    时间: 2024-6-29 22:11
KCM@SHU 发表于 2024-6-29 22:09
老师我看了,我在网上搜的一些教程里面说不太熟练的情况下不要动KPAR,主要改变NCORE,然后我就先改变了N ...

网上的所谓教程要么太古老,要么害死人……




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