Function usefielddependent n(indEl, matind ,Ex,Ey,T,xp,yp)
出自 DDCC TCAD TOOL Manual
Function usefielddependent n(indEl, matind ,Ex,Ey,T,xp,yp) is activated by the command $usefieldmufunc. This function is similar to command $useemunfunc, $useemupfunc. But this function provide more parameters for use to assign in the input file. Therefore, this function can be continuous expanded to many different mobility models.
function usefielddependent_n(indEl, matind ,Ex,Ey,T,xp,yp) use global2Dextra3 use nrtype use global2D, only : KB implicit none real(dp) :: usefielddependent_n integer(i4b),intent(in) :: indEl, matind integer(i4b) :: i,j,k real(dp),intent(in) :: Ex,Ey ,T ,xp,yp real(dp) :: mu, E, muconst if(munpfunctype(matind)==1) then if(Ey<0) then E=0 else E=Ey end if !print*, "heyhey" if(munpfuncpara(2,matind)*sqrt(E) < 50.0_dp) then mu= munpfuncpara(1,matind)*exp(munpfuncpara(2,matind)*sqrt(E)) else mu= munpfuncpara(1,matind)*exp(50.0_dp) end if usefielddependent_n=mu elseif(munpfunctype(matind)==11) then if(Ey>0) then E=0 else E=abs(Ey) end if !print*, "heyhey" if(munpfuncpara(2,matind)*sqrt(E) < 50.0_dp) then mu= munpfuncpara(1,matind)*exp(munpfuncpara(2,matind)*sqrt(E)) else mu= munpfuncpara(1,matind)*exp(50.0_dp) end if usefielddependent_n=mu elseif(munpfunctype(matind)==2) then if(Ex<0) then E=0 else E=Ex end if !print*, "heyhey" if(munpfuncpara(2,matind)*sqrt(E) < 50.0_dp) then mu= munpfuncpara(1,matind)*exp(munpfuncpara(2,matind)*sqrt(E)) else mu= munpfuncpara(1,matind)*exp(50.0_dp) end if usefielddependent_n=mu elseif(munpfunctype(matind)==21) then if(Ex>0) then E=0 else E=abs(Ex) end if !print*, "heyhey" if(munpfuncpara(2,matind)*sqrt(E) < 50.0_dp) then mu= munpfuncpara(1,matind)*exp(munpfuncpara(2,matind)*sqrt(E)) else mu= munpfuncpara(1,matind)*exp(50.0_dp) end if usefielddependent_n=mu end if
!stop end function