コード例 #1
0
ファイル: plotCond.py プロジェクト: kpws/AdS-CFT
        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):
            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$"
                )
コード例 #2
0
ファイル: plotPL.py プロジェクト: kpws/AdS-CFT
    bb,osc=getBoundary(rhoSol[0][0],rhoSol[0][1], [wlim,a2])
    pole=(-1j*bb[2][1]/( bb[2][0] )).imag
    bb,osc=getBoundary(rhoSol[0][0],rhoSol[0][1], [wlim*2,a2])
    pole2=(-1j*bb[2][1]/( bb[2][0] )).imag
    assert( (pole-pole2)/pole<0.01 or Tr>=0)

    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):
            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(wv0),np.log(wv1),f,lambda s:s.real,minN=100,maxTurn=0.1,maxN=500)
        sigmas.append((np.exp(nwvs),nsigmas))
    
    wvs=np.array(sigmas[0][0])
    nsigma=sigmas[0][1]-1j*pole/(wvs*mu)
    #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$')
   # pl.plot(wvs,nsigma.real)
    #pl.plot(wvs,nsigma.imag)
    mw=0.15
    mi=int(np.interp(mw,wvs,range(len(wvs))))
    Y=abs(nsigma[mi])
    Yd=(abs(nsigma[mi+1])-abs(nsigma[mi-1]))/(wvs[mi+1]-wvs[mi-1])
    gamma=-2./3
    C=Y-Yd*wvs[mi]/gamma
    B=(Y-C)/wvs[mi]**gamma
コード例 #3
0
ファイル: plotGrapheneCond.py プロジェクト: kpws/AdS-CFT
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:
            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$')
コード例 #4
0
ファイル: plotGrapheneCondOld.py プロジェクト: kpws/AdS-CFT
        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(w):
            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(wvs[0],wvs[-1],f,lambda s:s.real,minN=30,maxTurn=0.1)
        sigmas.append((nwvs,nsigmas))
    for s in sigmas:
        fig(0)
        pl.plot(s[0],[i.real for i in s[1]],ls='-',c='k',label=r'$\mathrm{Re}(\sigma)$'if first else '')
        if plotImag:
            fig(1)
            pl.plot(s[0],[i.imag for i in s[1]],ls='--',c='k',label=r'$\mathrm{Im}(\sigma)$'if first else '')
        first=False
#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'$\frac{\omega}{\mu}$')