Znn3bq.jpeg
±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 2668  |  »Ø¸´: 16
¡¾½±Àø¡¿ ±¾Ìû±»ÆÀ¼Û13´Î£¬×÷ÕßÈñÀûµÄË鯬Ôö¼Ó½ð±Ò 10 ¸ö

ÈñÀûµÄË鯬

ľ³æ (ÕýʽдÊÖ)


[×ÊÔ´] ¡¾Ô­´´¡¿´¦ÀíelkÄÜ´øµÄ³ÌÐò

×Ô¼ºÐ´µÄÓÃpython´¦ÀíelkÄÜ´øµÄ³ÌÐò
»Ø¸´´ËÂ¥

» ÊÕ¼±¾ÌûµÄÌÔÌûר¼­ÍƼö

²ÄÁϼÆËãÄ£ÄâʵÓü¼ÇÉ µÚÒ»ÐÔÔ­Àí¼ÆË㸨Öú¹¤¾ß

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ÈñÀûµÄË鯬

ľ³æ (ÕýʽдÊÖ)


ÓÃÃæÏò¶ÔÏóÖØÐÂдÁËÒ»±é³ÌÐò£¬ÏÖÔÚֻдÁË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µÄ»ØÌû

akakcolin

½ð³æ (ÖøÃûдÊÖ)


¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶,ÓÅÐãÍÆ¼ö

ÔÞÔÞ
3Â¥2011-02-26 11:39:46
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ö§³ÖÔ­´´£¬ÔÞÒ»¸ö£¬¶¥£¡£¡
4Â¥2011-02-26 13:26:03
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

lixiao85

Òø³æ (СÓÐÃûÆø)


¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶,ÓÅÐãÍÆ¼ö

»òÐíÒÔºóÄÜÓÃÉÏ
5Â¥2011-02-26 14:49:39
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶,ÓÅÐãÍÆ¼ö

¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
6Â¥2011-02-26 16:30:45
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

liangpei

ľ³æ (Ö°Òµ×÷¼Ò)


¡ï¡ï¡ï ÈýÐǼ¶,Ö§³Ö¹ÄÀø

Õâ¸ö³ÌÐòÊÇÖ§³Öwien2k»¹ÊÇvaspµÄ¡·¡·¡·
7Â¥2011-08-19 10:29:23
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

chambana

Ìú³æ (³õÈëÎÄ̳)


Ö§³ÖÔ­´´£¬ÔÞÒ»¸ö£¬¶¥£¡£¡
14Â¥2016-10-20 07:31:08
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

jzjy1994

гæ (СÓÐÃûÆø)


¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶,ÓÅÐãÍÆ¼ö

