Vasp计算后对高对称点的整理

本人为vasp初学者,没用过python。这次尝试用python写了一个脚本用来整理KLABELS以便在画图时直接读取数据,写的并不简洁,见谅!!

import pandas as pd
import numpy as np
import openpyxl
from openpyxl import load_workbook
import xlrd
import os

#————————————————————————处理KLABELS文件(对文件中不需要的数据行进行删除)————————————————————————

with open('KLABELS', "r") as f:                          #读取文本
    data = f.readlines()
    b = len(data)    
    f.close()
print(b)
dirtyid = [0,b-3,b-2,b-1,b]                              #这个想删除是第几行,根据自己想删的内容筛选出来,并将行数保存在dirtyid
new_data = []                                            #新建一个列表
for x in range(len(data)):
        if x not in dirtyid:                             #如果   data的行数  不在需要删除的行数里面
            new_data.append(data[x])                     #将不删的数据赋给另一个列表
 
with open('.\\KLABELS_new.txt','a+')as f:
        f.writelines(new_data)
        f.close
        
data = pd.read_table('KLABELS_new.txt',sep = '\t',header = None)
#print(data.iloc[-1,0])                                  #测试

#————————————————————————后处理KLABELS文件————————————————————————

file = open('KLABELS_new.txt','r')
lines = file.readlines()
file.close()
matrix = []
for line in lines:
    row = line.strip().split(' ')
    matrix.append(row)
    
print(matrix[1])                                         #测试矩阵存储高对称点信息是否成功

c = len(matrix)
print(len(matrix))                                       #测试获得存储高对称点矩阵的规格


wb = openpyxl.Workbook()
wb.save('KLABELS.xlsx')                                  #创建一个excel文档用来存储高对称点信息
wb = load_workbook('KLABELS.xlsx')
sheet = wb['Sheet']
i = 0
for i in range(c):                                       #遍历每一格存储高对称点信息
    sheet.cell(i+1,1).value = matrix[i][0]
    sheet.cell(i+1,2).value = float(matrix[i][-1])
    i = i + 1

wb.save('KLABELS.xlsx')
#————————————————————————高对称点信息于excel文件中存储完成后————————————————————————

worksheet = xlrd.open_workbook('KLABELS.xlsx')
sheet = worksheet.sheet_by_name('Sheet')
cols = sheet.col_values(1)
cols1 = sheet.col_values(0)
print(cols)
print(cols1)

os.remove('KLABELS_new.txt')                             #删除处理痕迹
os.remove('KLABELS.xlsx')                                #删除处理痕迹
#————————————————————————成功存储高对称点到一个数组里————————————————————————
#————————————————————————验证无误————————————————————————

回答: 声子谱计算和能带计算对称点是不一样的。在获取声子谱后的处理步骤中,可以看到两种不同的方法。引用\[1\]和引用\[2\]中提到的方法是通过phonopy软件进行声子谱计算的步骤,其中需要指定band.conf文件来计算声子谱,并且在输出的phonon.out文件中可以找到对称点在x轴上的坐标。而引用\[3\]中提到的方法是通过material phonon软件进行声子谱计算的步骤,其中需要设置ldisp为true,并指定nq1、nq2、nq3来选择声子的计算方式。所以,声子谱计算和能带计算对称点是不一样的,具体计算步骤和参数设置也有所不同。 #### 引用[.reference_title] - *1* *2* [VASP计算笔记_声子谱计算](https://blog.csdn.net/tiandijunhao/article/details/110622248)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [QE:利用ph.x 计算声子谱input 注意事项(包括单个q点的计算)](https://blog.csdn.net/Altruist/article/details/118224335)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值