本帖最后由 Graphite 于 2025-3-21 13:47 编辑 lammps搞多个子体系的data确实很恼人,如果直接手搓,精神一旦不集中就容易类型、序号之类的有疏漏。 要保留拓扑,要么用楼上read_data + append的方式,要么也可以转换为molecule template(.txt文件),然后设置空盒子再手动用molcule相关语句填这两个体系 当然我后来是直接用cursor生成了个脚本专门用来merge体系的,上下文给两个小data文件,然后提示词比如“根据lammps data文件的结构和逻辑,生成一个用于合并体系的python脚本,实现以下功能:1、保留所有原始类型、拓扑连接性信息,2.对类型序号和原子(键、键角等)序号进行重排,3.允许对各体系进行平移操作,4.考虑用面向对象思维操作data文件,最终实现封装成单一函数,5.if __name__ == "__main__"入口中用argparse实现命令行入口。” |
yyyyya 发表于 2025-3-19 14:36 你是指成键关系之类的参数么?那些好像确实会缺失。可以用topo addbond一类的命令添加,具体怎么用输入topo就会返回命令手册。 如果觉得重写成键关系太麻烦也可以直接用lammps把data文件组合起来(感觉这个方法也挺折腾的,要是有像gmx那种itp文件就好多了) 这里提供个例子 in文件: units real atom_style full pair_style lj/class2/coul/long 10 bond_style class2 angle_style class2 dihedral_style class2 improper_style class2 kspace_style pppm 1e-4 read_data C6.data extra/atom/types 5 & extra/bond/types 8 & extra/angle/types 15 & extra/dihedral/types 19 & extra/improper/types 12 & extra/bond/per/atom 4 & extra/angle/per/atom 6 & extra/dihedral/per/atom 12 & extra/improper/per/atom 6 & extra/special/per/atom 16 read_data C7O.data add append offset 3 4 7 7 6 shift 0.0 0.0 50.0 write_data out.data |
参与人数Participants 1 | eV +2 | 收起 理由Reason |
---|---|---|
| + 2 | 熟练地让人心疼 |
Lacrimosa 发表于 2025-3-19 13:36 非常感谢 刚刚试了一下确实可以实现 但我还有个问题就是这样导出的data文件里面缺失的部分应该用什么方式补全呢 |
本帖最后由 Lacrimosa 于 2025-3-19 13:37 编辑 VMD tkconsole里输入 ::TopoTools::mergemols [list 0 1] topo writelammpsdata out.data full 合并前确保不同结构间保持足够的距离,避免有原子重叠 |
手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图
GMT+8, 2025-8-16 21:38 , Processed in 0.173760 second(s), 26 queries , Gzip On.