Example #1
0
        bb, osc = getBoundary(rhoSol[osci][0], rhoSol[osci][1], [0, a2])
        mu = bb[1][0]

        def f(l):
            w = np.exp(l)
            bb, osc = getBoundary(rhoSol[osci][0], rhoSol[osci][1], [mu * w, a2])
            assert osc == osci
            return -1j * bb[2][1] / (bb[2][0] * (mu * w))

        nwvs, _, nsigmas = getPlotY(np.log(wvs[0]), np.log(wvs[-1]), f, lambda s: s.real, minN=150, maxTurn=0.1)
        sigmas.append((np.exp(nwvs), nsigmas))
    for s in sigmas:
        pl.plot(s[0], [i.real for i in s[1]], ls="-", c="k", label=r"$\mathrm{Re}(\sigma)$" if first else "")
        if a2 == 0:
            printText(
                s[0], [i.real for i in s[1]], [2, 0.8, 0.35, 0.25][j], [-1 / 0.35, 0, 0, 0][j], "$" + str(Tr) + "T_c$"
            )
        else:
            if (j / 2) * 2 == j or len(Trs) < 8:
                B = 1e6
                # printText(s[0],[i.real for i in s[1]],B,-B/(0.35 if j==0 else 0.27),'$'+str(Tr)+'T_c$')
                # printText(s[0],[i.real for i in s[1]],1/(1-0.25/0.4),-1/(0.4-0.25),'$'+str(Tr)+'T_c$')
                printText(
                    s[0], [i.real for i in s[1]], 1 / (1 - 0.23 / 0.308), -1 / (0.308 - 0.23), "$" + str(Tr) + "T_c$"
                )
        if plotImag:
            pl.plot(s[0], [i.imag for i in s[1]], ls="--", c="k", label=r"$\mathrm{Im}(\sigma)$" if first else "")
            printText(
                s[0], [i.imag for i in s[1]], [1, 0.25, 1.25, -0.7][j], [-1 / 0.58, 0, 0, 0][j], "$" + str(Tr) + "T_c$"
            )
        first = False
Example #2
0
    rhoSol=findrho(lambda x,y: getBoundary(x,y,[0,a2]), sols, hpsis, bbs, murs[j]*T,ind=0)
    print('Solving for different frequencies...')
    sigmas=[]
    for osci in range(len(rhoSol)):
        bb,osc=getBoundary(rhoSol[osci][0],rhoSol[osci][1], [0,a2])
        def f(w):
            bb,osc=getBoundary(rhoSol[osci][0],rhoSol[osci][1], [w*T,a2])
            assert(osc==osci)
            return -1j*bb[2][1]/( bb[2][0]*(T*w) )
        nwvs,_,nsigmas=getPlotY(wvs[0],wvs[-1],f,lambda s:s.real*natTK,minN=60,maxTurn=0.1,maxN=150)
        sigmas.append((nwvs,nsigmas))
    for s in sigmas:
        fig(0)
        pl.plot([w*natTK for w in s[0]],[i.real for i in s[1]],ls='-',c='k')
        printText([w*natTK for w in s[0]],[i.real for i in s[1]],0.6,0,'$'+str(nature[j])+'\mathrm{V}$')
        if plotImag:
            fig(1)
            pl.plot([w*natTK for w in s[0]],[i.imag for i in s[1]],ls='-',c='k')
            printText([w*natTK for w in s[0]],[i.imag for i in s[1]],0.6,0,'$'+str(nature[j])+'\mathrm{V}$')
        first=False

print('$\mu_0=%.1fT$'%(murs[0]/nature[0]))
#pl.plot([wvs[0],wvs[-1]],[1,1],ls=':',c='k')
#pl.plot([wvs[0],wvs[-1]],[0,0],ls=':',c='k')
#printText([wvs[0],wvs[-1]],[1,1],0,5.,r'$\sigma=1$')
#pl.legend(loc=3)
#pl.legend(loc='upper right')
fig(0)
pl.xlabel(r'$\omega\ [\mathrm{cm}^{-1}$]')
pl.ylabel(r'$\mathrm{Re}(\sigma)$')
Example #3
0
        Tc = T * np.sqrt(rho / rhoc)

        bb, osc = getBoundary(1, 0, [0, a2])
        guess = rho / (-bb[1][1])
        from scipy.optimize import fsolve

        hphi = fsolve(lambda hphi: rho + getBoundary(hphi, 0, [0, a2])[0][1][1], guess)

        w = 1e-3 * Tc
        bb, osc = getBoundary(hphi, 0, [w, a2])
        assert osc == 0
        sigma = -1j * bb[2][1] / (bb[2][0] * w)
        sigma0 = sigma.real
        tauTc = sigma.imag / (w * sigma0)
        y1s[-1].append(sigma0)
        y2s[-1].append(1 / tauTc)
