计算化学公社

 找回密码 Forget password
 注册 Register
Views: 7131|回复 Reply: 37
打印 Print 上一主题 Last thread 下一主题 Next thread

[Lammps] Lammps reaxff/CP2K AIMD物种统计分析工具[1.0版本]

  [复制链接 Copy URL]

290

帖子

7

威望

3187

eV
积分
3617

Level 5 (御坂)

石墨

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 Graphite 于 2024-9-25 03:26 编辑

1.0版本(稳定版本,C++二进制文件)
更新说明:
  • 支持.xyz文件
  • 已修复0.9版本在部分系统中不能保存输出文件的问题。
下载:
1.0版本 reax_tools (5.51 MB, 下载次数 Times of downloads: 62)
特性:

  • 长期迭代更新,直至完成所有的开发计划为止
  • 采用C++全部重写,性能得到极大优化,路由器都能算的级别
  • 增加直接读取轨迹的功能,包括.lammpstrj文件和cp2k等软件产生的连续.xyz文件
  • 老功能清洗Lammps的.species.out输出依旧保留
  • 唯一依赖是C++标准库(只要你的linux系统不太旧就可以)
使用方法:
(随便输入错误的选项,也会弹出该使用方法)

  1.         -f .xyz/.lammpstrj file -> [读取轨迹] 采用van der Waals半径决定键、建立键长键角二面角、建立分子拓扑并分析
  2.         -s lammps reaxff/species file (spieces.out) -> [读取物种文件(老功能)] 读取species.out文件清洗

  3.         -r value 调整van der Waals半径的缩放因子,默认1.2,也就是OVITO的设置。
  4.         -t element,element...  逗号分割的元素名称, 如C,H,O,N,S,F 读取lammpstrj这类只有type_id的轨迹时,此选项是必须的)
  5.         -me element 通过元素的原子数量合并物种类型,例如C1~C4合并为group_C1-C4
  6.         -mr range1,range2...通过原子数量合并物种类型的范围,例如1,4,8,16
  7.         -rc 上述功能按指定原子的数量重算物种的权重,如C2H4被认为是权重2,而不是1个分子
  8.         --order element,element...整理输出化学式中元素的顺序,逗号分割 (默认: C,H,O,N,S,F,P,其他元素按原子量排)
复制代码

实现细节:
  • 两帧两帧地Tick-Tock交替式读取轨迹,建立结构对象(两帧是因为后续要做基团迁移、演化链等功能,并且节省内存)
  • 每一帧的结构中,原子先用K-D树搜索近邻列表,得到邻居原子,再根据邻居原子的距离判据,建立化学键,根据键连关系,利用深度优先算法,全搜索间接连接的原子,构建分子图。
  • 及时整理和清洗物种数量演化数据,建立反应演化链、基团转移信息(此功能尚在测试,很快上线)。

性能:
测试用例中,轨迹模式读取350MB的lammpstrj轨迹,1.3万原子,1000帧,单核低压U用时160秒,消耗内存不到100MB,物种文件模式读取对应species.out文件,用时1秒。
速度主要取决于轨迹的大小、成键的数量。

后期开发计划:
  • 反应链:计算每个分子的下一帧后代(根据图的相关性计算),从而建立每个分子从生成到销毁的生命周期。(销毁指分解成数个不到原体积50%的小分子,后者作为一个新的分子开始它的生命周期)
  • 基团转移:每一种基团(分子拓扑片段)的生命周期,原理同上,体现为何时依附于何种分子。
  • 计算反应速率、反应级数
  • 可视化输出图形和文档报表

示例:
指令:
  1. ./reax_tools -f input_file_traj_350M.lammpstrj -t Fe,C,H,O,N,S,F -me C
复制代码

----
0.3版本(稳定版本,Python)
更新说明:
修复如CHO等多个单原子元素构成的化学式导致的bug。
python版本(仅.species.out物种文件清洗功能)停止更新。
下载:
0.3版本 reax_species.py (14.63 KB, 下载次数 Times of downloads: 191)
特性:
Lammps一大特色是可以用ReaxFF做反应模拟,最早不支持直接给出物种,只能输出键列表(reaxff/bonds, reax/c/bonds),需要用ChemTrayzer等软件从键列表再分析生成多少物种。后来支持了reax/c/species,实时输出产物分子。但因为是每帧输出,结构会很混乱,例如100 ps打印了10个物种,500 ps时已经20个物种了,而且前后顺序也不一致,不方便监控。反复调参数试的时候更是难受。
有感于此,写了个工具清理。该工具能实现以下功能:

  • 将所有物种对齐成表格,还没出现或已消失的为0。
  • 自定义合并,例如将C4-C6的碳团簇合并成一个组。
  • 生成屏幕简报,包括初始、最终(最后5%的帧)、最大、平均数量。
  • 原子权重重算、整理化学式、整理低频次物种等见解功能。

