²é¿´: 1675  |  »Ø¸´: 4

hakuna

ľ³æ (ÖªÃû×÷¼Ò)

[½»Á÷] ¡¾·ÖÏí¡¿Ò»¸ö»æÖÆ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()

»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

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

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

sg18408926

ÖÁ×ðľ³æ (ÖøÃûдÊÖ)

²»´í°¡
2Â¥2010-12-26 20:43:52
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

gavinliu7390

ľ³æ (ÖøÃûдÊÖ)

Ò¶ÂäÓ¥·É

¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
Ö´Ðв»ÁË£¬ ´íÎóºÜ¶à¡£
ÕæÀíÊÇÒ»µãµã½Ó½üµÄ£¡
3Â¥2010-12-27 10:44:18
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

westmonster

½ð³æ (ÕýʽдÊÖ)

pylabÊÇÂ¹Âª¹ÑÎÅÁË£¬¸Ä¸Ä»¹ÊÇÄÜÓõģ¬Ð»Ð»Â¥Ö÷·ÖÏí¡£
²õ£¬ÓÚÆäÍÑ¿ÇÕ¹³á£¬ÔòÕݾӵØÏ£¬ËÆÎÞÉùÎÞÏ¢£¬ÊµÔòÒÔ±¸ÓÐËùΪ¡£
4Â¥2010-12-27 12:54:53
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

akakcolin

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

python ÊǸöºÃÓïÑÔ°¡
ΪÈËÓ¦µ±³ÏʵÕýÖ±²»ÄÜÐÄ»³ØÏ²âÐÄÑÛÃ÷ÁÁ²ÅÄÜÓ­À´ÐÒ¸£±Ü¿ªÔÖ»öäĿÕßÈôÓÐÈËÖ¸µã²Å²»»áÃÔʧµÀ·Èôµ¥¶ÀÉÏ·¾ÍÄÑÒÔ±£Ö¤²»ÎóÈëáªÍ¾
5Â¥2010-12-27 23:09:27
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ hakuna µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼²©] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8.O.55.1.O.54,¿ÆÄ¿ÆëÈ«,¿ÉÙ¤¼± +3 0XLacIJUOj8D 2026-08-24 3/150 2026-08-25 01:47 by BZKMTicpDhFj
[»ù½ðÉêÇë] Ã÷ÌìÓ¦¸Ã¿É²éÁË£¡£¿ +5 chengyan1220 2026-08-23 5/250 2026-08-24 23:28 by ÎÒ4´ó°×²Ë
[»ù½ðÉêÇë] Èç¹û´Ë¿ÌÄãÕýÔÚΪ¹ú»ù¸Ðµ½½¹ÂÇ£¬²»·ÁÀ´ÌýÌýÕâÊס¶»ù½ðÖ®Íâ¡· +7 scalable 2026-08-24 7/350 2026-08-24 23:01 by anata1209
[»ù½ðÉêÇë] ÎÒÃæÉÏÍêµ°ÁË +9 ÇÒÌý»¢Ð¥ 2026-08-20 10/500 2026-08-24 20:08 by ¿àº®À´Ïã
[»ù½ðÉêÇë] filecode£¬4¸öjtjcÁË +14 ziyangfang 2026-08-19 17/850 2026-08-24 18:37 by ¹þ¹þ¸ò£¿
[»ù½ðÉêÇë] 2026¹ú×ÔÈ»º¯ÆÀ·Ñµ½ÕË +17 ÑòÑü°å 2026-08-21 19/950 2026-08-24 16:52 by iaeyuan
[»ù½ðÉêÇë] ½¨Òé»ù½ð·¢²¼Ìáǰ¸ø³öÃ÷È·µÄʱ¼äµã +13 kulium 2026-08-21 16/800 2026-08-24 16:27 by superceng
[»ù½ðÉêÇë] ½ñÈÕ²»·Å°ñ£¿Íø´«¹ú×ÔȻԤ¼Æ 8 Ô 27 Èտɲé½á¹û +17 ҽѧÀÏÄк¢ 2026-08-20 21/1050 2026-08-24 14:21 by refreshing11
[»ù½ðÉêÇë] ·Å°ñǰµÄ²»µ­¶¨ 20+4 snowwithsea 2026-08-19 17/850 2026-08-24 10:20 by echo8914667
[»ù½ðÉêÇë] ¿ÆÑй¶ùÌ«ÄÑÁË +18 ÎÒ4´ó°×²Ë 2026-08-20 19/950 2026-08-24 09:47 by ¿­¶÷¹ãÊ¢´ß»¯·ÖÎ
[»ù½ðÉêÇë] ʲôʱºò¿ª½±£¿ +10 CrisMessi 2026-08-18 11/550 2026-08-24 06:50 by ¿ªÐĵÄСʨ×Ó
[»ù½ðÉêÇë] 2026ÄêµÄ¹ú¼ÒÉç¿Æ»ù½ðÏîĿͨѶÆÀÉóµÄйæÔòÓëж¯Ïò¡¢ÐÂÌôÕ½ +4 process2012 2026-08-23 5/250 2026-08-23 19:58 by jurkat.1640
[½Ìʦ֮¼Ò] Ìø²ÛºóÔÚÑÐÏîÄ¿Ôõô°ì£¿ +5 ¼òµ¥»¯xn 2026-08-22 10/500 2026-08-23 12:38 by ¼òµ¥»¯xn
[»ù½ðÉêÇë] ½ñÌì·Å°ñÂ𣿠+15 ²¼²¼ºÍÒ»¶þ 2026-08-19 16/800 2026-08-23 09:55 by ÕÅ´ºÉú
[»ù½ðÉêÇë] Ö»ÓÐÿÄêÕâÖÖʱºòÀ´¹ä¹äСľ³æ +24 yaoyewhu2008 2026-08-20 26/1300 2026-08-22 17:43 by kammury
[»ù½ðÉêÇë] ʱ¼ä´ÁÓÖ±äÁË +13 wuchongjun 2026-08-20 19/950 2026-08-21 17:21 by ×Ïɼ´¼
[»ù½ðÉêÇë] ½ñÌì·Å°ñûϷÁ衃 +9 yuleib84 2026-08-19 11/550 2026-08-21 10:06 by gltch
[»ù½ðÉêÇë] »ù½ð°¡»ù½ð +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
[»ù½ðÉêÇë] ÖØÒªÏûÏ¢£¬ÖÐÎçϵͳÔÚά»¤ +11 yuleib84 2026-08-18 12/600 2026-08-20 11:09 by xskun
[»ù½ðÉêÇë] ½ñÌìά»¤ÏµÍ³Î¬»¤ ×£ËùÓÐÈË ¸ßÖÐ +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by ¼ÒÓëÔ¶·½
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û