保姆级教程 | Linux中grep命令使用 & 分子动力学轨迹文件输出特定原子电荷值

背景

由于课题需要,现根据lammps运行得到的轨迹需要提取出目标原子的电荷值

步骤

思路

首先确定目标原子在轨迹中的序号(lammps每个原子都有自己独立的【分子号+原子号】)
其次要十分清楚体系中的分子号排序方式,然后只要筛选出目标原子的编号即可知道电荷值

1. 进入目标文件夹(conp-04_2V-02)
2. 确定目标原子序号:

vi lm-conp-0V.inp

查看阴阳离子数和气体个数,进行求和,记为A:106*2+32

其中,type里最后一位代表金属原子(我们的目标原子),记为B:21

不放心的话,可以查看最后一帧输出的data文件,序号仍为21

vi res.002

3. 输出最后一帧里目标原子的电荷值:

(如果lammps输出的data文件轨迹部分的原子序号没有按从小到大的排列的情况:) 

grep "A+1 B" res.002

 grep是linux中的提取命令,使用格式参考:linux命令查询某个条件的前10行

"A+1 B" 的格式是熟知res.002中轨迹格式后的总结

第一次获得的第一列数值记为C:5095

再取A+3输出一次,第一列数值记为D:6102

(两次是因为有上下两个极板,A+3是熟知原子序号的叠加方式后的总结,A和A+3都是目标原子所在的分子号,B是目标原子的原子号)

4. 如果是课题需要,建议使用目标原子电荷值的均值(虽然目前体系也处于平衡态,但个别数据存在波动性而不具备代表性)

在运行过程中,mote.charge文件存放了每一帧内所有原子的电荷值

grep "C " mote.charge | tail -n 120

这里注意:C后面有个空格(否则重复的太多了)

tail指的是输出mote.charge尾部的数据,如果是头部的话用head

这段命令意义:输出mote.charge中满足条件("")的尾部120行数据到屏幕上,如果需要放到文件put.txt里,可以用下面的命令:

grep "C " mote.charge | tail -n 120 > put.txt

 

 第一列为原子序号值,然后三列为原子的xyz值,最后一列是电荷值

将最后一列拷贝到Excel里,数据-分列-完成删除杂乱的内容,数据-筛选(核查原子序号是否都是满足条件的),求和后取均值即可

(没删干净:)

(删干净了:)

5. 最后一帧和求均值的结果对比:(求均值更可靠)

6.把数据导入origin中:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值