计算化学公社

标题: 分享从OUTCAR查看原子受力的小脚本 [打印本页]

作者
Author:
qmlearner    时间: 2020-10-23 16:15
标题: 分享从OUTCAR查看原子受力的小脚本
本帖最后由 qmlearner 于 2020-10-23 16:27 编辑

extforce.sh脚本的思路很简单:1)从OUTCAR中提取所有的TOTAL-FORCE部分信息(每个原子上的force vectors),2)用for循环调用screenforce.py筛选出每一个离子步受力大于EDIFFG的原子,及对应的原子序号,存储在lt_ediffg_${i}.dat,i为相应的离子步数。然后可以用p4vasp软件查看 具体是哪些原子没有达到力收敛标准。

使用的时候需要在extforce.sh里面设置一下自己体系的原子数(N_atoms),在screenforce.py里设置一下自己的EDIFFG(ediffg)。需用python3,如果只有python2的话可以把screenforce.py的print那几行改成py2的格式即可。

使用时将extforce.sh, screenforce.py, OUTCAR放在同一目录下,执行./extforce.sh即可。




作者
Author:
Pure    时间: 2022-5-10 19:55
请问权限不够是什么原因?
作者
Author:
乐平    时间: 2022-5-11 09:10
感觉用一个 Python 脚本就足够了。
有空了我写一个试试
作者
Author:
乐平    时间: 2022-5-11 23:34
本帖最后由 乐平 于 2022-5-11 18:19 编辑

我用 python 3 写了一个,大家可以试试。

用法如下:
  1. python check_OUTCAR_force.py -h
复制代码

即可查看用法
  1. python check_OUTCAR_force.py -h
  2. usage: check_OUTCAR_force.py [-h] [-o <VASP OUTCAR file>]

  3. optional arguments:
  4.   -h, --help            show this help message and exit
  5.   -o <VASP OUTCAR file>
  6.                         OUTCAR file (default: ~/scripts/OUTCAR)
复制代码


使用时,cd 到 VASP 任务的目录下,输入
  1. python check_OUTCAR_force.py -o OUTCAR
复制代码

就可以运行此脚本


或者在命令行自己输入目录
  1. python YOUR_SCRIPT_PATH/check_OUTCAR_force.py -o YOUR_VASP_JOB_PATH/OUTCAR
复制代码

也可以运行此脚本



脚本会首先检查 OUTCAR 是否存在,如果不存在,将会提示
-------------------------------------------------------------------------------
OUTCAR file does NOT exist! Please check your directory.
-------------------------------------------------------------------------------


如果 OURCAR 存在,将会从 OUTCAR 文件中读取 TOTAL-FORCE 表格中的数据,并计算受力数值,然后与 EDIFFG 的绝对值进行比较。如果大于 EDIFFG 的绝对值,则会在屏幕上打印出每一步每个原子不收敛的计算步数值和原子编号。
欢迎大家提意见交流讨论。



作者
Author:
wmw    时间: 2022-6-17 14:09
乐平 发表于 2022-5-11 23:34
我用 python 3 写了一个,大家可以试试。

用法如下:

There are 54 atoms in this system and 1 steps for calculatons.
          In the step 1, the force of atom 53 does NOT converge
请问这个是什么意思呢?怎么会计算只有一步呢,我看OSZICAR里面离子步跑了几百步

作者
Author:
乐平    时间: 2022-6-17 15:49
wmw 发表于 2022-6-17 08:09
There are 54 atoms in this system and 1 steps for calculatons.
          In the step 1, the force ...

能不能把你的 OUTCAR 上传? 我看看问题在哪里。谢谢。
作者
Author:
Jalyn    时间: 2023-2-23 18:54
乐平 发表于 2022-5-11 23:34
我用 python 3 写了一个,大家可以试试。

用法如下:

好像有问题
作者
Author:
WVzzz    时间: 2023-2-23 22:04
顶个楼,大佬们继续编,我是实在不会
作者
Author:
WVzzz    时间: 2023-2-27 09:53
本帖最后由 WVzzz 于 2023-2-27 11:06 编辑

琢磨出来的,ubantu vasp 最后一个受力写到force.log里,其中xx=原子个数 xx+1=原子个数+1  
grep -A xx ’TOTAL-FORCE‘ OUTCAR |tail -n xx+1 >force.log
如grep -A 205 "TOTAL-FORCE" OUTCAR |tail -n 206 >force.log
作者
Author:
thor    时间: 2023-4-12 12:21
乐平 发表于 2022-5-11 23:34
我用 python 3 写了一个,大家可以试试。

用法如下:

您好,我使用这个脚本的时候报错如下:
Value Error: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (4326,) + inhomogeneous part.
作者
Author:
elpa    时间: 2024-3-25 17:19
本帖最后由 elpa 于 2024-3-25 17:30 编辑
Jalyn 发表于 2023-2-23 18:54
好像有问题



作者
Author:
elpa    时间: 2024-3-25 17:31
Jalyn 发表于 2023-2-23 18:54
好像有问题

第一行的! 好像是中文字符,删了换成英文字符!




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