²é¿´: 1442  |  »Ø¸´: 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 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] ¡¾¿¼Ñе÷¼Á¡¿»¯Ñ§×¨Òµ 281·Ö£¬Ò»Ö¾Ô¸ËÄ´¨´óѧ£¬³ÏÐÄÇóµ÷¼Á +8 ³Ô³Ô³Ô²ÅÓÐÒâÒå 2026-03-19 8/400 2026-03-21 00:49 by Áõ¹úÉ­
[¿¼ÑÐ] 311Çóµ÷¼Á +5 ¶¬Ê®Èý 2026-03-18 5/250 2026-03-21 00:16 by JourneyLucky
[¿¼ÑÐ] Ò»Ö¾Ô¸Î人Àí¹¤²ÄÁϹ¤³Ìר˶µ÷¼Á +9 Doleres 2026-03-19 9/450 2026-03-20 22:36 by JourneyLucky
[¿¼ÑÐ] 324Çóµ÷¼Á +5 luckyѽѽѽѼ 2026-03-20 5/250 2026-03-20 22:30 by ´ÙÌì³É
[¿¼ÑÐ] 288Çóµ÷¼Á +16 ÓÚº£º£º£º£ 2026-03-19 16/800 2026-03-20 22:28 by JourneyLucky
[¿¼ÑÐ] 287Çóµ÷¼Á +7 ³¿»èÏßÓëÐǺ£ 2026-03-19 8/400 2026-03-20 22:19 by JourneyLucky
[¿¼ÑÐ] 279·ÖÇóµ÷¼Á Ò»Ö¾Ô¸211 +10 chaojifeixia 2026-03-19 11/550 2026-03-20 20:32 by JourneyLucky
[¿¼ÑÐ] ²ÄÁÏѧÇóµ÷¼Á +4 Stella_Yao 2026-03-20 4/200 2026-03-20 20:28 by ms629
[¿¼ÑÐ] 085601²ÄÁϹ¤³Ìר˶Çóµ÷¼Á +10 Ľº®mio 2026-03-16 10/500 2026-03-19 15:26 by ¶¡¶¡*
[¿¼ÑÐ] 328Çóµ÷¼Á£¬Ó¢ÓïÁù¼¶551£¬ÓпÆÑо­Àú +4 ÉúÎ﹤³Ìµ÷¼Á 2026-03-16 12/600 2026-03-19 11:10 by ÉúÎ﹤³Ìµ÷¼Á
[¿¼ÑÐ] 344Çóµ÷¼Á +6 knight344 2026-03-16 7/350 2026-03-18 20:13 by walc
[¿¼ÑÐ] 08¹¤¿Æ 320×Ü·Ö Çóµ÷¼Á +5 À滨çóÍí·ç 2026-03-17 5/250 2026-03-18 14:49 by haxia
[¿¼ÑÐ] 311Çóµ÷¼Á +11 ¶¬Ê®Èý 2026-03-15 12/600 2026-03-18 14:36 by ÐÇ¿ÕÐÇÔÂ
[¿¼ÑÐ] ÉúÎïѧ071000 329·ÖÇóµ÷¼Á +3 ÎÒ°®ÉúÎïÉúÎﰮΠ2026-03-17 3/150 2026-03-18 10:12 by macy2011
[¿¼ÑÐ] 275Çóµ÷¼Á +4 Ì«Ñô»¨ÌìÌ쿪ÐÄ 2026-03-16 4/200 2026-03-17 10:53 by ¹¦·ò·è¿ñ
[¿¼ÑÐ] 321Çóµ÷¼Á +5 ´óÃ×·¹£¡ 2026-03-15 5/250 2026-03-16 16:33 by houyaoxu
[¿¼ÑÐ] 0703»¯Ñ§µ÷¼Á 290·ÖÓпÆÑо­Àú£¬ÂÛÎÄÔÚͶ +7 ÄåÄågk 2026-03-14 7/350 2026-03-16 10:12 by houyaoxu
[¿¼ÑÐ] 326Çóµ÷¼Á +3 mlpqaz03 2026-03-15 3/150 2026-03-16 07:33 by Iveryant
[¿¼ÑÐ] 085601²ÄÁϹ¤³Ì315·ÖÇóµ÷¼Á +3 yang_0104 2026-03-15 3/150 2026-03-15 10:58 by peike
[¿¼ÑÐ] Ò»Ö¾Ô¸¹þ¹¤´ó²ÄÁÏ324·ÖÇóµ÷¼Á +5 ãÆÐñ¶« 2026-03-14 5/250 2026-03-14 14:53 by ľ¹Ï¸à
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û