24小时热门版块排行榜    

查看: 3970  |  回复: 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的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

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的回帖

绿遍山原

铜虫 (小有名气)

★
小木虫: 金币+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的回帖
普通回帖

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的回帖

绿遍山原

铜虫 (小有名气)

★
小木虫: 金币+0.5, 给个红包,谢谢回帖
其实算完后直接用xml读取更方便,除了电荷密度波函数,所有计算结果都在里面。
要夢遊,不要催眠。
5楼2014-08-27 08:20:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xujc1983

木虫 (著名写手)

苦逼青椒一枚

引用回帖:
4楼: Originally posted by lfhuang at 2014-08-26 22:31:05
能带不仅可以提取,还可以按照本征矢进行排序的:
http://blog.sciencenet.cn/home.php?mod=space&uid=345795&do=blog&quickforward=1&id=641013

厉害
6楼2014-08-27 09:02:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xujc1983

木虫 (著名写手)

苦逼青椒一枚

引用回帖:
5楼: Originally posted by 绿遍山原 at 2014-08-27 08:20:56
其实算完后直接用xml读取更方便,除了电荷密度波函数,所有计算结果都在里面。

xml里的结果太多,如果只是看能带结构的话,我个人觉着直接看ELGENVEL来的省事
7楼2014-08-27 09:02:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xujc1983

木虫 (著名写手)

苦逼青椒一枚

引用回帖:
8楼: Originally posted by 绿遍山原 at 2014-08-27 13:28:16
xml处理不麻烦,而且比直接读文本更容易点。
比如读能带的:
xml = etree.ElementTree(file = ‘vasprun.xml’)
def get_spin_polarized(xml):
    ispin = xml.xpath(r'//separator/i')
    ispin = int(is ...

强,学习学习
9楼2014-08-27 13:55:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Oristle

新虫 (初入文坛)

很好用,感谢分享
10楼2015-08-28 17:17:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xujc1983 的主题更新
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +6 ncTVBM6AOJHF 2026-11-04 12/600 2026-11-06 07:55 by GBJlw5zzHWpZ
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +8 ncTVBM6AOJHF 2026-11-04 20/1000 2026-11-06 07:55 by GBJlw5zzHWpZ
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +6 ncTVBM6AOJHF 2026-11-04 16/800 2026-11-06 07:55 by GBJlw5zzHWpZ
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 ELBZ6WwEaRj6 2026-11-05 8/400 2026-11-06 05:44 by qL1cU46YIdK0
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 ELBZ6WwEaRj6 2026-11-04 11/550 2026-11-06 05:43 by qL1cU46YIdK0
[基金申请] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 ELBZ6WwEaRj6 2026-11-04 11/550 2026-11-06 05:43 by qL1cU46YIdK0
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 ttH3f1oA6ace 2026-11-04 9/450 2026-11-06 05:21 by qL1cU46YIdK0
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +7 ncTVBM6AOJHF 2026-11-04 11/550 2026-11-06 05:15 by Equinoxhua
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 kvewwGtKktqB 2026-11-04 14/700 2026-11-06 05:10 by qL1cU46YIdK0
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +4 kvewwGtKktqB 2026-11-04 11/550 2026-11-06 05:10 by qL1cU46YIdK0
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +6 ncTVBM6AOJHF 2026-11-04 16/800 2026-11-06 04:58 by qL1cU46YIdK0
[公派出国] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +7 ncTVBM6AOJHF 2026-11-04 22/1100 2026-11-06 04:47 by qL1cU46YIdK0
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 ELBZ6WwEaRj6 2026-11-05 4/200 2026-11-06 02:37 by qL1cU46YIdK0
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ttH3f1oA6ace 2026-11-04 7/350 2026-11-06 02:13 by qL1cU46YIdK0
[考研] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 ttH3f1oA6ace 2026-11-04 10/500 2026-11-06 02:04 by qL1cU46YIdK0
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 hNpp4Y2CGvSC 2026-11-04 12/600 2026-11-06 01:53 by qL1cU46YIdK0
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +6 ncTVBM6AOJHF 2026-11-04 10/500 2026-11-06 01:51 by qL1cU46YIdK0
[硕博家园] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +5 ncTVBM6AOJHF 2026-11-04 10/500 2026-11-06 01:40 by qL1cU46YIdK0
[教师之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 ncTVBM6AOJHF 2026-11-04 12/600 2026-11-05 11:10 by PYZmcHr5kSaq
[基金申请] 各位基础老师们,看完中央《从严治党》的决定后,对学术界更加有信心了吧 +5 iaeyuan 2026-11-01 5/250 2026-11-04 14:43 by jinchengzi
信息提示
请填处理意见