python处理lammps data文件异常成键

14 篇文章 28 订阅
10 篇文章 3 订阅
事情是这样的,之前用packmol堆叠了模型后发现本不应该成键的离子键也形成了化学键,手动删除又怕出错就随便写 了段脚本处理。

packmol是靠几何关系硬塞建模的,如果原子过近就会自动成键,导致模型错误。

原模型在隐藏原子后显示如下:

蓝色和绿色部分的离子也形成了化学键。

根据data文件的格式,删除所有包含离子的bonds即可:

f1 = open('mxene.data','r')
f2 = open('mxene.data','r')
out   = open("result.txt", "w")#输出文件
atoms = f1.readlines()[21:7622]#源文件原子部分
bonds = f2.readlines()[7626:21375]#原文件bond部分
#判断成键的两个原子是否包含离子,不包含就写入输出文件。
for line in bonds:
    if atoms[int(line.split()[3])-1].split()[2] != '4' and atoms[int(line.split()[3])-1].split()[2] != '5' and atoms[int(line.split()[3])-1].split()[2] != '7' and atoms[int(line.split()[2])-1].split()[2] != '4' and atoms[int(line.split()[2])-1].split()[2] != '5' and atoms[int(line.split()[2])-1].split()[2] != '7' :
        out.writelines(line)
print('done')#完成写入

输出文件中第一列的序号在excel中修改后粘贴回源文件bond部分即可,最终处理后的模型如下:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)是一种常用的分子动力学模拟软件,可以模拟原子和分子在不同温度、压力和碰撞条件下的行为。LAMMPS data文件LAMMPS软件所需的输入文件之一。 要读取LAMMPS data文件,首先需要了解文件的基本结构。data文件由四个部分组成:header、atoms、bonds和angles。header部分包括模拟的尺寸、原子和分子类型的数量、分子拓扑结构等信息;atoms、bonds和angles部分则分别列出原子、键和角的信息,包括原子或分子在模拟中的编号、坐标、类型等。 读取LAMMPS data文件时,可以使用常用的数据处理软件或编程语言来处理数据。具体步骤包括读取文件、分析文件结构、提取所需信息和执行模拟等。例如,可以使用Python编写程序来读取并处理LAMMPS data文件: 1. 读取文件 使用Python的open()函数打开data文件,并使用readlines()方法读取文件中的每一行数据,将其存储为一个列表。 2. 分析文件结构 使用Python的循环语句和字符串处理函数,分析data文件的结构,提取header、atoms、bonds和angles部分所包含的信息。 3. 提取所需信息 根据模拟需求,从header、atoms、bonds和angles部分中提取所需的信息,例如原子或分子的坐标、类型和速度等。 4. 执行模拟 将提取的信息输入到LAMMPS软件中,执行模拟并记录结果。 总之,读取LAMMPS data文件需要具备基本的文件处理和编程能力,可以借助现有的软件和工具,也可以编写自己的程序来实现。掌握数据处理和编程技能,可以更好地利用LAMMPS软件进行分子动力学模拟,并深入理解原子和分子的行为。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛定谔的青蛙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值