计算化学公社

标题: 求助,如何观看vasp结构优化的力的变化趋势 [打印本页]

作者
Author:
XIEH    时间: 2024-5-12 20:09
标题: 求助,如何观看vasp结构优化的力的变化趋势
高斯的结构优化可以中途下载log文件用GaussView的optimization功能,看能量和力的变化趋势。
vasp的OSZICAR可以看到每一个离子步的E0,那么力是看哪个呢?


作者
Author:
乐平    时间: 2024-5-12 22:32
本帖最后由 乐平 于 2024-6-28 17:56 编辑

可以我写的 python 脚本

基本用法,输入
  1. python check_VASP_convergency.py -h     或者  --help
复制代码


可以查看用法
  1. usage: check_VASP_convergency.py [-h] [-p <POSCAR>] [-s <OSZICAR>] [-o <OUTCAR>]

复制代码


如果当前目录下有  POSCAR, OSZICAR, OUTCAR 文件,就不需要输入任何参数,直接
  1. python check_VASP_convergency.py
复制代码


就可以运行,并绘制好能量随离子步的变化趋势,最大受力随离子步的变化趋势
(, 下载次数 Times of downloads: 47)


整体的思路来自知乎帖子 VASP结构优化计算中查看能量和力收敛情况 - 知乎 (zhihu.com),这个帖子是 bash 脚本,绘图的结果看着不美观。

python 绘图更灵活,且能局部放大。


另外,我的脚本还能检查当前目录是否含有 POSCAR, OSZICAR, OUTCAR 文件,如果没有任意上述文件,会提示你缺少哪些文件,并退出运行。

如果当前目录里 POSCAR, OSZICAR, OUTCAR 文件名改了,或者上述文件移动到另外的目录下了,还可以通过 -p, -s, -o 参数开指定文件名
  1. python check_VASP_convergency.py -p test1_POSCAR -s ../mytest/OSZICAR -o ../final_OUTCAR
复制代码


这样更灵活,更方便。

-----------------------------

原 python 脚本 axis 轴弄错了,应该是 -1。现已更新。

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

可以重新下载,替换原脚本。

给大家带来的不便,请谅解。



作者
Author:
卡开发发    时间: 2024-5-13 05:50
可以使用python库ase。ase gui XDATCAR,会显示结构轨迹和能量变化曲线(i,e-E[-1],此处i为步数,e为能量,E[-1]表示最后一步能量),如果要看力把这个在Graph的对话框改成(i,fmax)即可。
作者
Author:
XIEH    时间: 2024-5-13 16:34
乐平 发表于 2024-5-12 22:32
可以我写的 python 脚本

基本用法,输入