另:当reax/c/species输出的频次、平均值的取法、键级cutoff不合理时,判定的产物也可能不合理,这点不在讨论之列。如有需要可以改cutoff,rerun让lammps重新判断一遍(无需再做全模拟)。
用法:
  1. Usage: reax_species.py [opts] [args]
  2.     -f inputfile                       # lammps reaxff/species (reax/c/species) 输出的文件
  3.     -m, --merge C                  # 按照原子数合并物种,默认C
  4.     -r, --range 1,5,9,17,65       # 设定合并的原子数上下限组,如C1, C2-C4, C5-C8, C9-C16, C17-C64, >=C64等
  5.     -d, --drop-others              # 将出现频次低(0.01)的物种扔进 "others"组里
  6.     -c, --recalc                      # 以原子数作为权重重新计算物种出现量,如当-m设为C时,C4H10的权重为4,5个C2H6被视为10的权重。这在程序一开始就会重算,因此会影响整体结果。
  7.     -o, --order C,H,O,N          # 整理化学式的顺序,例如HCO -> CHO, H4C2NO -> C2H4ON
复制代码
示例:
指令:
  1. reax_species -f 05-shear.species.out -m C -r 1,4,8,16 -d --order C,H,O,N,S,F
复制代码
屏显输出:
  1. NOTE: 31 species merged into group C1-C3
  2. NOTE: 9 species merged into group C4-C7
  3. NOTE: 15 species merged into group C8-C15
  4. NOTE: 108 species merged into group >=C16
  5. NOTE: 12 species merged into group others
  6. Formula         Init            Final           Max             Avg
  7. H2              42.0            49.0            47.4            49.0
  8. H2O1            1116.8          1077.2          1078.2          1129.0
  9. H5O2            12.8            21.8            22.7            33.0
  10. H1O1            28.8            34.0            34.3            37.0
  11. O1              40.5            67.0            58.9            67.0
  12. H3O1            40.0            53.2            48.8            60.0
  13. C1-C3           0.0             10.0            5.2             10.0
  14. C4-C7           0.0             2.0             1.0             2.0
  15. C8-C15          4.5             7.0             6.1             7.0
  16. >=C16           36.0            36.5            35.3            37.0
  17. others          14.5            8.5             11.3            16.0
复制代码
保存的文件:
  1. Timestep Number-of-molecules Number-of-species H2 H2O1 H5O2 H1O1 O1 H3O1 C1-C3 C4-C7 C8-C15 >=C16 others
  2. 500 1336 31 41 1129 12 27 38 34 0 0 4 36 15
  3. 1000 1333 32 42 1116 12 27 40 40 0 0 4 36 16
  4. 1500 1338 31 42 1115 12 30 41 44 0 0 5 36 13
  5. 2000 1336 34 43 1107 15 31 43 42 0 0 5 36 14
  6. 2500 1343 35 44 1109 12 31 45 48 0 0 5 36 13
  7. 3000 1339 35 44 1103 17 32 46 44 0 0 5 36 12
  8. 3500 1336 35 44 1100 19 31 46 42 0 0 5 36 13
  9. 4000 1336 36 45 1097 21 31 47 40 0 0 6 36 13
复制代码













评分 Rate

参与人数
Participants 11
威望 +1 eV +40 收起 理由
Reason
人间划水艺术家 + 5
啵啵鱼 + 3 赞!
企鹅子w + 5 牛!
Sui1999 + 5 谢谢
HJJ907 + 1 好物!
TinnKuka + 2 好物!
MercuryLamp + 5 谢谢
dadaoqiuzhi + 5 好物!
hdhxx123 + 5 好物!
wildon + 4 谢谢
sobereva + 1

查看全部评分 View all ratings

镜像空间计算模拟

69

帖子

0

威望

637

eV
积分
706

Level 4 (黑子)

2#
发表于 Post on 2023-7-20 19:22:21 | 只看该作者 Only view this author
感谢,很有帮助

24

帖子

0

威望

174

eV
积分
198

Level 3 能力者

3#
发表于 Post on 2023-7-31 11:41:14 | 只看该作者 Only view this author
谢谢大佬

17

帖子

1

威望

846

eV
积分
883

Level 4 (黑子)

4#
发表于 Post on 2023-7-31 16:29:47 | 只看该作者 Only view this author
本帖最后由 dadaoqiuzhi 于 2023-7-31 16:31 编辑

再推荐一个ReaxFF模拟前后处理和分析的工具箱RMD_Digging,纯matlab代码写的,希望对大家有帮助。C:\Users\DELL\Desktop\1.jpg
上链接:https://github.com/dadaoqiuzhi/RMD_Digging

1.jpg (175.07 KB, 下载次数 Times of downloads: 44)

1.jpg

2.jpg (397.56 KB, 下载次数 Times of downloads: 31)

2.jpg

评分 Rate

参与人数
Participants 2
eV +8 收起 理由
Reason
qingyangliu + 3 谢谢
Graphite + 5 谢谢

查看全部评分 View all ratings

2

帖子

0

威望

17

eV
积分
19

Level 1 能力者

