Vasp计算出的材料能带的数据处理脚本
用Vasp计算材料的能带,用perl脚本将数据提取出来之后,产生一个band.dat文件,但是这个文件中的能量并没有减去费米能,所以手写了一个Python脚本用于处理该问题这个脚本大概是一年多之前写的,现在python基本忘的差不多了 QAQ对于perl脚本得到的能带文件band.dat ,放入origin后需要进行多行操作,将所有的能量都减去费米能,以得到可以直接画能带图的数据为了省略这个在or
·
用Vasp计算材料的能带,用perl脚本将数据提取出来之后,产生一个band.dat文件,但是这个文件中的能量并没有减去费米能,所以手写了一个Python脚本用于处理该问题
这个脚本大概是一年多之前写的,现在python基本忘的差不多了 QAQ
对于perl脚本得到的能带文件band.dat
,放入origin后需要进行多行操作,将所有的能量都减去费米能,以得到可以直接画能带图的数据
为了省略这个在origin中操作多行数据值的步骤,使用以下脚本
#!/bin/env python
from os import popen
fermi_e = popen("grep fermi OUTCAR |tail -1|awk '{print $3}'").readlines()[0]
print(fermi_e)
fermi = float(fermi_e)
band_flag = open("band.dat", 'r').readlines()
def subfermi(l, y):
return " ".join([str(float(i) - y) for i in l.split() if l.split().index(i) > 0]) + "\n"
bandat_flag = open("band-fermi.dat", "w")
for i in band_flag:
bandat_flag.write(i.split()[0] + " " + subfermi(i, fermi))
bandat_flag.close()
脚本比较简单 未添加注释 此外第一行的解释器申明路径需要根据Linux主机具体情况而定
在band.dat
所在路径下运行该脚本,生成band-fermi.dat
文件,对比经过origin多行数据值处理的文件,完全相同,脚本没问题。
很烂的脚本,而且有些鸡肋 随笔记一下 轻喷
更多推荐
已为社区贡献2条内容
所有评论(0)