感谢回复
作者
Author:
XIEH    时间: 2024-5-13 17:06
卡开发发 发表于 2024-5-13 05:50
可以使用python库ase。ase gui XDATCAR,会显示结构轨迹和能量变化曲线(i,e-E[-1],此处i为步数,e为能量, ...

感谢回复

作者
Author:
Weldingspock    时间: 2024-5-13 17:24
我也推荐一个,虽然不能画图,直接显示在屏幕上也能清楚看到
https://github.com/Ionizing/usefultools-for-vasp
作者
Author:
XIEH    时间: 2024-5-14 12:39
Weldingspock 发表于 2024-5-13 17:24
我也推荐一个,虽然不能画图,直接显示在屏幕上也能清楚看到
https://github.com/Ionizing/usefultools-fo ...

谢谢
作者
Author:
Minshen    时间: 2024-6-24 11:03
(, 下载次数 Times of downloads: 36) 您好,请教一下,我用您的脚本,运行出来,力的图上只有一个点,改变横轴纵轴范围也是这样,是咋回事呢
作者
Author:
乐平    时间: 2024-6-28 17:58
Minshen 发表于 2024-6-24 11:03
您好,请教一下,我用您的脚本,运行出来,力的图上只有一个点,改变横轴纵轴范围也是这样,是咋回事呢

之前的有错误,我更新了一下脚本。
作者
Author:
KangBao    时间: 2024-7-27 19:24
我的方法是直接在终端输入"grep FORCES: OUTCAR"获取力的变化,如果有做图需要可以获取力的列进行做图。脚本更直观,但这样也可以很方便的浏览趋势
作者
Author:
XIEH    时间: 2024-7-28 09:47
KangBao 发表于 2024-7-27 19:24
我的方法是直接在终端输入"grep FORCES: OUTCAR"获取力的变化,如果有做图需要可以获取力的列进行做图。脚 ...

感谢回复,已解决
作者
Author:
lxt999    时间: 2024-8-31 15:30
你好 我想请问一下 我在算AIMD分子动力学 查看势能 也可以用这个脚本吗
作者
Author:
Yun_ZL    时间: 2024-9-10 09:29
我发现编译VTSTcode之后,可以使用快捷命令grep FORCES:OUTCAR进行查看力的变化,没有编译vtstcode的情况下vasp的outcar并没有输出力的信息
作者
Author:
XIEH    时间: 2024-9-25 09:53
Yun_ZL 发表于 2024-9-10 09:29
我发现编译VTSTcode之后,可以使用快捷命令grep FORCES:OUTCAR进行查看力的变化,没有编译vtstcode的情况 ...

谢谢你的分享,但是我的估计没有编译VTSTcode,输入命令没有反应
作者
Author:
阿宁    时间: 2024-10-26 17:15
乐平 发表于 2024-5-12 22:32
可以我写的 python 脚本

基本用法,输入

您好,感谢分享。我在使用你的脚本时出现如下报错,百度找不到解决方法,想请教一下。
[qxn@Master ~/001/yzcu4]$ python check_VASP_convergency.py
`np.asfarray` was removed in the NumPy 2.0 release. Use `np.asarray` with a proper dtype instead.
Traceback (most recent call last):
  File "/home/qxn/001/yzcu4/check_VASP_convergency.py", line 216, in <module>
    main()
  File "/home/qxn/001/yzcu4/check_VASP_convergency.py", line 209, in main
    F = grab_Force(poscar, outcar)
  File "/home/qxn/001/yzcu4/check_VASP_convergency.py", line 106, in grab_Force
    data = np.asfarray(data).reshape((count,atomNum,3))
  File "/home/qxn/.local/lib/python3.9/site-packages/numpy/__init__.py", line 397, in __getattr__
    raise AttributeError(
AttributeError: `np.asfarray` was removed in the NumPy 2.0 release. Use `np.asarray` with a proper dtype instead.

作者
Author:
乐平    时间: 2024-10-26 22:23
阿宁 发表于 2024-10-26 17:15
您好,感谢分享。我在使用你的脚本时出现如下报错,百度找不到解决方法,想请教一下。
[qxn@Master ~/00 ...

报错里写得很清楚啊

你的 numpy 版本太高了(2.0版),里面没有 np.asfarray 这个函数了,需要把它换成 np.asarray
作者
Author:
Alston453    时间: 2024-11-7 15:50
乐平 发表于 2024-6-28 17:58
之前的有错误,我更新了一下脚本。

File "check_VASP_convergency.py", line 203
    raise FileNotFoundError(f"The file {file_path.name} does not exist.")
请问输入您说的运行命令后出现这个问题怎么解决呀大佬
作者
Author:
乐平    时间: 2024-11-7 16:30
Alston453 发表于 2024-11-7 15:50
File "check_VASP_convergency.py", line 203
    raise FileNotFoundError(f"The file {file_path.nam ...

你的 POSCAR, OUTCAR, OSZICAR 是不是改名了?

如果改名了,需要按我帖子最后写的,输入参数 和 新的文件名

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

  1. python check_VASP_convergency.py -p 你的新POSCAR -o 你的新OUTCAR -s 你的新OSZICAR
复制代码





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