计算化学公社

标题: VASP计算精度和是否收敛问题 [打印本页]

作者
Author:
KCM@SHU    时间: 2024-6-17 22:49
标题: VASP计算精度和是否收敛问题
(1)各位老师,我最近在自学VASP,然后我看网上的教程了解到VASP收敛主要看能量和力是否收敛,我做结构优化后,我在看输出文件OSZICAR的时候发现第一步离子步的时候电子步计算到了最大的步数还是没有收敛,但是程序也没有停下来,反而继续开始了后面的离子步,但是我看最后离子步都跑完了好像d E好像都没有达到我设置的EDIFF,然后我看OUTCAR里面的TOTAL-FORCE也没有达到EDIFFG,虽然最后显示reached required accuracy - stopping structural energy minimisation是不是其实还是没收敛呀?
(2)各位老师我想问一下,我看网上说有时候也要看d eps是否小于EDIFF这个是判断什么呢?还有像我这种程序显示收敛但是能量和力都没有达到设定的情况,是不是有办法可以像Gaussian里面一样读取最后一步作为初始步继续优化,达到收敛的概率会大一点呢?
(3)各位老师我想问一下VASP对于高精度计算的定义主要是指哪一类呢?我主要是结构优化、计算能带、PDOS、吸附能这一块,因为我看我输出文件里面warning建议对于精度不高的计算可以用LREAL= Auto


作者
Author:
卡开发发    时间: 2024-6-18 08:53
1、EDIFFG参考的不是TOTAL-FORCE,而是原子当中最大的力,亦即|Fi|<EDIFFG,i∈[1,Natoms]。
2、要dE和d eps都效应EIDFF,可以仔细看下手册。可以读取最后一步的结构续算,没有必要重新算,例如cp CONTCAR POSCAR。需要注意的是变胞优化有可能会出现与之前过程最后一步能量不相等的情况,这在原理上是正常的,但也可能个别体系会数值不稳定导致类似问题,需要谨慎处理。
3、事实上一般需要LREAL=F的情况不是很多,除非对能量/电子结构计算要求特别精确或体系这些性质对数值比较敏感才需要,绝大部分情况LREAL=Auto就可以,在官网也有说明
作者
Author:
乐平    时间: 2024-6-18 09:56
(1) 你在 INCAR 里设置的 EDIFF = 1E-5,OSZICAR 里第一个离子步里达到了默认的最大 SCF 循环, dE 无论后没有小于 1E-5 (电子自洽收敛标准)都会自动停止 SCF 计算,进入下一个离子步的电子自洽 SCF。这是程序默认的。在后续的离子步里,电子自洽 SCF 都达到了设置的 1E-5 收敛标准。二楼卡老师也提到 d eps 也应该小于 1E-5。你的 OSZICAR 也是满足的此标准的。

至于最大受力是否达到收敛标准,可以用我的脚本试试。链接在本站,如下:
http://bbs.keinsci.com/forum.php ... 65&fromuid=1532
作者
Author:
KCM@SHU    时间: 2024-6-19 21:38
本帖最后由 KCM@SHU 于 2024-6-19 21:41 编辑
卡开发发 发表于 2024-6-18 08:53
1、EDIFFG参考的不是TOTAL-FORCE,而是原子当中最大的力,亦即|Fi|

谢谢老师,老师我想问一下,您说的|Fi|这个参数是在哪里看呢?我在b站看的几个视频里面说的都是看OUTCAR里面的TOTAL-FORCE (eV/Angst),然后我在手册里面也没找到对应的Fi是那个参数




作者
Author:
KCM@SHU    时间: 2024-6-19 21:42
乐平 发表于 2024-6-18 09:56
(1) 你在 INCAR 里设置的 EDIFF = 1E-5,OSZICAR 里第一个离子步里达到了默认的最大 SCF 循环, dE 无论后 ...

谢谢老师,我琢磨一下您的脚本
作者
Author:
卡开发发    时间: 2024-6-19 23:23
KCM@SHU 发表于 2024-6-19 21:38
谢谢老师,老师我想问一下,您说的|Fi|这个参数是在哪里看呢?我在b站看的几个视频里面说的都是看OUTCAR ...

这个|Fi|=sqrt(Fx,i^2+Fy,i^2+Fz,i^2),需要进行计算,VASP自身没有显示,
方案1:如果你装了VASP搜索过渡态的插件VTST,就会在OUTCAR有如下字段
FORCES: max atom, RMS

其中第一个就是3Natoms当中最大的原子受力。
方案2:使用楼上的脚本。
方案3:自己写,python用正则表达式抓一下,也写不了几行代码。
作者
Author:
KCM@SHU    时间: 2024-6-20 09:21
卡开发发 发表于 2024-6-19 23:23
这个|Fi|=sqrt(Fx,i^2+Fy,i^2+Fz,i^2),需要进行计算,VASP自身没有显示,
方案1:如果你装了VASP搜索过 ...

懂了,谢谢老师
作者
Author:
乐平    时间: 2024-6-20 10:16
本帖最后由 乐平 于 2024-6-28 16:58 编辑
KCM@SHU 发表于 2024-6-20 09:21
懂了,谢谢老师

