Guest User

Untitled

a guest
Oct 23rd, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. from scipy.optimize import fsolve
  2. from scipy.integrate import dblquad
  3. from numpy import sqrt,cos,pi,absolute
  4.  
  5. Ueh=2320.5
  6. Uhh=2192.5
  7. ED=120
  8. LCP=-59.28179796
  9. UCP=-58.96721714
  10.  
  11.  
  12. def Ih(mu,x):
  13. var,err= dblquad(lambda ky, kx: 1/sqrt((ED-mu-2540*(2-cos(kx)-cos(ky)))**2+x**2)/8/pi/pi, -pi, pi, lambda kx:-pi,lambda kx: pi)
  14. return var
  15.  
  16. def Ie(mu,x):
  17. var,err= dblquad(lambda ky, kx: 1/sqrt((2540*(2-cos(kx)-cos(ky))-mu)**2+x**2)/8/pi/pi, -pi, pi, lambda kx:-pi,lambda kx: pi)
  18. return var
  19.  
  20. def spp(mu,p):
  21. x, y = p
  22. return (absolute(x)-2*Ueh*absolute(y)*Ih(mu,y),4*Ueh**2*Ie(mu,x)*Ih(mu,y)/(1+Uhh*Ih(mu,y))-1)
  23.  
  24. def spm(mu,y):
  25. return Uhh*Ih(mu,y)-1
  26.  
  27. def sis(mu,p):
  28. x,y=p
  29. return(Uhh*Ih(mu,y)-1, Ie(mu,x)*2*Ueh**2/Uhh-1)
  30.  
  31.  
  32. def solution(mu):
  33. if mu<=LCP:
  34. Dele=0
  35. Delh=fsolve(lambda y:spm(mu,y),4)
  36. phase=0
  37. elif mu> LCP and mu<UCP:
  38. Dele,Delh=fsolve(lambda p: sis(mu,p),(4,4))
  39. phase=-Uhh/2/Ueh*Dele/Delh
  40. elif mu>=UCP:
  41. Dele,Delh=fsolve(lambda p: spp(mu,p),(9,4))
  42. phase=-1
  43. return Dele,Delh,phase
  44.  
  45. print(solution(-60))
  46. (0, array([ 4.1349274]), 0)
  47.  
  48. print(solution(-59))
  49. (8.2553379473241311, 4.1210736864119193, -0.94635157721569463)
  50.  
  51. print(solution(-58))
  52. (8.9677408867771558, 4.2580061198120394, -1)
Add Comment
Please, Sign In to add comment