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
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)$')
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()
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}$')
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()