我的 Python 脚本里用了 Numpy 来求最大受力。核心的求解公式就一行
  1. np.amax(np.linalg.norm(data, axis=-1), axis=-1)
复制代码


其余的代码主要是检查 OUTCAR, POSCAR 文件是否存在,以及 POSCAR 里是否有被限制(不移动)的原子。如果存在不移动的原子,则不需要计算这些原子的受力。再就是读取 OUTCAR 里表格中的力在 x, y, z 三个方向的分量。
作者
Author:
KCM@SHU    时间: 2024-6-20 12:37
乐平 发表于 2024-6-20 10:16
我的 Python 脚本里用了 Numpy 来求最大受力。核心的求解公式就一行

好的老师,我用您的代码画出来图形了,我再琢磨一下咋样可以抓点,我不太确定力有没有达到我设定值,感觉好像在我设定值附近波动,老师计算出来图形上面那个能量是不是就是可以用来计算吸附能的自由能呢?
作者
Author:
乐平    时间: 2024-6-21 16:31
KCM@SHU 发表于 2024-6-20 12:37
好的老师,我用您的代码画出来图形了,我再琢磨一下咋样可以抓点,我不太确定力有没有达到我设定值,感觉 ...

你不需要取点,只用看趋势就可以了

如果实在不放心,可以点图上工具栏里的“放大镜”工具,然后框选最大受力的末尾十来个点。框选的时候尽量靠近点,这样纵坐标会自动缩放。你会看到纵坐标的刻度变成 10^-3 左右。足以说明最大受力满足你设置的 EDIFFG = -0.02


作者
Author:
qqqm    时间: 2024-9-10 15:49
楼主你好,请问你做结构优化用时多久呢,有多少原子和核数
作者
Author:
KCM@SHU    时间: 2024-9-18 22:56
qqqm 发表于 2024-9-10 15:49
楼主你好,请问你做结构优化用时多久呢,有多少原子和核数

这个不太好说,我一般一次优化5-10个小时,一般优化一次不一定成功,用的核数是28,原子大概在70-200左右
作者
Author:
目前还不会计算    时间: 2024-9-28 19:56
乐平 发表于 2024-6-21 16:31
你不需要取点,只用看趋势就可以了

如果实在不放心,可以点图上工具栏里的“放大镜”工具,然后框选最 ...

我输入:python3 check_VASP_convergency.py 之后,就直接显示这个,这是为啥呀,大佬
Traceback (most recent call last):
  File "check_VASP_convergency.py", line 9, in <module>
    import numpy as np
ModuleNotFoundError: No module named 'numpy'

作者
Author:
乐平    时间: 2024-9-28 20:31
目前还不会计算 发表于 2024-9-28 19:56
我输入:python3 check_VASP_convergency.py 之后,就直接显示这个,这是为啥呀,大佬
Traceback (most  ...

因为你的 python 是纯 Python,没有其他库

建议安装 Anaconda3,几乎常用的库都包含了,你不需要自己额外安装其他库。

从清华的镜像网站下载就可以,链接如下(比直接从国外的网站下载要快)
https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
作者
Author:
目前还不会计算    时间: 2024-9-28 22:02
乐平 发表于 2024-9-28 20:31
因为你的 python 是纯 Python,没有其他库

建议安装 Anaconda3,几乎常用的库都包含了,你不需要自己 ...

File "check_VASP_convergency.py", line 203
    raise FileNotFoundError(f"The file {file_path.name} does not exist.")
                                                                       ^
SyntaxError: invalid syntax
我安装好了库,现在又变成这样了,不知道为啥
作者
Author:
乐平    时间: 2024-9-29 10:34
本帖最后由 乐平 于 2024-9-29 10:38 编辑
目前还不会计算 发表于 2024-9-28 22:02
File "check_VASP_convergency.py", line 203
    raise FileNotFoundError(f"The file {file_path.nam ...

你默认的 Python 不会是 2.7 吧……

你在命令行输入 Python 看看输出的版本号

最好是截图,免得乱猜也猜不到你具体的情况……

作者
Author:
目前还不会计算    时间: 2024-9-29 16:26
乐平 发表于 2024-9-29 10:34
你默认的 Python 不会是 2.7 吧……

你在命令行输入 Python 看看输出的版本号

确实是版本很低,我默认安装的那个Anaconda,然后版本只有2.7。
Python 2.7.3 :: Anaconda 1.4.0 (64-bit)

作者
Author:
乐平    时间: 2024-9-29 17:48
目前还不会计算 发表于 2024-9-29 16:26
确实是版本很低,我默认安装的那个Anaconda,然后版本只有2.7。
Python 2.7.3 :: Anaconda 1.4.0 (64-bi ...

…… 无语了

你是在我推荐的清华的镜像网站里下载的吗?

如果是,你不仔细看看日期吗? 选最近的日期对应的 Anaconda3 下载啊

(, 下载次数 Times of downloads: 0)

作者
Author:
目前还不会计算    时间: 2024-9-29 20:19
好滴好滴,,确实是我看错了,,我现在改到了正确的了,可以了。感谢感谢




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