| 查看: 2572 | 回复: 21 | ||||
| 当前主题已经存档。 | ||||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||||
huangyc木虫 (正式写手)
|
[交流]
【求助】怎么根据PROCAR作DOS和PDOS图
|
|||
|
大家好,计算DOS时得到PROCAR,准备学习画DOS和PDOS,共126个K点,每个K点100 bands,用lev00处理时提示缺少PROCAR或PROCAR错误,用p4vasp也打不开,请帮我看看,谢谢 PROCAR new format # of k-points: 126 # of bands: 100 # of ions: 24 k-point 1 : 0.04166667 0.04166667 0.04166667 weight = 0.00462963 band 1 # energy -29.57997136 # occ. 2.00000000 ion s p d f tot 1 0.233 0.000 0.000 0.000 0.233 2 0.233 0.000 0.000 0.000 0.233 3 0.233 0.000 0.000 0.000 0.233 4 0.233 0.000 0.000 0.000 0.233 5 0.000 0.000 0.000 0.000 0.000 6 0.000 0.000 0.000 0.000 0.000 7 0.000 0.000 0.000 0.000 0.000 8 0.000 0.000 0.000 0.000 0.000 9 0.000 0.000 0.000 0.000 0.000 10 0.000 0.000 0.000 0.000 0.000 11 0.000 0.000 0.000 0.000 0.000 12 0.000 0.000 0.000 0.000 0.000 13 0.000 0.000 0.000 0.000 0.000 14 0.000 0.000 0.000 0.000 0.000 15 0.000 0.000 0.000 0.000 0.000 16 0.000 0.000 0.000 0.000 0.000 17 0.000 0.000 0.000 0.000 0.000 18 0.000 0.000 0.000 0.000 0.000 19 0.000 0.000 0.000 0.000 0.000 20 0.000 0.000 0.000 0.000 0.000 21 0.000 0.000 0.000 0.000 0.000 22 0.000 0.000 0.000 0.000 0.000 23 0.000 0.000 0.000 0.000 0.000 24 0.000 0.000 0.000 0.000 0.000 tot 0.937 0.001 0.000 0.000 0.938 这是其中一部分,下面还有band2-100,接着就是k-points2-126,很长的文件 不知道大家都怎么处理DOS?学习VASP时间不长,还希望虫友们指点 [ Last edited by SHY31 on 2008-12-4 at 20:41 ] |
» 收录本帖的淘帖专辑推荐
VASP |
» 猜你喜欢
交叉科学部支持青年基金,对三无青椒是个机会吗?
已经有4人回复
招博士
已经有6人回复
限项规定
已经有8人回复
国家基金申请书模板内插入图片不可调整大小?
已经有5人回复
国家级人才课题组招收2026年入学博士
已经有5人回复
Fe3O4@SiO2合成
已经有6人回复
青年基金C终止
已经有4人回复
青椒八年已不青,大家都被折磨成啥样了?
已经有7人回复
为什么nbs上溴 没有产物点出现呢
已经有10人回复
救命帖
已经有11人回复
★ ★ ★
wuchenwf(金币+3,VIP+0):xiexie
wuchenwf(金币+3,VIP+0):xiexie
|
implicit real*8(a-h,o-z) parameter (nkd =900) parameter (nbd = 50 ) parameter (natmd = 20) parameter (ned = 1001) dimension dump(20),oc(nkd,nbd,natmd,4),eig_ev(nkd,nbd),wt(nkd) dimension ee(ned),gpdos(ned),gpdost(ned) dimension gpdos_s(ned),gpdos_p(ned),gpdos_d(ned) open(7,file='PROCAR') pi = 3.141592654 write(*,*) 'Spin polarized calculation? (no=1,yes=2):' read (*,*) ispin if ((ispin.ne.1).and.(ispin.ne.2)) then write(*,*) ' INPUT ERROR, ispin must equal to 1 or 2 ' stop endif if (ispin.eq.1) then open(31,file='ldos.dat') open(32,file='dos-tot.dat') elseif (ispin.eq.2) then open(31,file='ldos-up.dat') open(32,file='dos-tot-up.dat') open(41,file='ldos-dn.dat') open(42,file='dos-tot-dn.dat') endif write(6,*) ' Enter fermi energy: ' read(5,*) fermi c write(6,102) fermi read(7,103) dump c write(6,103) dump write(6,*) 'which atom (na) you want to plot LDOS:' read(5,*) na write(6,*) 'enter the gaussian smearing factor:' read(5,*) gaussian do 9000 isp=1,ispin read(7,104) nk,nband,nion c write(6,104) nk,nband,nion if (nk .gt. nkd) stop ' nk too large ' emin = 1000.0 emax = -1000.0 do 1000 k = 1,nk read(7,103) dump read(7,105) kp,pt1,pt2,pt3,wt(k) c write(6,105) kp,pt1,pt2,pt3,wt(k) read(7,103) dump do nb = 1,nband read(7,106) nb1,eig_ev(k,nb),occ c write(6,106) nb1,eig_ev(k,nb),occ eig_ev(k,nb) = eig_ev(k,nb)-fermi if (eig_ev(k,nb) .gt. emax) emax = eig_ev(k,nb) if (eig_ev(k,nb) .lt. emin) emin = eig_ev(k,nb) read(7,103) dump read(7,103) dump c write(6,*) 'nion=',nion niont = nion +1 if (nion .eq. 1) niont = 1 do ion = 1,niont read(7,107) (oc(k,nb,ion,j),j=1,4) c write(6,107) (oc(k,nb,ion,j),j=1,4) enddo read(7,103) dump c write(6,103) dump enddo 1000 continue weight = 0.0 do k = 1, nk weight = weight + wt(k) enddo do k = 1,nk wt(k) = wt(k) / weight enddo c estart_ev = - 5.0 c eend_ev = 2.0 estart_ev = int(emin -1.0) eend_ev = int(emax +1.0) netot = 701 de_ev = (eend_ev - estart_ev)/(netot-1) do 2000 ne = 1, netot ee(ne) = estart_ev + (ne-1) * de_ev gpdos(ne) = 0.0d0 gpdos_s(ne) = 0.0d0 gpdos_p(ne) = 0.0d0 gpdos_d(ne) = 0.0d0 gpdost(ne) = 0.0d0 2000 continue ascal = de_ev / ( gaussian * sqrt(pi) ) ascal = 1.0 / ( gaussian * sqrt(pi) ) scal_spin = 2.0 do 5000 k=1,nk do 4000 nb=1,nband ddos = scal_spin * oc(k,nb,na,4)*wt(k) ddos_s = scal_spin * oc(k,nb,na,1)*wt(k) ddos_p = scal_spin * oc(k,nb,na,2)*wt(k) ddos_d = scal_spin * oc(k,nb,na,3)*wt(k) ddost = scal_spin *wt(k) do ne = 1,netot dij = ( eig_ev(k,nb) - ee(ne) )**2 / (gaussian**2) gpdos(ne) = gpdos(ne) + ascal * ddos * exp(-dij) gpdos_s(ne) = gpdos_s(ne) + ascal * ddos_s * exp(-dij) gpdos_p(ne) = gpdos_p(ne) + ascal * ddos_p * exp(-dij) gpdos_d(ne) = gpdos_d(ne) + ascal * ddos_d * exp(-dij) gpdost(ne) = gpdost(ne) + ascal * ddost * exp(-dij) enddo 4000 continue 5000 continue do 6000 ne = 1,netot if (gpdos(ne) .lt. 1.0E-29) gpdos(ne)=0.0 if (gpdos_s(ne) .lt. 1.0E-29) gpdos_s(ne)=0.0 if (gpdos_p(ne) .lt. 1.0E-29) gpdos_p(ne)=0.0 if (gpdos_d(ne) .lt. 1.0E-29) gpdos_d(ne)=0.0 if (gpdost(ne) .lt. 1.0E-29) gpdost(ne)=0.0 write(21+10*isp,108) ee(ne),gpdos(ne),gpdos_s(ne),gpdos_p(ne) & ,gpdos_d(ne) write(22+10*isp,108) ee(ne),gpdost(ne) 6000 continue 9000 continue 101 format(10x,f9.5) 102 format(f10.5) 103 format(20a4) 104 format(16x,i3,20x,i5,19x,i4) 105 format(10x,i3,5x,3f11.8,13x,f11.8) 106 format(4x,i4,9x,f14.8,7x,f12.8) 107 format(3x,4f7.3) 108 format(f10.5,4e12.4) stop end |
7楼2008-12-05 18:57:53
intro987
铁杆木虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 9662.2
- 散金: 13
- 红花: 1
- 帖子: 134
- 在线: 54.3小时
- 虫号: 628465
- 注册: 2008-10-17
- 性别: GG
- 专业: 理论和计算化学
2楼2008-12-04 18:43:48
hym5701
木虫 (小有名气)
- 1ST强帖: 1
- 应助: 0 (幼儿园)
- 金币: 4204.3
- 散金: 3
- 帖子: 174
- 在线: 75.8小时
- 虫号: 574617
- 注册: 2008-06-16
- 专业: 凝聚态物性 II :电子结构
3楼2008-12-04 20:22:30
huangyc
木虫 (正式写手)
- 应助: 2 (幼儿园)
- 金币: 2242.1
- 散金: 12
- 红花: 2
- 帖子: 411
- 在线: 312.5小时
- 虫号: 624241
- 注册: 2008-10-12
- 专业: 理论和计算化学
4楼2008-12-05 11:15:55













回复此楼