Example #1
0
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)
Example #2
0
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)
Example #3
0
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)
Example #4
0
                                    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)