使用python做到读取lammps产生的thermo数据,并画图;python文件;势能曲线

如题


前言

本人在用Lammps建模弛豫过程中发现很难肉眼观察势能的变化,因此针对thermo输出的数据进行了python程序的编写,只要将thermo的数据复制到txt文档里,再运行程序,就可以输出势能曲线


一、为什么要观察势能曲线

很简单,为了判断弛豫过程是否达到目的

二、使用方法

诸多安装使用内容不在此赘述

1.创建txt文件

我们常用的thermo命令输出的内容如图

可见有step、lx等等数据,我们从数据栏开始复制,写一个txt文件,位置就写在python程序运行的文件夹

在这里插入图片描述

在这里插入图片描述

2.写入代码

import numpy as np 
import matplotlib.pyplot as plt 

def openreadtxt(file_name): 
    data = [] 
    file = open(file_name, 'r')  # 打开文件 
    file_data = file.readlines()  # 读取所有行 
    for row in file_data: 
        tmp_list = row.split()  # 按‘,’切分每行的数据 
        tmp_list[-1] = tmp_list[-1].replace('\n',',') #去掉换行符
        data.append(tmp_list)  # 将每行数据插入data中 
    return data 

if __name__ == "__main__": 
    data = openreadtxt('test.txt') #此处是文件名
    print(data) 

c = np.array(data,dtype=float) 
x=c[:,0] #此处对应栏数,例如此处读取step栏,就是0
y=c[:,8] #此处对应栏数,例如此处读取PotEng栏,就是8
#print(x) 
#print(y) 
plt.plot(x, y, 'o') 
plt.show()

要注意的地方有:
1.文件名写作test.txt
2.y=c[:,8] 此处的数据可以变化,可以读势能,也可以读压力等等,看自己设置的thermo_style所对应的栏数,注意第一栏对应python中的顺序0

三、成果展示

输出图片如下
在这里插入图片描述
可以看到数据比较稳定

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python可以使用文件操作模块来读取LAMMPS的dump文件。下面是一个简单示例脚本: ```python with open('dump.file', 'r') as file: lines = file.readlines() # 获取原子数量 num_atoms_line = lines[3].split() num_atoms = int(num_atoms_line[0]) # 从第10行开始循环读取每个原子的信息 for i in range(9, 9+num_atoms): atom_line = lines[i].split() atom_id = int(atom_line[0]) atom_type = int(atom_line[1]) atom_x = float(atom_line[2]) atom_y = float(atom_line[3]) atom_z = float(atom_line[4]) velocity_x = float(atom_line[5]) velocity_y = float(atom_line[6]) velocity_z = float(atom_line[7]) # 进行进一步处理,例如打印原子信息等 print(f"Atom {atom_id}: Type {atom_type}, Position ({atom_x}, {atom_y}, {atom_z}), Velocity ({velocity_x}, {velocity_y}, {velocity_z}) ``` 在这个示例中,我们使用了`open`函数打开了一个名为`dump.file`的文件,并以只读模式打开。然后,我们使用`readlines`方法读取文件中的所有行,并将其存储在一个名为`lines`的列表中。 然后,我们提取了原子数量,并从第10行开始循环读取每个原子的信息。每一行都通过`split`方法分割成一个字符串列表,我们使用int和float函数将其转换为相应的整数和浮点数。 在我们获取了原子的各个属性之后,我们可以进行进一步的处理,例如打印原子的信息或进行其他计算。 请注意,上述示例脚本是一个简单的例子,实际情况中可能需要根据具体的dump文件格式进行适当的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值