版块导航
正在加载中...
客户端APP下载
论文辅导
申博辅导
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(2599)
>
文献求助
(127)
>
虫友互识
(126)
>
休闲灌水
(59)
>
导师招生
(49)
>
考博
(36)
>
博后之家
(23)
>
基金申请
(21)
>
硕博家园
(21)
>
绿色求助(高悬赏)
(18)
>
论文投稿
(17)
>
招聘信息布告栏
(15)
>
考研
(15)
>
论文道贺祈福
(14)
>
分子模拟
(11)
>
找工作
(11)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
第一性原理
»
Wien2k&FLAPW&ELK
»
【原创】处理elk能带的程序
5
1/1
返回列表
查看: 2543 | 回复: 16
只看楼主
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
【奖励】
本帖被评价13次,作者锐利的碎片增加金币
10
个
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖
锐利的碎片
木虫
(正式写手)
1ST强帖: 1
应助: 136
(高中生)
金币: 3637.1
帖子: 988
在线: 1224.9小时
虫号: 961933
[
资源
]
【原创】处理elk能带的程序
自己写的用python处理elk能带的程序
回复此楼
» 收录本帖的淘帖专辑推荐
材料计算模拟实用技巧
第一性原理计算辅助工具
» 猜你喜欢
推荐一本书
已经有7人回复
参与限项
已经有4人回复
有没有人能给点建议
已经有5人回复
假如你的研究生提出不合理要求
已经有12人回复
全日制(定向)博士
已经有5人回复
萌生出自己或许不适合搞科研的想法,现在跑or等等看?
已经有4人回复
Materials Today Chemistry审稿周期
已经有4人回复
对氯苯硼酸纯化
已经有3人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复
» 本主题相关价值贴推荐,对您同样有帮助:
怎么从能带结构图上得出材料的有效质量、迁移率等电学参数
已经有4人回复
求助苯炔的计算问题,如何计算苯炔的最优结构以及电荷密度。
已经有7人回复
wien2k在终端下计算能带,改怎么做?
已经有6人回复
合金成分改变,凝固过程中析出的相的起始温度是否会改变?
已经有6人回复
请教一下那款免费软件的结构优化功能比较好用?
已经有7人回复
求处理vasp能带的小程序
已经有14人回复
介电常数计算方法
已经有13人回复
第一性原理计算硬度时Eg的计算方法
已经有7人回复
【活动】Show 脚本,赢奖励
已经有23人回复
【求助】怪异的运算时间,求真相
已经有8人回复
【求助】有没有能加磁场条件下进行第一性原理计算的软件?
已经有7人回复
【zhou2009个人文集】关于电荷计算的第二组分子
已经有4人回复
【原创】DFT计算体会
已经有20人回复
【原创】elk中的状态方程拟合工具eos
已经有128人回复
【活动】各种量子力学计算软件使用经验谈(回复就有奖励,讲述详细的奖励5-10金币)
已经有30人回复
【讨论】机械制图基础—看看你的立体感—2D画3D
已经有28人回复
【其他】vasp相关技术有奖征集!
已经有35人回复
1楼
2011-01-06 14:46:10
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
liangpei
木虫
(职业作家)
应助: 0
(幼儿园)
金币: 2080.1
帖子: 3069
在线: 1061.6小时
虫号: 254383
★★★ 三星级,支持鼓励
这个程序是支持wien2k还是vasp的》》》
赞
一下
回复此楼
高级回复
7楼
2011-08-19 10:29:23
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
查看全部 17 个回答
锐利的碎片
木虫
(正式写手)
1ST强帖: 1
应助: 136
(高中生)
金币: 3637.1
帖子: 988
在线: 1224.9小时
虫号: 961933
用面向对象重新写了一遍程序,现在只写了elk的类,处理其他程序(比如vasp)结果的程序可以很方便的加进来。主程序部分没写,这个应该没有多难。
CODE:
class Band():
def write_data(self):
if self.nspin==1:
fout=file('band.data','w')
for i in range(self.ndiv):
fout.write("%12.8f "%self.band[0][i])
for j in range(self.nband):
fout.write("%12.8f "%self.band[j+1][i])
fout.write('\n')
fout.close()
elif self.nspin==2:
foutup=file('bandup.data','w')
foutdn=file('banddn.data','w')
for i in range(self.ndiv):
foutup.write("%12.8f "%self.band[0][i])
foutdn.write("%12.8f "%self.band[0][i])
for j in range(self.nband/2):
foutup.write("%12.8f "%self.band[j+1][i])
foutup.write('\n')
for j in range(self.nband/2,self.nband):
foutdn.write("%12.8f "%self.band[j+1][i])
foutdn.write('\n')
foutup.close()
foutdn.close()
def view_band(self,emin,emax,title,xlabel,ylabel):
import numpy as np
import matplotlib.pyplot as plt
#plot setup
plt.title(title)
plt.xlabel(xlabel)
plt.ylabel(ylabel)
plt.xlim(self.kpos[0],self.kpos[-1])
plt.ylim(emin,emax)
plt.xticks(self.kpos,self.kpname)
plt.grid(linestyle='-')
plt.gca().xaxis.grid(True)
plt.gca().yaxis.grid(False)
#plot bands
for i in range(self.nband):
x=self.band[0]
y=self.band[i+1]
if np.min(y)
emax:
continue
else:
if self.nspin==1:
plt.plot(x,y,'r-')
elif self.nspin==2:
if i
plt.plot(x,y,'r-')
else:
plt.plot(x,y,'b--')
plt.plot([self.kpos[0],self.kpos[-1]],[0.0,0.0],\
color='black',linestyle='--')
plt.text(0.0,0.1,r'$E_F$=%6.3f eV'%self.fermi)
plt.show()
class ElkBand(Band):
def __init__(self):
import sys
import numpy as np
try:
fmain=file('elk.in','r')
fpos=file('BANDLINES.OUT','r')
fband=file('BAND.OUT','r')
ffermi=file('EFERMI.OUT','r')
except IOError:
print 'Error in open nessary inputs. Check your input file'
sys.exit()
# initalize
self.kpname=[] #names of kpoints
self.kpos=[] #positions of special kpoints in G space
self.nspin=1 #number of spins
self.nband=0 #number of band
self.band=[] #banddata
# get self.nspin self.kpname self.nkp(number of special kpoints)
# self.ndiv
while True:
tmp=fmain.readline()
if len(tmp)==0:
break
if tmp.strip()=='spinpol':
if fmain.readline().strip()=='.true.':
self.nspin=2
if tmp.strip()=='plot1d':
self.nkp,self.ndiv=fmain.readline().split()[0:2]
self.nkp=int(self.nkp)
self.ndiv=int(self.ndiv)
for i in range(self.nkp):
self.kpname.append('$'+str(fmain.readline().split()[3])+'$')
# get self.kpos
while True:
tmp=fpos.readline()
if len(tmp)==0:
break
self.kpos.append(float(tmp.split()[0]))
fpos.readline()
fpos.readline()
# get self.fermi
self.fermi=27.2114*float(ffermi.readline().strip())
# get self.nband self.band
while True:
tmp=fband.readline()
if len(tmp)==0:
break
if len(tmp.strip())==0 and len(tmp)!=0:
self.nband=self.nband+1
rawband=np.loadtxt('BAND.OUT')
kp=rawband[0:self.ndiv,0]
self.band.append(kp)
for i in range(self.nband):
eig=27.2114*rawband[i*self.ndiv:(i+1)*self.ndiv,1]
self.band.append(eig)
#close files
fmain.close()
fpos.close()
fband.close()
ffermi.close()
def write_data(self):
Band.write_data(self)
def view_band(self,emin=-10.0,emax=15.0,title='Band Plot',\
xlabel='K-Path',ylabel='Energy / eV'):
Band.view_band(self,emin,emax,title,xlabel,ylabel)
[
Last edited by 锐利的碎片 on 2011-2-26 at 12:17
]
赞
一下
回复此楼
2楼
2011-02-26 09:15:54
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
guohuazhong
至尊木虫
(职业作家)
1ST强帖: 1
应助: 52
(初中生)
贵宾: 0.032
金币: 35131.5
帖子: 3924
在线: 885.6小时
虫号: 550098
支持原创,赞一个,顶!!
回复此楼
4楼
2011-02-26 13:26:03
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
lixiao85
银虫
(小有名气)
应助: 1
(幼儿园)
金币: 371.2
帖子: 132
在线: 75.5小时
虫号: 1142488
★★★★★ 五星级,优秀推荐
或许以后能用上
回复此楼
5楼
2011-02-26 14:49:39
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
简单回复
xh512
8楼
2012-01-06 07:17
回复
五星好评
顶一下,感谢分享!
tanloer
9楼
2012-02-13 15:28
回复
五星好评
顶一下,感谢分享!
mink
10楼
2014-06-18 07:40
回复
五星好评
顶一下,感谢分享!
1024247900
11楼
2014-07-03 21:32
回复
五星好评
顶一下,感谢分享!
zwynu
12楼
2014-09-24 21:57
回复
五星好评
顶一下,感谢分享!
Toapollo
13楼
2015-03-28 20:58
回复
三星好评
顶一下,感谢分享!
查看全部 17 个回答
☆ 无星级
★ 一星级
★★★ 三星级
★★★★★ 五星级
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
高级回复
(可上传附件)
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
信息提示
关闭
请填处理意见
关闭
确定