版块导航
正在加载中...
客户端APP下载
论文辅导
调剂小程序
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(1452)
>
基金申请
(59)
>
虫友互识
(51)
>
文献求助
(21)
>
导师招生
(20)
>
硕博家园
(19)
>
考博
(9)
>
论文投稿
(8)
>
教师之家
(7)
>
考研
(5)
>
休闲灌水
(5)
>
博后之家
(4)
>
公派出国
(4)
>
论文道贺祈福
(3)
>
找工作
(3)
>
留学生活
(2)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
第一性原理
»
Vasp&MedeA
»
【分享】一个绘制band的python小程序
5
1/1
返回列表
查看: 1398 | 回复: 4
只看楼主
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖
hakuna
木虫
(知名作家)
1ST强帖: 3
应助: 82
(初中生)
金币: 8735.9
散金: 158
红花: 126
帖子: 5599
在线: 1367.2小时
虫号: 167622
注册: 2006-01-15
专业: 考古理论
[交流]
【分享】一个绘制band的python小程序
已有4人参与
网上淘来的,向作者致敬!
不做能带,不懂python,未经测试
原文地址:http://people.vanderbilt.edu/~brandon.g.cook/vaspbandplot/vband.py
CODE:
!/usr/bin/env python
#make a simple plot of band structure from vasp calculation
# -Brandon Cook April 7, 2010
from numpy import *
import pylab
class OUTCAR():
def __init__(self):
f = open('OUTCAR', 'r')
s = f.read()
f.close()
i = s.find('E-fermi')
self.ef = float(s[i:i+19].split()[-1])
i = s.find('NBANDS')
self.nbands = int(s[i:i+15].split()[-1])
i = s.find('NKPTS')
self.nkpts = int(s[i:i+15].split()[-1])
class KPOINTS():
def __init__(self):
# kpts file should be in line mode
# only take 1 line for now
f = open('KPOINTS', 'r')
s = f.readlines()
f.close()
l1 = s[-2].split()
l2 = s[-1].split()
self.p1 = array([ l1[0], l1[1], l1[2] ], float)
self.p2 = array([ l2[0], l2[1], l2[2] ], float)
class BandStructure():
# Just take all the points and make a scatter plot
# todo: connect the lines
def __init__(self):
f = open('EIGENVAL', 'r')
s = f.readlines()
f.close()
oc = OUTCAR()
kp = KPOINTS()
axis = kp.p2 - kp.p1
axis /= linalg.norm(axis)
nbands = oc.nbands
nkpts = oc.nkpts
kpts = zeros( nkpts*nbands )
en = zeros( nkpts*nbands )
istart = 7
for k in range(0, nkpts):
ik = istart + k*(nbands+2)
kpt = s[ik].split()
kpt = array([kpt[0], kpt[1], kpt[2]], float)
x = dot(kpt, axis)
i1 = k*nbands
i2 = (k+1)*nbands
kpts[i1:i2] = x
for ib in range(0, nbands):
j1 = ik + 1 + ib
j2 = i1 + ib
en[j2] = float(s[j1].split()[-1])
pylab.scatter(kpts, en, s=1)
# add a line for the fermi energy
xmin = 0.0
xmax = linalg.norm(kp.p2 - kp.p1)
x = linspace(xmin, xmax, num=100, endpoint=True)
y = oc.ef * ones(100)
pylab.plot(x,y)
pylab.show()
o = OUTCAR()
print 'fermi energy, nbands, nkpts'
print o.ef,o.nbands,o.nkpts
b = BandStructure()
回复此楼
» 猜你喜欢
依托企业入选了国家启明计划青年人才。有无高校可以引进的。
已经有9人回复
有时候真觉得大城市人没有县城人甚至个体户幸福
已经有11人回复
表哥与省会女结婚,父母去帮带孩子被省会女气回家生重病了
已经有7人回复
同年申请2项不同项目,第1个项目里不写第2个项目的信息,可以吗
已经有8人回复
依托企业入选了国家启明计划青年人才。有无高校可以引进的。
已经有10人回复
天津大学招2026.09的博士生,欢迎大家推荐交流(博导是本人)
已经有9人回复
有院领导为了换新车,用横向课题经费买了俩车
已经有10人回复
AI 太可怕了,写基金时,提出想法,直接生成的文字比自己想得深远,还有科学性
已经有6人回复
高级回复
» 本主题相关价值贴推荐,对您同样有帮助:
推荐几个vasp处理计算结果的python脚本
已经有66人回复
Python写的arcgis中点坐标txt转面状shp的小程序
已经有90人回复
求一个简单的读写文件的小程序。。。
已经有4人回复
用phonopy计算声子谱已得到FORCE_SETS,之后我怎么得到声子谱?
已经有7人回复
《python科学计算》已经出版了
已经有36人回复
运行一个python程序,出现问题,请高手赐教
已经有9人回复
【原创】处理elk能带的程序
已经有16人回复
【求助】求助安装abinitbandstructuremaker.py?
已经有3人回复
1楼
2010-12-26 17:32:54
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
akakcolin
金虫
(著名写手)
应助: 3
(幼儿园)
金币: 685.9
散金: 51
红花: 2
帖子: 1010
在线: 524.6小时
虫号: 321213
注册: 2007-03-10
专业: 力学
python 是个好语言啊
赞
一下
回复此楼
高级回复
为人应当诚实正直不能心怀叵测心眼明亮才能迎来幸福避开灾祸盲目者若有人指点才不会迷失道路若单独上路就难以保证不误入岐途
5楼
2010-12-27 23:09:27
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
查看全部 5 个回答
gavinliu7390
木虫
(著名写手)
叶落鹰飞
1ST强帖: 3
应助: 51
(初中生)
贵宾: 0.481
金币: 1564.7
散金: 2975
红花: 34
帖子: 1278
在线: 241.4小时
虫号: 675997
注册: 2008-12-17
性别: GG
专业: 凝聚态物性I:结构、力学和
★
小木虫(金币
+0.5
):给个红包,谢谢回帖交流
执行不了, 错误很多。
赞
一下
(1人)
回复此楼
真理是一点点接近的!
3楼
2010-12-27 10:44:18
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
westmonster
金虫
(正式写手)
应助: 0
(幼儿园)
金币: 5637.3
帖子: 401
在线: 236.4小时
虫号: 456224
注册: 2007-11-11
专业: 凝聚态物性 II :电子结构
pylab是嘛?孤陋寡闻了,改改还是能用的,谢谢楼主分享。
赞
一下
回复此楼
蝉,于其脱壳展翅,则蛰居地下,似无声无息,实则以备有所为。
4楼
2010-12-27 12:54:53
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
查看全部 5 个回答
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
高级回复
(可上传附件)
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
信息提示
关闭
请填处理意见
关闭
确定