wvs = np.logspace(-1, 0.6, 40) pl.xlim(wvs[0], wvs[-1]) if plotImag: pl.ylim(-1.1, 1.8) else: pl.ylim(-0.1, 1.8) pl.xscale("log") first = True for j in range(len(Trs)): Tr = Trs[j] print("Solving for specific temperature...") rho = rhoc / Tr ** 2 Tc = T * np.sqrt(rho / rhoc) if Tr < 1: rhoSol = findrho(lambda x, y: getBoundary(x, y, [0, a2]), sols, hpsis, bbs, rho) else: 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) rhoSol = [[hphi, 0]] print("Solving for different frequencies...") sigmas = [] for osci in range(len(rhoSol)): bb, osc = getBoundary(rhoSol[osci][0], rhoSol[osci][1], [0, a2]) mu = bb[1][0] def f(l):
Vcrit=(muc/T*natTK*8.9*2/5000./scale)**2 fig(0) pl.plot([0,wm],[1,1],c='r',ls='-',label='$V<%.2f\ \mathrm{V}$'%Vcrit) pl.legend(loc='lower right') fig(1) pl.plot([0,wm],[0,0],c='r',ls='-',label='$V<%.2f\ \mathrm{V}$'%Vcrit) pl.legend(loc='upper right') first=True for j in range(len(murs)): #Tr=Trs[j] print('Solving for specific temperature...') #Tc=T*np.sqrt(rho/rhoc) 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: