24小时热门版块排行榜    

查看: 8098  |  回复: 14

胡同学

金虫 (正式写手)

[求助] 功函数(work function)

计算吸附得出的结果中,功函数这一项得出work function:left -6.303  right  -6.086eV   这是表示什么意思?  功函数结果不是正数吗?  怎么得出负数结果,为什么还有左右之分?  请教哪位大牛帮我解释一下,先表示感谢!
回复此楼

» 收录本帖的淘帖专辑推荐

VASP good resources 第一性

» 猜你喜欢

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

人生苦短,抓紧科研,抓紧找对象。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

hakuna

木虫 (知名作家)


gzqdyouxia(金币+1): 谢谢交流 2011-06-03 13:03:42
引用回帖:
Originally posted by first_yg at 2011-06-03 08:58:38:
能把你的程序发给我一个吗,我最不会写程序

碰到个懒MM,不写也就罢了,搜也不搜,
CODE:
     

      implicit real*8 (a-h,o-z)
      dimension dump(20),num(2),x(100),y(100),z(100),chg(100,100,800)
      dimension chgt(1000),a(3,3)

      write(*,*) 'Choose input file (LOCPOT=1, CHGCAR=2):'
      read(*,*) input
      if (input.eq.1) then
      open(15,file='LOCPOT')
      write(6,*) ' Enter fermi energy: '
      read(*,*) ef
      elseif (input.eq.2) then
      open(15,file='CHGCAR')
      ef=0.0
      elseif ((input.ne.1).and.(input.ne.2)) then
      write(*,*) ' INPUT ERROR, input must equal to 1 or 2 '
      stop
      endif


      write(*,*) 'Spin polarized calculation? (no=1, yes=2):'
      read (*,*) ispin
      if (ispin.eq.1) then
       if (input.eq.1) open(16,file='workfn.dat')
       if (input.eq.2) open(16,file='chgave.dat')
      elseif (ispin.eq.2) then
       if (input.eq.1) then
       open(16,file='workfn-up.dat')
       open(26,file='workfn-dn.dat')
       elseif (input.eq.2) then
       open(16,file='chgave-up.dat')
       open(26,file='chgave-dn.dat')
       endif
      elseif ((ispin.ne.1).and.(ispin.ne.2)) then
      write(*,*) ' INPUT ERROR, ispin must equal to 1 or 2 '
      stop
      endif


      open(19,file='atom.dat')


      read(15,1) dump
      read(15,*) scale
      do i=1,3
      read(15,*) (a(i,j),j=1,3)
      enddo
1    format(20a4)
      aa=sqrt(a(3,1)**2+a(3,2)**2+a(3,3)**2)
      read(15,2) num(1),num(2)
c     write(6,2) num(1),num(2)
2    format(2i4)
      ity=1
      if (num(2) .gt. 0) ity=2
      natm=0
      do i=1,ity
      natm=natm+num(i)
      enddo
      read(15,1) dump
c     write(6,1) dump
      zero=0.0
      do i=1,natm
      read(15,*) x(i),y(i),z(i)
      enddo
      do i=1,natm
      x(i)=z(i)
      do j=i,natm
      if (z(j) .lt. x(i))  then
      x(i)=z(j)
      z(j)=z(i)
      z(i)=x(i)
      endif
      enddo
c     if (a(3,3) .eq. 0) a(3,3)=a(3,2)
      write(19,30) z(i)*aa*scale,zero
30   format(2f10.5)
      enddo
      nat=natm/2+1
      do i=1,nat
c     write(6,4) i,z(i)
   4  format(i5,f10.5)
      enddo
      read(15,1) dump

      do 600 is = 1,ispin
      read(15,*) nx,ny,nz
c     write(6,*) nx,ny,nz
      nn=nx*ny
      read(15,*) (((chg(j,k,iz),j=1,nx),k=1,ny),iz=1,nz)
c     write(6,5) (((chg(j,k,iz),j=1,nx),k=1,ny),iz=1,nz)
   5  format(5(e18.11,1x))
      do i=1,nz
      chgt(i)=0.0
      do j=1,nx
      do k=1,ny
      chgt(i)=chgt(i)+chg(j,k,i)
      enddo
      enddo
      x1=float(i-1)/float(nz)
      chgt(i)=chgt(i)/float(nn)-ef
      write(6+10*is,10) x1*aa*scale,chgt(i)               
10   format(2f12.5)
       enddo

      if (input.eq.1)then
      emax=-9999.0
      do i=1,nz
      if (chgt(i) .gt. emax) emax=chgt(i)
      enddo
      workfn=emax
c     write(6,201) ef
      write(6,301) workfn
      endif
c201  format(' fermi energy =',f10.5)
301  format(' workfunction =',f10.5)

      if ((is.eq.1).and.(ispin.eq.2))then
       if (input.eq.1) then
       read(15,*) (ttt,i=1,natm)

       elseif (input.eq.2) then
       do nn=1,natm
       read(15,'(24x,2i4)') nn1,nn2
       read(15,*) (ttt,i=1,nn2)
       enddo
       read(15,*) (ttt,i=1,natm)
       endif
      endif
600  continue
      stop  
      end

11楼2011-06-03 11:47:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

cavediger

金虫 (正式写手)

★ ★
贺仪(金币+2): 谢谢你的热心帮助 2011-06-01 20:14:39
引用回帖:
Originally posted by 胡同学 at 2011-05-29 09:53:33:
计算吸附得出的结果中,功函数这一项得出work function:left -6.303  right  -6.086eV   这是表示什么意思?  功函数结果不是正数吗?  怎么得出负数结果,为什么还有左右之分?  请教哪位大牛帮我解释一下,先表 ...

不知道你这是用什么得出来的结果,但有两个功函数是可以理解的,因为你算的是吸附体系,如果只是表面一侧有吸附物的不对称体系,则相对于上下表面的功函数会不同,大概你用了什么后处理程序,输出为左右了.....
我们都老得太快,却聪明得太迟。当我一路跌跌撞撞登上山巅,蓦然发现,本来就有一条笔直的路,直达山顶....
2楼2011-06-01 18:46:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

胡同学

金虫 (正式写手)

引用回帖:
Originally posted by cavediger at 2011-06-01 18:46:59:
不知道你这是用什么得出来的结果,但有两个功函数是可以理解的,因为你算的是吸附体系,如果只是表面一侧有吸附物的不对称体系,则相对于上下表面的功函数会不同,大概你用了什么后处理程序,输出为左右了.....

我用VASP算出的,以MedeA平台,您能说得具体点吗?我是一边吸附的,为什么会得出负数的结果,功函数应该是正数啊?
人生苦短,抓紧科研,抓紧找对象。
3楼2011-06-01 20:59:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cavediger

金虫 (正式写手)


youzhizhe(金币+1): 谢谢交流。 2011-06-02 10:03:34
引用回帖:
Originally posted by 胡同学 at 2011-06-01 20:59:11:
我用VASP算出的,以MedeA平台,您能说得具体点吗?我是一边吸附的,为什么会得出负数的结果,功函数应该是正数啊?

没有用过MEDIAa,一般是通过LOCALPOT,找出正空能级再减掉费米能级就是功函数了......
我们都老得太快,却聪明得太迟。当我一路跌跌撞撞登上山巅,蓦然发现,本来就有一条笔直的路,直达山顶....
4楼2011-06-01 22:43:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

first_yg

银虫 (小有名气)

引用回帖:
Originally posted by cavediger at 2011-06-01 22:43:06:
没有用过MEDIAa,一般是通过LOCALPOT,找出正空能级再减掉费米能级就是功函数了......

请问如何找出真空能级呢?
我在INCAR 中加入IDIPOL =3,可以得到LOCALPOT文件,但是不会处理结果,麻烦详细说一下好吗?多谢!
5楼2011-06-02 22:04:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

first_yg

银虫 (小有名气)

引用回帖:
Originally posted by first_yg at 2011-06-02 22:04:14:
请问如何找出真空能级呢?
我在INCAR 中加入IDIPOL =3,可以得到LOCALPOT文件,但是不会处理结果,麻烦详细说一下好吗?多谢!

说错了,是用LVTOT=.TRUE.
得到LOCPOT文件,然后呢
6楼2011-06-02 22:28:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cavediger

金虫 (正式写手)

★ ★
gzqdyouxia(金币+2): 谢谢指教 2011-06-03 08:51:58
引用回帖:
Originally posted by first_yg at 2011-06-02 22:28:25:
说错了,是用LVTOT=.TRUE.
得到LOCPOT文件,然后呢

1.自己写个简单小程序就可以了,打开LOCPOT文件,里面是SLAB内的静电势数据,对每一个垂直于Z方向面上的静电势取平均,然后对Z作图,真空区的静电势是一个平台,平台的高低就是真空能级了。
2.你可以在网上搜一下,有个ave-mesh.f的小程序,也可以用来计算功函数。
我们都老得太快,却聪明得太迟。当我一路跌跌撞撞登上山巅,蓦然发现,本来就有一条笔直的路,直达山顶....
7楼2011-06-03 08:21:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

first_yg

银虫 (小有名气)

引用回帖:
Originally posted by cavediger at 2011-06-03 08:21:22:
1.自己写个简单小程序就可以了,打开LOCPOT文件,里面是SLAB内的静电势数据,对每一个垂直于Z方向面上的静电势取平均,然后对Z作图,真空区的静电势是一个平台,平台的高低就是真空能级了。
2.你可以在网上搜 ...

能把你的程序发给我一个吗,我最不会写程序
8楼2011-06-03 08:58:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

vasp0000

新虫 (小有名气)

【答案】应助回帖

★ ★
youzhizhe(金币+2): 谢谢交流。 2011-06-03 11:16:40
胡同学(金币+5): 2011-06-10 12:15:03
left和right在outcar中就会有的,结构是对称的,没有偶极矩的一般是左右相等。一些情况(例如加电场等)便会左右不等。对于不等的情况,可以通过调整结构,使上下表面对称、或者试着添加原子层数或者真空等。
婲婲 is a good girl
9楼2011-06-03 10:37:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

胡同学

金虫 (正式写手)

引用回帖:
Originally posted by vasp0000 at 2011-06-03 10:37:24:
left和right在outcar中就会有的,结构是对称的,没有偶极矩的一般是左右相等。一些情况(例如加电场等)便会左右不等。对于不等的情况,可以通过调整结构,使上下表面对称、或者试着添加原子层数或者真空等。

我是在Al2O3(0001)表面吸附氢原子,想得到体系功函数的变化,真空层设定为1nm,但得出左右两个功函数,且是负数,那它的负数是相对什么得出来的?本应该是正数啊?哪个功函数才是真正的功函数呢?
人生苦短,抓紧科研,抓紧找对象。
10楼2011-06-03 11:10:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 胡同学 的主题更新
信息提示
请填处理意见