´óÀÐ
17Â¥2017-10-28 17:41:39
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
¼òµ¥»Ø¸´
xh5128Â¥
2012-01-06 07:17   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
tanloer9Â¥
2012-02-13 15:28   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
mink10Â¥
2014-06-18 07:40   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
102424790011Â¥
2014-07-03 21:32   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
zwynu12Â¥
2014-09-24 21:57   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
Toapollo13Â¥
2015-03-28 20:58   »Ø¸´  
ÈýÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
gooselin15Â¥
2016-11-23 14:11   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
whyyzf572516Â¥
2017-10-27 17:10   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ ÈñÀûµÄË鯬 µÄÖ÷Ìâ¸üÐÂ
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼²©] É격 +8 IQwQl 2026-04-04 8/400 2026-04-08 09:43 by 0608104024
[¿¼ÑÐ] 307Çóµ÷¼Á +14 ³¬¼¶ÒÁ°º´óÍõ 2026-04-06 14/700 2026-04-08 07:03 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] Ò»Ö¾Ô¸211£¬»¯Ñ§Ñ§Ë¶£¬310·Ö£¬±¾¿ÆÖصãË«·Ç£¬Çóµ÷¼Á +12 ŬÁ¦·Ü¶·112 2026-04-06 13/650 2026-04-07 23:49 by JourneyLucky
[¿¼ÑÐ] Ò»Ö¾Ô¸211µç×ÓÐÅÏ¢347Çóµ÷¼Á +3 554916 2026-04-03 3/150 2026-04-07 23:22 by ÈçÈôʱ¹âµ¹Á÷
[¿¼ÑÐ] 293·ÖÇóµ÷¼Á£¬ÍâÓïΪ¶íÓï +5 ¼ÓÒ»Ò»¾Å 2026-04-07 7/350 2026-04-07 23:04 by JourneyLucky
[¿¼ÑÐ] 285Çóµ÷¼Á +11 AZMK 2026-04-05 17/850 2026-04-07 19:05 by ÖзÉÔº¿Õ¹ÜѧԺÑ
[¿¼ÑÐ] 312Çóµ÷¼Á +18 gtw1 2026-04-06 20/1000 2026-04-07 18:16 by À¶ÔÆË¼Óê
[¿¼ÑÐ] Çóµ÷¼Á +11 ÕÅzic 2026-04-05 12/600 2026-04-07 17:20 by éÙ߯£¡
[¿¼ÑÐ] 081700ѧ˶£¬323·Ö£¬Ò»Ö¾Ô¸Öйúº£Ñó´óѧÇóµ÷¼ÁѧУ +19 ÅûÐÇºÓ 2026-04-04 19/950 2026-04-07 15:00 by Éϰ¶¿ì¿ì
[¿¼ÑÐ] 286Çóµ÷¼Á +20 Faune 2026-04-06 20/1000 2026-04-07 11:33 by Ê«Óë×ÔÓÉ
[¿¼ÑÐ] 266·Ö£¬Ò»Ö¾Ô¸µçÆø¹¤³Ì£¬±¾¿Æ²ÄÁÏ£¬Çó²ÄÁÏרҵµ÷¼Á +12 ÍÛºôºßºôºß 2026-04-01 13/650 2026-04-07 10:02 by zhen¡«
[¿¼ÑÐ] ²ÄÁϵ÷¼Á +5 СÁõͬѧ߹߹ 2026-04-06 5/250 2026-04-06 18:34 by sherry_1901
[¿¼ÑÐ] 0854Çóµ÷¼Á +4 assdll 2026-04-05 4/200 2026-04-06 12:29 by ÖзÉÔº¿Õ¹ÜѧԺÑ
[¿¼ÑÐ] 282Çóµ÷¼Á +3 aaa³µÁ¾ 2026-04-01 3/150 2026-04-05 17:03 by yulian1987
[¿¼ÑÐ] ¿¼Ñе÷¼Á +3 mcbbc 2026-04-04 3/150 2026-04-05 10:03 by barlinike
[¿¼ÑÐ] Ò»Ö¾Ô¸±±½»´ó²ÄÁϹ¤³Ì×Ü·Ö358 +6 cs0106 2026-04-03 6/300 2026-04-04 11:20 by w_xuqing
[¿¼ÑÐ] 278Çóµ÷¼Á +6 Yy7400 2026-04-03 6/300 2026-04-04 09:53 by zhangdingwa
[¿¼ÑÐ] ÉúÎïѧ308·ÖÇóµ÷¼Á£¨Ò»Ö¾Ô¸»ª¶«Ê¦´ó£© +7 ÏàÐűػá¹ââÍòÕ 2026-04-02 7/350 2026-04-03 16:48 by rzh123456
[¿¼ÑÐ] »¯Ñ§070300-×Ü·Ö378-Çóµ÷¼Á +5 ŲÒÎ×ÓµÄÅÝÅÝÌÇ 2026-04-02 5/250 2026-04-02 22:20 by ZXlzxl0425
[¿¼ÑÐ] °²È«¹¤³Ì 285 Çóµ÷¼Á +3 Xinyu56 2026-04-01 4/200 2026-04-01 21:50 by ¾²¾²¾²¾²¾²¾²¾²¾
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û