24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 3433  |  回复: 11
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xujc1983

木虫 (著名写手)

苦逼青椒一枚

[交流] 提取能带数据脚本 已有6人参与

小木虫中很多处理VASP结果的脚本,但一直没有找到一个自己习惯的处理能带数据的脚本,so,干脆自己写一个吧
此python脚本需要读取KPOINTS、OUTPUT和EIGENVEL文件,其中KPOINT文件中要求是能带计算的line-mode,并且每个特殊k点的符号也要写上
最后输出band.txt结果,包括k点的序号、符号、累加的距离、k点坐标、及对应各条能带的能量值。
重复的k点已经去掉了,也可以自己修改显示出来。用origin导入就可以直接画图了。
希望大家喜欢,多提意见,多多交流忘记说了,脚本是基于python的,复制到结果所在文件夹,直接执行
./transband.py即可得到band.txt结果文件。
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : transband.py
  • 2014-08-26 16:27:05, 3.43 K

» 收录本帖的淘帖专辑推荐

第一性原理计算 ML相关

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

绿遍山原

铜虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
7楼: Originally posted by xujc1983 at 2014-08-27 09:02:49
xml里的结果太多,如果只是看能带结构的话,我个人觉着直接看ELGENVEL来的省事...

xml处理不麻烦,而且比直接读文本更容易点。
比如读能带的:
xml = etree.ElementTree(file = ‘vasprun.xml’)
def get_spin_polarized(xml):
    ispin = xml.xpath(r'//separator[@name="electronic spin"]/i[@name="ISPIN"]')
    ispin = int(ispin[0].text)
    return ispin == 2
def get_bands(xml, is_spin_polarized):
    band_path = r'//calculation/eigenvalues/array/set/set[@comment="spin {}"]/set[{}]/r'
    high_kpts = xml.xpath(r'//kpoints/generation[@param="listgenerated"]/v')
    kpts = xml.xpath(r'/modeling/kpoints/varray[@name="kpointlist"]/v')
    eigs = []
    for i in xrange(len(kpts)):
        eigs.append(xml.xpath(band_path.format(1, i + 1)))
    if is_spin_polarized:
        for i in xrange(len(kpts)):
            eigs.append(xml.xpath(band_path.format(2, i + 1)))
    bands = []
    dk = 0.0
    def kpdist(i, j):
        ki = [float(i) for i in kpts.text.split()]
        kj = [float(i) for i in kpts[j].text.split()]
        return ((kj[0] - ki[0])**2 + (kj[1] - ki[1])**2 + (kj[2] - ki[2])**2)**0.5
    for i in xrange(len(kpts)):
        if i > 0:
            dk += kpdist(i, i - 1)
        cb = [dk]
        for j in xrange(len(eigs[0])):
            cb.append(float(eigs[j].text.split()[0]))
        if is_spin_polarized:
            for j in xrange(len(eigs[0])):
                cb.append(float(eigs[i + len(kpts)][j].text.split()[0]))
        bands.append(cb)
    lines = []
    if high_kpts:
        ck = high_kpts[0]
        dk = 0.0
        for ik in high_kpts:
            ki = [float(i) for i in ck.text.split()]
            kj = [float(i) for i in ik.text.split()]
            dk += ((kj[0] - ki[0])**2 + (kj[1] - ki[1])**2 + (kj[2] - ki[2])**2)**0.5
            ck = ik
            lines.append(dk)
    return bands, line
这样不论是否用line都不会有问题,而且只要很少修改就能处理fatband的计算。
要夢遊,不要催眠。
8楼2014-08-27 13:28:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 12 个回答

huterx

金虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
真的很厉害 谢谢LZ贡献
2楼2014-08-26 16:46:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

头狼2013

金虫 (正式写手)

顶一个

[ 发自小木虫客户端 ]
3楼2014-08-26 19:38:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lfhuang

木虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
能带不仅可以提取,还可以按照本征矢进行排序的:
http://blog.sciencenet.cn/home.php?mod=space&uid=345795&do=blog&quickforward=1&id=641013
先进使役材料计算(https://aidme.nimte.ac.cn)
4楼2014-08-26 22:31:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 生医工0831调剂求推荐 +4 小熊睿睿_s 2026-03-27 6/300 2026-03-31 17:12 by 记事本2026
[考研] 329求调剂,一志愿西北工业大学,材料工程(085601) +6 小小机灵虫 2026-03-29 12/600 2026-03-31 16:58 by 记事本2026
[考研] 311求调剂 +9 蓝月亮亮 2026-03-30 9/450 2026-03-31 16:32 by yedezhan
[考研] 理学07化学 303求调剂 +8 睿08 2026-03-27 8/400 2026-03-31 16:31 by 690616278
[考研] 362求调剂 +9 西南交材料专硕3 2026-03-31 9/450 2026-03-31 16:25 by w虫虫123
[考研] 343求调剂 +8 爱羁绊 2026-03-28 8/400 2026-03-31 16:12 by 不吃魚的貓
[考研] 化学0703 调剂 306分 一志愿211 +10 26要上岸 2026-03-28 10/500 2026-03-31 16:04 by 记事本2026
[考研] 353求调剂 +3 江上枫_26 2026-03-28 3/150 2026-03-31 15:53 by jp9609
[考研] 347求调剂 +11 山顶见α 2026-03-25 11/550 2026-03-31 14:14 by 记事本2026
[考研] 272求调剂,接受跨专业调剂! +3 闲鱼卢 2026-03-31 3/150 2026-03-31 13:00 by 替代品000
[考博] 材料专业申博 +5 杜雨婷dyt 2026-03-29 5/250 2026-03-31 11:19 by oooqiao
[考研] 一志愿大连理工大学,机械工程学硕,341 +3 西瓜田的守望者 2026-03-30 3/150 2026-03-31 11:08 by asdfzly
[考研] 083000学硕274求调剂 +12 Li李鱼 2026-03-26 12/600 2026-03-31 10:01 by cal0306
[考研] 304材料求调剂 +5 钟llll 2026-03-26 5/250 2026-03-30 19:37 by 源_2020
[考研] 342求调剂 +4 加油a李zs 2026-03-26 4/200 2026-03-30 16:39 by 晶体之美
[考研] 343求调剂085601 +3 要努力学习x 2026-03-29 3/150 2026-03-29 18:35 by wxiongid
[考研] 085602 化工专硕 338分 求调剂 +12 路痴小琪 2026-03-27 12/600 2026-03-28 15:41 by L135790
[考研] 0703化学求调剂,各位老师看看我!!! +5 祁祺祺 2026-03-25 5/250 2026-03-27 21:44 by 东方猪猪
[考研] 调剂推荐 +5 清酒714 2026-03-26 6/300 2026-03-27 11:12 by 不吃魚的貓
[考研] 机械学硕310分,数一英一,一志愿211本科双非找调剂信息 +3 @357 2026-03-25 3/150 2026-03-26 16:34 by by.MENG
信息提示
请填处理意见