24小时热门版块排行榜    

查看: 483  |  回复: 2
当前主题已经存档。

guifan

木虫 (著名写手)

[交流] 【求助】在VASP中能否输出d-t2g的态密度?

请问各位虫友,能否用VASP计算出d-t2g的DOS?
期待大家的指点
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liluyan

银虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
freshgirl(金币+1,VIP+0):谢谢参与~ 9-23 14:12
当然能啊,计算时设置LORBIT=11,然后可以找相应的工具来画各个轨道的态密度就可以了,比如p4vasp就很方便啊
2楼2009-09-23 13:45:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

灯塔守望者

铁杆木虫 (正式写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
guifan(金币+2,VIP+0): 9-30 21:09
wuchenwf(金币+10,VIP+0):谢谢 10-1 22:36
给你一个提取t2, eg的源代码,自己编写的,有些粗糙,仅满足一般的要求,可以提取pdos,t2-eg dos以及积分。只针对考虑自选以及不考虑f电子的情况下,欢迎指正。
!initializing all parameters
!E s-up s-down py-up py-down pz-up pz-down px-up
!                   px-down  dxy-up  dxy-down  dyz-up  dyz-down
!                   dz2-up dz2-down  dxz-up  dxz-down dx2-up  dx2-down
real*8,allocatable :: dos_matrix(:,,integral_spdos(:,,t2g_eg(:,,pdos(:,,integral_t2g_eg(:,
real*8 :: fermi,normalization,enmax,enmin,step
integer(kind=8) :: i,j,rows,columns=19,nth,iserror
character(len=8) filename
write(*,*)"please input the number of atoms "
read(*,*),nth

open(unit=11,file='DOSCAR',form='formatted',status='old',iostat=iserror)
if (iserror>0) then

    write(*,*)"The DOSCAR file does not exist"
    goto 200
end if

!filename= "sitedos.dat"
open(unit=12,file="SPDOS.dat",form='formatted',status='replace')
open(unit=13,file='t2g_eg.dat',form='formatted',status='replace')
open(unit=14,file='PDOS.dat',form='formatted',status='replace')
open(unit=15,file='INSPDOS.dat',form='formatted',status='replace')
open(unit=16,file='INt2g_eg.dat',form='formatted',status='replace')
write(13,*)'# E,t2g_up,t2g_dn,eg_up,eg_dn'
write(14,*)'# E,s_up,s_dn,p_up,p_dn,d_up,d_dn'

!skip iformation of start
do i=1,5
   read (11,*)
end do

!read fermi energy and rows
read (11,*)enmax,enmin,rows,fermi,normalizatio
step=(enmax-enmin)/(rows-1)
allocate(dos_matrix(rows,columns))
allocate(integral_spdos(rows,columns))
allocate(t2g_eg(rows,5))
allocate(pdos(rows,7))
allocate(integral_t2g_eg(rows,5))
integral_spdos(:,=0

!skip to the nth atoms
do i= 1,(rows+1)
   read(11,*)
end do

do i=1,rows
   read(11,'(19E12.5)')(dos_matrix(i,j),j=1,19)
   dos_matrix(i,1)=dos_matrix(i,1)-fermi

     do j=3,columns
        if((mod(j,2).EQ.1))then
        dos_matrix(i,j)=-1*dos_matrix(i,j)
        else
     endif

     end do


!calcualte SPDOS, write SPDOS.dat file
write(12,'(19E12.3)')(dos_matrix(i,j),j=1,19)


!calcualte DOS of t2g and eg, write t2g_eg.dat file
t2g_eg(i,1)=dos_matrix(i,1)
!initializing all parameters
!E s-up s-down py-up py-down pz-up pz-down px-up
!                   px-down  dxy-up  dxy-down  dyz-up  dyz-down
!                   dz2-up dz2-down  dxz-up  dxz-down dx2-up  dx2-down
real*8,allocatable :: dos_matrix(:,,integral_spdos(:,,t2g_eg(:,,pdos(:,,integral_t2g_eg(:,
real*8 :: fermi,normalization,enmax,enmin,step
integer(kind=8) :: i,j,rows,columns=19,nth,iserror
character(len=8) filename
write(*,*)"please input the number of atoms "
read(*,*),nth

open(unit=11,file='DOSCAR',form='formatted',status='old',iostat=iserror)
if (iserror>0) then

    write(*,*)"The DOSCAR file does not exist"
    goto 200
end if

!filename= "sitedos.dat"
open(unit=12,file="SPDOS.dat",form='formatted',status='replace')
open(unit=13,file='t2g_eg.dat',form='formatted',status='replace')
open(unit=14,file='PDOS.dat',form='formatted',status='replace')
open(unit=15,file='INSPDOS.dat',form='formatted',status='replace')
open(unit=16,file='INt2g_eg.dat',form='formatted',status='replace')
write(13,*)'# E,t2g_up,t2g_dn,eg_up,eg_dn'
write(14,*)'# E,s_up,s_dn,p_up,p_dn,d_up,d_dn'

!skip iformation of start
do i=1,5
   read (11,*)
end do

!read fermi energy and rows
read (11,*)enmax,enmin,rows,fermi,normalizatio
step=(enmax-enmin)/(rows-1)
allocate(dos_matrix(rows,columns))
allocate(integral_spdos(rows,columns))
allocate(t2g_eg(rows,5))
allocate(pdos(rows,7))
allocate(integral_t2g_eg(rows,5))
integral_spdos(:,=0

!skip to the nth atoms
do i= 1,(rows+1)
   read(11,*)
end do

do i=1,rows
   read(11,'(19E12.5)')(dos_matrix(i,j),j=1,19)
   dos_matrix(i,1)=dos_matrix(i,1)-fermi

     do j=3,columns
        if((mod(j,2).EQ.1))then
        dos_matrix(i,j)=-1*dos_matrix(i,j)
        else
     endif

     end do


!calcualte SPDOS, write SPDOS.dat file
write(12,'(19E12.3)')(dos_matrix(i,j),j=1,19)


!calcualte DOS of t2g and eg, write t2g_eg.dat file
t2g_eg(i,1)=dos_matrix(i,1)
t2g_eg(i,2)=dos_matrix(i,10)+dos_matrix(i,12)+dos_matrix(i,16)
t2g_eg(i,3)=dos_matrix(i,11)+dos_matrix(i,13)+dos_matrix(i,17)
t2g_eg(i,4)=dos_matrix(i,14)+dos_matrix(i,18)
t2g_eg(i,5)=dos_matrix(i,15)+dos_matrix(i,19)
write(13,'(5E12.3)')(t2g_eg(i,j),j=1,5)

!calculate PDOS and write PDOS.dat
pdos(i,1)=dos_matrix(i,1)
pdos(i,2)=dos_matrix(i,2)
pdos(i,3)=dos_matrix(i,3)
pdos(i,4)=dos_matrix(i,4)+dos_matrix(i,6)+dos_matrix(i,8)
pdos(i,5)=dos_matrix(i,5)+dos_matrix(i,6)+dos_matrix(i,9)
pdos(i,6)=t2g_eg(i,2)+t2g_eg(i,4)
pdos(i,7)=t2g_eg(i,3)+t2g_eg(i,5)
write(14,'(7E12.3)')(pdos(i,j),j=1,7)

end do

write(*,*)step
!integrate SPDOS and write integral_spdos.dat
integral_spdos(:,1)=dos_matrix(:,1)
do i=2,rows
    do j=2, columns
     integral_spdos(i,j)=(dos_matrix(i-1,j)+dos_matrix(i,j))*step*0.5+integral_spdos(i-1,j)
    end do
     integral_t2g_eg(i,1)=integral_spdos(i,1)
     integral_t2g_eg(i,2)=integral_spdos(i,10)+integral_spdos(i,12)+integral_spdos(i,16)
     integral_t2g_eg(i,3)=integral_spdos(i,11)+integral_spdos(i,13)+integral_spdos(i,17)
     integral_t2g_eg(i,4)=integral_spdos(i,14)+integral_spdos(i,18)
     integral_t2g_eg(i,5)=integral_spdos(i,15)+integral_spdos(i,19)
end do
write(15,'(19F7.3)')((integral_spdos(i,j),j=1,19),i=1,rows)
write(16,'(5F7.3)')((integral_t2g_eg(i,j),j=1,5),i=1,rows)
deallocate (dos_matrix)
deallocate (integral_spdos)
deallocate (pdos)
deallocate (t2g_eg)
deallocate (integral_t2g_eg)
close (11)
close (12)
close (13)
close (14)
close (15)
close (16)
200 end
3楼2009-09-30 10:33:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 guifan 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 9zw1gfyi7x 2026-07-31 10/500 2026-08-01 20:37 by Kddn1pB6pAzX
[教师之家] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 9zw1gfyi7x 2026-07-31 11/550 2026-08-01 20:33 by Kddn1pB6pAzX
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 9zw1gfyi7x 2026-07-31 12/600 2026-08-01 20:31 by Kddn1pB6pAzX
[博后之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 9zw1gfyi7x 2026-07-31 11/550 2026-08-01 20:30 by Kddn1pB6pAzX
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 9zw1gfyi7x 2026-07-31 12/600 2026-08-01 20:30 by Kddn1pB6pAzX
[基金申请] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 9zw1gfyi7x 2026-07-31 9/450 2026-08-01 20:11 by Kddn1pB6pAzX
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +4 jzg3xk1po8 2026-07-31 8/400 2026-08-01 20:03 by Kddn1pB6pAzX
[基金申请] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 jzg3xk1po8 2026-07-31 13/650 2026-08-01 20:02 by Kddn1pB6pAzX
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 jzg3xk1po8 2026-07-31 13/650 2026-08-01 19:57 by Kddn1pB6pAzX
[基金申请] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 9zw1gfyi7x 2026-08-01 3/150 2026-08-01 19:00 by Kddn1pB6pAzX
[博后之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 9zw1gfyi7x 2026-08-01 3/150 2026-08-01 18:57 by Kddn1pB6pAzX
[博后之家] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 9zw1gfyi7x 2026-08-01 9/450 2026-08-01 18:43 by Kddn1pB6pAzX
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 9zw1gfyi7x 2026-08-01 6/300 2026-08-01 18:37 by Kddn1pB6pAzX
[博后之家] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 9zw1gfyi7x 2026-07-31 9/450 2026-08-01 18:02 by Kddn1pB6pAzX
[基金申请] 面上再次挂了,太难了,躺也躺不了,倦也卷不过,小学校之殇! +16 低垂的野花 2026-07-31 22/1100 2026-08-01 16:39 by Cathyau
[基金申请] 2026年国自然面上资助率 +15 布布和一二 2026-07-30 19/950 2026-08-01 15:18 by 40862026
[教师之家] 基础研究怎么拉横向,学校到款任务越来越多,难以完成 拉横向,都有哪些途径啊 +8 锦衣卫寒战 2026-07-28 8/400 2026-07-31 18:13 by beefly
[基金申请] 今年的WR进展到哪一步了? +5 wsgjhwz 2026-07-25 9/450 2026-07-30 12:59 by 可淡不可忘
[基金申请] 这种情况还有戏吗 +5 drbart 2026-07-27 11/550 2026-07-29 05:50 by drbart
[基金申请] 同事接到电话了,我却没有 +4 1234567wang 2026-07-27 4/200 2026-07-28 10:11 by GOODLUCKER
信息提示
请填处理意见