用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多行数据值处理的文件,完全相同,脚本没问题。

很烂的脚本,而且有些鸡肋 随笔记一下 轻喷

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