24小时热门版块排行榜    

查看: 2583  |  回复: 2
本帖产生 1 个 博学EPI ,点击这里进行查看

yanbaojun

金虫 (著名写手)

[求助] 求助~画半导体和绝缘体能带图

掺铝的氧化锌材料(AZO)和氧化镁材料结合在一起,它们的能带图如何画?
请材料、物理等专业的高手指点,谢谢!

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

天道酬勤!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖置顶 ( 共有1个 )

qfw_68

版主 (文坛精英)

有尾巴的青蛙

【答案】应助回帖

★ ★ ★ ★ ★
yanbaojun: 金币+5, 博学EPI+1, ★★★很有帮助 2014-04-10 20:36:03
这个问题需要知道或查找到这些数据:
1、AZO的费米能级相对于真空能级的位置(AZO的费米能级一般进入到ZnO的导带中,其位置与Al的掺杂量等有关);
2、MgO的导带、价带相对于真空能级的位置。如果MgO是本征的(i-MgO),则其费米能级在禁带中央;否则其费米能级与掺杂水平等有关(需确认或查找)。
结合上述数据,再看看“半导体物理”一书中“金属-半导体接触”章节的知识就完全可以画出来了。(费米能级的知识在“半导体物理”一书中也有)
没有困难创造困难也要上网。
3楼2014-04-10 19:37:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

炼狱之火

至尊木虫 (知名作家)

逆水行舟,不进则退

【答案】应助回帖

采用VASP软件计算出相应的能带后,那就用origin,好多列用不同的y就可以了啊,不仅是能带计算,带自旋的态密度计算也同样处理。
一个处理能带数据的代码,先编译一下生成一个可执行程序,然后在你的vasp计算目录下面运行生成的可执行程序即可得到一个可以用origin处理的能带数据
如果没有考虑自旋转,生成的文件名是bnd.dat
考虑了自选,则生成两个文件bndup.dat和bnddn.dat,一个自旋向上,另一个是自旋向下
程序执行过程中会要你输入费米能级(单位是eV)。
bnd.dat文件中,第一列是x坐标(没有意义,画图的时候要把它的标度隐掉,并写上高对称点),它按KPOINTS中的高对点顺序依次排开。
程序从网上找的,自己相应改一下.......版权不属于我......呵呵
program prog
real, allocatable :: e(:, ,eup(:,,edn(:,
real, allocatable :: k(:, ,dk( ,x(
real, dimension(3) ::k0,a
real, dimension(6) ::xxxx
character(len=32):: xx, yy ,nosence
write(6,*) 'fermi level (eV)'
read(5,*) ef
open(10,file='EIGENVAL', status='old')

read(10,*) iii, iii, iii, ispin
read(10,*) (xxxx(i),i=1,5)
read(10,*) xxxx(6)
read(10,*) xx
read(10,*) yy
read(10,*) nn,nk,nbands
allocate(e(nk,nbands))
allocate(eup(nk,nbands))
allocate(edn(nk,nbands))
allocate(k(nk,3))
allocate(dk(0:nk))
allocate(x(1:nk))
wtk=0.2500000E-01
if(ispin.eq.2) then
      open(13,file='bndup.dat')
          open(14,file='bnddn.dat')
          do i=1,nk
           read(10,*)
           read(10,*) (k(i,j),j=1,3),wtk
          do j=1,nbands
               read(10,*) jj,eup(i,j),edn(i,j)
           enddo                                                           
      enddo
      
          do n=1,nk
      dk(0)=0
          if (n.eq.1) then
        k0=k(n,
      endif
      a=k(n,-k0
      dk(n)=dk(n-1)+sqrt(dot_product(a,a))
      x(n)=dk(n)     
      k0=k(n,
      enddo
      do i=1,nk
        write(13,9030) x(i), ((eup(i,j)-ef),j=1,nbands)
        write(14,9030) x(i), ((edn(i,j)-ef),j=1,nbands)
      enddo
else
      open(11,file='bnd.dat')
          do i=1,nk
           read(10,*)
           read(10,*) nosence,nosence,nosence,(k(i,j),j=1,3)
           read(10,*)
           do j=1,nbands
               read(10,*) jj,e(i,j)
           enddo
      enddo
         
          do n=1,nk
      dk(0)=0
          if (n.eq.1) then
        k0=k(n,
      endif
      a=k(n,-k0
      dk(n)=dk(n-1)+sqrt(dot_product(a,a))
      x(n)=dk(n)     
      k0=k(n,
      enddo
      do i=1,nk
        write(11,9030) x(i),((e(i,j)-ef),j=1,nbands)
      enddo
                              
endif
9030 format (1x,f9.4,2x ,2000(f12.6,2x))
stop
end program prog

学习一下~
安之若素,甘之如饴
2楼2014-04-10 17:52:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yanbaojun 的主题更新
信息提示
请填处理意见