fig(0, size=12)
pl.xscale("log")
pl.yscale("log")
pl.xlim(Trs[0], Trs[-1])
pl.ylim(5e-3, 2e4)
for j in range(len(a2s)):
    pl.plot(Trs, [y[j] for y in y2s], ls="-", c="k", label=r"$\frac{1}{\tau T_c}$")
    printText(Trs, [y[j] for y in y2s], 10.0, -0.03, "$10^{" + str(j - 4) + "}L^4$")
pl.xlabel(r"$\frac{T}{T_c}$")
pl.ylabel(r"$\frac{1}{\tau T_c}$")
# pl.legend(loc='upper left')
saveFig("scatvsT_2")

pl.show()
Example #4
0
        w=1e-3*Tc
        bb,osc=getBoundary(hphi,0,[w,a2])
        assert osc==0
        sigma=-1j*bb[2][1]/( bb[2][0]*w )
        sigma0=sigma.real
        tauTc=sigma.imag/(w*sigma0)
        y1s[-1].append(sigma0)
        y2s[-1].append(1/tauTc)
#drude=1/(d-m*1j*w)
fig(0,size=11)
pl.xscale('log')
pl.yscale('log')
for j in range(len(Trs)):
    pl.plot([a2 for a2 in a2s],y1s[j],ls='-',c='k',label=r'$\sigma_0$')
    printText(a2s,y1s[j],100.,0,'$'+str(Trs[j])+'T_c$')
pl.xlabel(r'$\frac{\alpha_2}{L^4}$')
pl.ylabel(r'$\sigma_0$')
ai=50
#pl.legend(loc='upper left')
pl.xlim(a2s[0],a2s[-1])
saveFig('drudeVarMT_sigma0')

fig(1,size=11)
pl.xscale('log')
pl.yscale('log')
pl.xlim(a2s[0],a2s[-1])
for j in range(len(Trs)):
    pl.plot(a2s,y2s[j],ls='-',c='k',label=r'$\sigma_0$')
    printText(a2s,y2s[j],10.,0,'$'+str(Trs[j])+'T_c$')
pl.xlabel(r'$\frac{\alpha_2}{L^4}$')
Example #5
0
    first=True
    j=0
    for Tr in Trs:
        print('Solving for specific temperature...')
        rho=rhoc/Tr**2
        Tc=T*np.sqrt(rho/rhoc)
        rhoSol=findrho(lambda x,y: getBoundary(x,y,[0,1]), sols, hpsis, bbs, rho)

        print('Solving for different frequencies...')
        sigmas=[]
        for osci in range(len(rhoSol)):
            sigmas.append([])
            for wvi in range(len(wvs)):
                printRatio(osci*len(wvs)+wvi,len(rhoSol)*len(wvs))
                bb,_=getBoundary(rhoSol[osci][0],rhoSol[osci][1], [Tc*wvs[wvi],1])
                sigmas[-1].append(-1j*bb[2][1]/( bb[2][0]*(Tc*wvs[wvi]) ))
        for s in sigmas:
            pl.plot(wvs,[i.real for i in s],ls='-',c='k',label=r'$\mathrm{Re}(\sigma)$'if first else '')
            printText(wvs,[i.real for i in s],[.45,0.3,0.2][j],0,'$'+str(Tr)+'T_c$')
            pl.plot(wvs,[i.imag for i in s],ls='--',c='k',label=r'$\mathrm{Im}(\sigma)$'if first else '')
            printText(wvs,[i.imag for i in s],[1.25,1.25,-0.7][j],0,'$'+str(Tr)+'T_c$')
        first=False
        j+=1
    pl.plot([wvs[0],wvs[-1]],[1,1],ls=':',c='k')
    pl.plot([wvs[0],wvs[-1]],[0,0],ls=':',c='k')
    #printText([wvs[0],wvs[-1]],[1,1],0,5.,r'$\sigma=1$')
    pl.legend(loc=3)
    pl.xlabel(r'$\frac{\omega}{T_c}$')
    saveFig('cond_Ts')
    pl.show()