±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 1620  |  »Ø¸´: 3

dx0620

ľ³æ (ÕýʽдÊÖ)

[ÇóÖú] ÓÃdos_procar´¦ÀídosÊý¾Ý²»×¼ ÒÑÓÐ1È˲ÎÓë

ÎÒµÄvasp°æ±¾ÊÇ5.3£¬ÓõÄdos_procar´¦ÀíµÄPROCAR£¬Ïë·Ö±ðµÃµ½s£¬p£¬dµÄ̬Ãܶȣ¬µ«ÊÇ×îºóµÃµ½µÄ̬ÃܶÈÇúÏß²»¶Ô£¬×Ü̬Ãܶȸús£¬p£¬dµÄ¶Ô²»ÉÏ£¬ÈçÏÂͼ

ÓÃdos_procar´¦ÀídosÊý¾Ý²»×¼

ÎÒµÄdos_procar.f90µÄ´úÂëÈçÏÂ

!===========================================================================
!     INPUT FILES : OUTCAR , PROCAR
!===========================================================================
      implicit real*8(a-h,o-z)
      character*64 tmp
      dimension ddosP(4),ddosT(4)
      allocatable wt(,oc(:,:,:,,eigen(:,,ee(,na(
      allocatable gdosP(:,,gdosT(:,
      pi=4.0d0*atan(1.0d0)  ;  netot = 1001
      allocate(ee(netot),gdosP(4,netot),gdosT(4,netot))
      open(1,file='OUTCAR')  
!=================================================================
      nline = 0 ;  open(99,status='scratch')
111  read(1,'(a64)',end=222) tmp
      if(tmp(2:8) .eq. 'E-fermi') nline=nline+1
      if(tmp(2:8) .eq. 'E-fermi') write(99,'(a64)') tmp
      go to 111
222  rewind(99)
      do i=1,nline ; read(99,*) tmp,tmp,fermi ; end do
      close(99)
!=================================================================
      write(6,'("fermi energy = ",f10.5)') fermi
      write(6,'("enter the gaussian "')             ;  read(5,*) gaussian
      write(6,'("ISPIN(1/2) = ?  "')                ;  read(5,*) ispin
      write(6,'("How many atoms are integrated? "') ;  read(5,*) Nna
      allocate(na(Nna))
      write(6,*) '  atom number :'                   ;  read(5,*) na

      open( 7,file='PROCAR')
      if(ispin .eq. 1) then
        open(11,file='gdosP-s.dat')    ; open(51,file='gdosT-s.dat')
        open(12,file='gdosP-p.dat')    ; open(52,file='gdosT-p.dat')
        open(13,file='gdosP-d.dat')    ; open(53,file='gdosT-d.dat')
        open(14,file='gdosP-A.dat')    ; open(54,file='gdosT-A.dat')
      else if(ispin .eq. 2) then
        open(11,file='gdosP-up-s.dat') ; open(51,file='gdosT-up-s.dat')
        open(12,file='gdosP-up-p.dat') ; open(52,file='gdosT-up-p.dat')
        open(13,file='gdosP-up-d.dat') ; open(53,file='gdosT-up-d.dat')
        open(14,file='gdosP-up-A.dat') ; open(54,file='gdosT-up-A.dat')

        open(21,file='gdosP-dn-s.dat') ; open(61,file='gdosT-dn-s.dat')
        open(22,file='gdosP-dn-p.dat') ; open(62,file='gdosT-dn-p.dat')
        open(23,file='gdosP-dn-d.dat') ; open(63,file='gdosT-dn-d.dat')
        open(24,file='gdosP-dn-A.dat') ; open(64,file='gdosT-dn-A.dat')
      else
        write(6,*) 'Input ERROR, you must input 1 or 2 ' ; stop
      end if
!===========================================================================
      do is=1,ispin
        if(is .eq. 1) read(7,'(a64)') tmp
        read(7,'(16x,i3,20x,i4,19x,i4)') nk,nband,nion
        if(is .eq. 1) then
          write(6,'("number of kpoints: ",i4)') nk
          write(6,'("number of   bands: ",i4)') nband
          write(6,'("number of    ions: ",i4)') nion
        end if
        emin = 9999.0  ;  emax= -9999.0
        allocate(wt(nk),eigen(nk,nband),oc(nk,nband,nion+1,4))
        do k=1,nk
          read(7,'(a64)') tmp
          read(7,'(10x,i3,5x,3f11.8,13x,f11.8)') kp,pt1,pt2,pt3,wt(k)
          read(7,'(a64)') tmp
          do nb=1,nband
            read(7,'(8x,9x,f14.8,7x,f12.8)') eigen(k,nb),occ
            eigen(k,nb) = eigen(k,nb) - fermi
            if(eigen(k,nb) .gt. emax) emax=eigen(k,nb)
            if(eigen(k,nb) .lt. emin) emin=eigen(k,nb)
            read(7,'(a64)') tmp ; read(7,'(a64)') tmp
            niont = nion +1
            if(nion .eq. 1) niont = 1
            do ion = 1,niont
              read(7,'(3x,4f7.3)') (oc(k,nb,ion,j),j=1,4)
            end do
            read(7,'(a64)') tmp
          end do
        end do
!    ##############################################################
        weight = 0.0 ; gdosP=0.0d0 ; gdosT=0.0d0
        do k=1,nk ; weight = weight + wt(k) ; end do
        do k=1,nk ; wt(k) = wt(k) / weight  ; end do   
        estart_ev = int(emin -5.0)
        eend_ev   = int(emax +5.0)
        de_ev     = (eend_ev - estart_ev)/(netot-1)
        do ne = 1,netot ; ee(ne) = estart_ev + (ne-1) * de_ev ; end do
        ascal = 1.0/(gaussian*sqrt(pi))
!    ###############################################################
        do k=1,nk ; do nb=1,nband
          do i=1,4 ; ddosT(i) =     oc(k,nb,niont,i)*wt(k)  ; end do
          do i=1,4 ; ddosP(i) = sum(oc(k,nb,na(,i)*wt(k)) ; end do
          do ne=1,netot
            dij = ( eigen(k,nb)-ee(ne) )**2 / (gaussian**2)
            do i=1,4
              gdosT(i,ne) = gdosT(i,ne) + ascal*ddosT(i)*exp(-dij)
              gdosP(i,ne) = gdosP(i,ne) + ascal*ddosP(i)*exp(-dij)
            end do
          end do
        end do ; end do
!    ###############################################################
        if(is .eq. 1) ns=+1 ; if(is .eq. 2) ns=-1
        do i=1,4 ; write(is*10+i   ,1) (ee(j),ns*gdosP(i,j),j=1,netot) ; end do
        do i=1,4 ; write(is*10+i+40,1) (ee(j),ns*gdosT(i,j),j=1,netot) ; end do
        deallocate(wt,eigen,oc)
      end do
!===========================================================================
  1   format(f10.5,f12.4)
      end
############################################################################

INCAR ÈçÏ£º

ENCUT = 400
ISTART = 1
ICHARG = 11
ISMEAR = 1
LORBIT = 11
#EMIN = -25
#EMAX = 22.5
NBANDS = 64
#SIGMA = 0.1
#EDIFF = 1E-6
#EDIFFG = -1E-3
#NSW = 200
#IBRION = 2
#POTIM = 0.2
#ISIF = 3
#ALGO = Normal
#LREAL = Auto
PREC = Accurate
PSTRESS = 500.00
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

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

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

mywai520

Ìú¸Ëľ³æ (ÖøÃûдÊÖ)


¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¡ï ¡ï ¡ï ¡ï ¡ï
¸Ðл²ÎÓ룬ӦÖúÖ¸Êý +1
dx0620: ½ð±Ò+5, ¡ïÓаïÖú 2014-05-04 09:29:41
»»Ò»¸ö´¦Àí½Å±¾°É£¬×îºÃÓÃp4vasp,Ö±¹ÛͼÐλ¯¡£ÈôÊDz»ÏëÒ²¿ÉÒÔÓÃvaspkit£¬ËùÓеĴ¦Àí´ò°ü£¬ÊǸö²»´íµÄÑ¡Ôñ¡£
2Â¥2014-05-02 12:24:18
ÒÑÔÄ   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

dx0620

ľ³æ (ÕýʽдÊÖ)

ÒýÓûØÌû:
2Â¥: Originally posted by mywai520 at 2014-05-02 12:24:18
»»Ò»¸ö´¦Àí½Å±¾°É£¬×îºÃÓÃp4vasp,Ö±¹ÛͼÐλ¯¡£ÈôÊDz»ÏëÒ²¿ÉÒÔÓÃvaspkit£¬ËùÓеĴ¦Àí´ò°ü£¬ÊǸö²»´íµÄÑ¡Ôñ¡£

ÄúºÃ£¬ÓÃp4vaspµÄ»°ÊÇÔõô´¦Àí°¡£¿ÎÒÓÃvaspkit´¦ÀíµÄ»°£¬ipdosÊÇʲô°¡£¿ÎªÊ²Ã´¸Ð¾õtdos¸úpdosÀïÃæs¡¢p¡¢d¼ÓÆðÀ´²îºÃ¶à£¬Õ⼸¸ö¶¼Òª³ýÒÔÔ­×ÓÊýÂ𣿣¡Ð»Ð»~
3Â¥2014-05-02 15:03:31
ÒÑÔÄ   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

mywai520

Ìú¸Ëľ³æ (ÖøÃûдÊÖ)


ÒýÓûØÌû:
3Â¥: Originally posted by dx0620 at 2014-05-02 15:03:31
ÄúºÃ£¬ÓÃp4vaspµÄ»°ÊÇÔõô´¦Àí°¡£¿ÎÒÓÃvaspkit´¦ÀíµÄ»°£¬ipdosÊÇʲô°¡£¿ÎªÊ²Ã´¸Ð¾õtdos¸úpdosÀïÃæs¡¢p¡¢d¼ÓÆðÀ´²îºÃ¶à£¬Õ⼸¸ö¶¼Òª³ýÒÔÔ­×ÓÊýÂ𣿣¡Ð»Ð»~...

Äã¸ø³öµÄÊÇÿһ¸öÔ­×ÓµÄspd̬£¬ÒªÈ«²¿Ô­×ӵļӯðÀ´²ÅÊÇ×ܵÄ
4Â¥2014-05-02 16:50:24
ÒÑÔÄ   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ dx0620 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 287·ÖÇóµ÷¼Á ÓÐרÀû¹ú½±Ò»Ö¾Ô¸¹þ¹¤´ó085406 +3 °×Ò׳½ 2026-04-06 4/200 2026-04-06 15:24 by going home
[¿¼ÑÐ] 302·ÖÇóµ÷¼Á Ò»Ö¾Ô¸°²»Õ´óѧ085601 +9 zyxÉϰ¶£¡ 2026-04-04 9/450 2026-04-06 13:05 by Öí»á·É
[¿¼ÑÐ] 319·Ö085702°²È«¹¤³ÌÇóµ÷¼Á +4 rious 2026-04-05 4/200 2026-04-06 11:08 by ¾²¾²¾²¾²¾²¾²¾²¾
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©½»Í¨´óѧ²ÄÁϹ¤³Ì×Ü·Ö358Çóµ÷¼Á +4 cs0106 2026-04-04 4/200 2026-04-05 18:46 by imissbao
[¿¼ÑÐ] һ־Ըͬ¼Ã´óѧ323·Ö£¨080500£©Çóµ÷¼Á +8 yikeniu 2026-04-01 8/400 2026-04-05 18:15 by cql1109
[¿¼ÑÐ] Ò»Ö¾Ô¸ÉϺ£º£Ñó´óѧ083200ʳƷѧ˶£¬Çóµ÷¼Á£¬½ÓÊÜÆäËûרҵ083200 +4 whatÕÅ 2026-04-04 5/250 2026-04-05 14:07 by chw1980_0
[¿¼ÑÐ] 26¿¼Ñе÷¼Á0710 0860 +9 ²¹²¹²»²¹ 2026-04-03 14/700 2026-04-04 23:32 by ¹û¶³´óÍõ
[¿¼ÑÐ] 085400µç×ÓÐÅÏ¢319Çóµ÷¼Á£¨½ÓÊÜ¿çרҵµ÷¼Á£© +5 ÐÇÐDz»Õ£ÑÛà¶ 2026-04-03 6/300 2026-04-04 21:50 by hemengdong
[¿¼ÑÐ] 349Çóµ÷¼Á +11 zwjjjjjj 2026-03-31 11/550 2026-04-04 19:52 by À¶ÔÆË¼Óê
[¿¼ÑÐ] µ÷¼Á +4 ÊÇ¿ÉÀÖ²»ÊÇ¿ÉÀÖ 2026-04-04 4/200 2026-04-04 19:41 by ÌÆãå¶ù
[¿¼ÑÐ] 309·Ö085801Çóµ÷¼Á +11 MY_angel 2026-03-31 11/550 2026-04-04 19:11 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 322Çóµ÷¼Á +4 FZAC123 2026-04-03 4/200 2026-04-03 20:55 by zhq0425
[¿¼ÑÐ] 071000ÉúÎïѧµ÷¼Á +8 ÖªÕÑÂû 2026-04-02 8/400 2026-04-03 10:36 by macy2011
[¿¼ÑÐ] 309Çóµ÷¼Á +14 ´ô¹½²»ÊÇ´÷·ò 2026-04-02 14/700 2026-04-03 09:42 by À¶ÔÆË¼Óê
[¿¼ÑÐ] ѧ˶»¯Ñ§¹¤³ÌÓë¼¼Êõ£¬Ò»Ö¾Ô¸Öйúº£Ñó´óѧ320+Çóµ÷¼Á +8 ÅûÐÇºÓ 2026-04-02 8/400 2026-04-02 14:12 by oooqiao
[¿¼ÑÐ] ²ÄÁÏר˶322·Ö +11 ¹þ¹þ¹þºðºðºð¹þ 2026-04-01 11/550 2026-04-02 10:52 by lnilvy
[¿¼ÑÐ] ʡ˫һÁ÷ÖØµãÒ»±¾´óѧÕÐÊÕµ÷¼Á +4 wwwwffffff 2026-03-31 7/350 2026-04-01 15:23 by wwwwffffff
[¿¼ÑÐ] 070300»¯Ñ§×¨Òµ279µ÷¼Á +10 ¹þ¹þ¹þ^_^ 2026-03-31 10/500 2026-03-31 23:13 by liu823948201
[¿¼ÑÐ] ±¾2Ò»Ö¾Ô¸C9-333·Ö£¬²ÄÁÏ¿ÆÑ§Ó빤³Ì£¬Çóµ÷¼Á +9 ÉýÉý²»½µ 2026-03-31 9/450 2026-03-31 18:01 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] ÎïÀíѧµ÷¼Á +4 СÑò36 2026-03-30 4/200 2026-03-31 16:16 by lishahe
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û