5#
发表于 Post on 2023-11-20 11:28:24 | 只看该作者 Only view this author
非常感谢!
请教:在使用方法上,将LAMMPS的species.out文件和 reax_species.py文件放在一个文件夹里,然后命令行输入python reax_species.py后,无法启动程序,问题出在什么地方?望指教!

290

帖子

7

威望

3187

eV
积分
3617

Level 5 (御坂)

石墨

6#
 楼主 Author| 发表于 Post on 2023-11-21 10:37:14 | 只看该作者 Only view this author
DK1234 发表于 2023-11-20 11:28
非常感谢!
请教:在使用方法上,将LAMMPS的species.out文件和 reax_species.py文件放在一个文件夹里,然 ...

是否正确安装了python、正确指定了程序名和输入文件名
尝试python ./reax_species.py species.out
镜像空间计算模拟

2

帖子

0

威望

17

eV
积分
19

Level 1 能力者

7#
发表于 Post on 2023-11-21 19:51:55 | 只看该作者 Only view this author
Graphite 发表于 2023-11-21 10:37
是否正确安装了python、正确指定了程序名和输入文件名
尝试python ./reax_species.py species.out

已成功运行,非常感谢!

8

帖子

0

威望

53

eV
积分
61

Level 2 能力者

8#
发表于 Post on 2024-3-4 20:48:33 | 只看该作者 Only view this author
老师,您好,如何安装和运行chemtrayzer呢?

2

帖子

0

威望

35

eV
积分
37

Level 2 能力者

9#
发表于 Post on 2024-3-6 14:36:15 | 只看该作者 Only view this author
DK1234 发表于 2023-11-21 19:51
已成功运行,非常感谢!

File "/我的路径/./reax_species.py", line 331, in <module>
    main(sys.argv[1:])
  File "/我的路径/./reax_species.py", line 314, in main
    rs = reax_species(file, save, order)
                      ^^^^
UnboundLocalError: cannot access local variable 'file' where it is not associated with a value

你好,我按照这个方法提示这样报错了


3

帖子

0

威望

96

eV
积分
99

Level 2 能力者

10#
发表于 Post on 2024-6-12 18:26:42 | 只看该作者 Only view this author
老师,您好,请问最新09版本的reax_tools应该如何运行 用g++运行报错没有-f指令

202406121826247325..png (16.34 KB, 下载次数 Times of downloads: 32)

202406121826247325..png

290

帖子

7

威望

3187

eV
积分
3617

Level 5 (御坂)

石墨

11#
 楼主 Author| 发表于 Post on 2024-6-13 11:24:29 | 只看该作者 Only view this author
leon682019 发表于 2024-6-12 18:26
老师,您好,请问最新09版本的reax_tools应该如何运行 用g++运行报错没有-f指令

这个已经编译好了,不用g++
直接reax_tools 选项... 就行了
镜像空间计算模拟

3

帖子

0

威望

96

eV
积分
99

Level 2 能力者

12#
发表于 Post on 2024-6-13 13:45:27 | 只看该作者 Only view this author
Graphite 发表于 2024-6-13 11:24
这个已经编译好了,不用g++
直接reax_tools 选项... 就行了

谢谢老师您的回答,但貌似还是不行,是因为我的g++或者gcc版本太低的原因吗?我g++和gcc版本都是9.4的C:\Users\zl333yz\Desktop\error.png

error.png (16.09 KB, 下载次数 Times of downloads: 23)

error.png

290

帖子

7

威望

3187

eV
积分
3617

Level 5 (御坂)

石墨

13#
 楼主 Author| 发表于 Post on 2024-6-13 15:45:52 | 只看该作者 Only view this author
本帖最后由 Graphite 于 2024-6-13 15:50 编辑
leon682019 发表于 2024-6-13 13:45
谢谢老师您的回答,但貌似还是不行,是因为我的g++或者gcc版本太低的原因吗?我g++和gcc版本都是9.4的

老生常谈的路径指定问题...需要补补linux基础
./reax_tools 选项


至于g++版本问题,考虑到适配性,我已经把C++20的标准库依赖移除并手动实现,理论上应该C++14/17即可,也就是对应g++版本高于7.1既可。
镜像空间计算模拟

3

帖子

0

威望

96

eV
积分
99

Level 2 能力者

14#
发表于 Post on 2024-6-13 16:22:39 | 只看该作者 Only view this author
Graphite 发表于 2024-6-13 15:45
老生常谈的路径指定问题...需要补补linux基础
./reax_tools 选项

好的 谢谢老师 确实刚入门linux 还需要学习

6

帖子

0

威望

127

eV
积分
133

Level 2 能力者

15#
发表于 Post on 2024-6-20 14:42:20 | 只看该作者 Only view this author
请问reax_tools是不会输出文件的吗?我用species清洗命令没有发现有文件输出。
而且无法读取路径文件。

截图 2024-06-20 14-39-51.png (26.59 KB, 下载次数 Times of downloads: 28)

截图 2024-06-20 14-39-51.png

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 06:53 , Processed in 0.208243 second(s), 31 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list