def density1d_circ1d_all0(EFermi, ems, temp, radius, nmax, mmax): """ electron denstiy in circular nanowire (parabolic band) """ n0 = 0 nlist = np.arange(1, nmax+1, dtype=np.int64) mlist = np.arange(1, mmax+1, dtype=np.int64) for n in nlist: for m in mlist: Enmp = fetmodel.Ep_nm_radial1d(ems, radius, int(n), int(m)) # print(Enmp) nn = fetmodel.density1d0(EFermi, Enmp, ems, temp) n0 += nn return(n0)
def Ids_ballistic1d_circ1d(Vds, Vgs, p, EFs,left=-0.2,right=0): """ current of ballistic FET with circular 1d NW """ e0=E0_circ1d_root(Vds,Vgs,EFs,p,left,right) # e00 = optimize.root_scalar( # func_e0_find_circ1d, args=(Vgs, Vds, p), x0=-0.1, x1=1) # e0=e00.root nlist = np.arange(1, p.nmax+1, dtype=np.int64) mlist = np.arange(1, p.mmax+1, dtype=np.int64) cur = 0 for m in mlist: for n in nlist: Enp = fetmodel.Ep_nm_radial1d(p.ems, p.W1/2, int(n), int(m)) cur1 = func_FD0(EFs-Enp-e0, p.temp) cur2 = func_FD0(EFs-Enp-e0-Vds, p.temp) cur += cur1-cur2 return (cur*2*const.elementary_charge/const.h*p.temp*const.Boltzmann)
def density1d_circ1dNP_all0(EFermi, alpha, ems, temp, radius, nmax, mmax): """ electron denstiy in circular nanowire (parabolic band) """ n0 = 0 nlist = np.arange(1, nmax+1, dtype=np.int64) mlist = np.arange(1, mmax+1, dtype=np.int64) for n in nlist: for m in mlist: Enmp = fetmodel.Ep_nm_radial1d(ems, radius, int(n), int(m)) gamma_nm = fetmodel.gamma_nm_NP(Enmp, alpha) alpha_nm = fetmodel.alpha_nm_NP(alpha,gamma_nm) ems_nm = fetmodel.ems_nm_NP(ems,gamma_nm) Enm = fetmodel.E_nm_NP(alpha, gamma_nm) # print(Enm) nn = fetmodel.density1d_NP0(EFermi, Enm, alpha_nm, ems_nm, temp) n0 += nn return(n0)
W1=W1, W2=W2, nmax=nmax, mmax=mmax) p.output() Epnm=np.zeros(nmax*mmax) gamma_nm=np.zeros(nmax*mmax) alpha_nm=np.zeros(nmax*mmax) ems_nm=np.zeros(nmax*mmax) Enm=np.zeros(nmax*mmax) print('Energy Levels: n, m, parabollic, nonparabollic') i=0 for n in np.arange(1, p.nmax+1): for m in np.arange(1,p.mmax+1): Epnm[i]=fetmodel.Ep_nm_radial1d(p.ems, p.W1/2, int(n), int(m)) gamma_nm[i] = fetmodel.gamma_nm_NP(Epnm[i], alpha) alpha_nm[i] = fetmodel.alpha_nm_NP(alpha,gamma_nm[i]) ems_nm[i] = fetmodel.ems_nm_NP(p.ems,gamma_nm[i]) Enm[i] = fetmodel.E_nm_NP(alpha, gamma_nm[i]) print(n,m,Epnm[i],Enm[i], gamma_nm[i],ems_nm[i],alpha_nm[i]) i+=1 plt.figure() left=min(Epnm) right=max(Epnm) plt.scatter(Epnm,Enm,label='energy') plt.legend(loc='best') left=min(Enm) right=max(Enm)