def T_P_int_geon(x, tau, tau0, n, R, rh, l, pm1, Om, lam, sig, deltaphi=0): K = lam**2 / (np.sqrt(2) * np.pi * l * Om) * rh / np.sqrt(R**2 - rh**2) Gm = rh**2 / (R**2 - rh**2) * (R**2 / rh**2 * fp.mpf( mp.cosh(rh / l * (deltaphi - 2 * np.pi * (n + 0.5)))) - 1) Gp = rh**2 / (R**2 - rh**2) * (R**2 / rh**2 * fp.mpf( mp.cosh(rh / l * (deltaphi - 2 * np.pi * (n + 0.5)))) + 1) if tau < tau0: return 0 elif x < (tau + tau0): return K * fp.sin(Om*(2*tau0+x))\ * (1/fp.sqrt(Gm + fp.mpf(mp.cosh(rh/l**2 * x))) - 1/fp.sqrt(Gp + fp.mpf(mp.cosh(rh/l**2 * x)))) else: return K * fp.sin(Om*(2*tau-x))\ * (1/fp.sqrt(Gm + fp.mpf(mp.cosh(rh/l**2 * x))) - 1/fp.sqrt(Gp + fp.mpf(mp.cosh(rh/l**2 * x))))
def XG_plusBA(n, RA, RB, rh, l, pm1, Om, lam, tau0, width, deltaphi, isP): bA = mp.sqrt(RA**2 - rh**2) / l bB = mp.sqrt(RB**2 - rh**2) / l f = lambda y: 2/Om/(bB-bA) * fp.exp(-fp.j*Om/2*(bB+bA)*y)\ * h_n2(y,n,RA,RB,rh,l,pm1,deltaphi,isP)\ * fp.sin( Om/2*(bB-bA)*(2*(tau0+width)-y)) return fp.quad(f, [2 * tau0 + width, 2 * (tau0 + width)])
def XG_minusAB(n, RA, RB, rh, l, pm1, Om, lam, tau0, width, deltaphi, isP): bA = mp.sqrt(RA**2 - rh**2) / l bB = mp.sqrt(RB**2 - rh**2) / l f = lambda y: 2/Om/(bB-bA) * fp.exp(-fp.j*Om/2*(bB+bA)*y)\ * h_n1(y,n,RA,RB,rh,l,pm1,deltaphi,isP)\ * fp.sin( Om/2*(bB-bA)*(y-2*tau0)) return fp.quad(f, [2 * tau0, 2 * tau0 + width])
def f02(y,n,R,rh,l,pm1,Om,lam,sig): K = lam**2*sig/2/fp.sqrt(2*fp.pi) a = (R**2-rh**2)*l**2/4/sig**2/rh**2 b = fp.sqrt(R**2-rh**2)*Om*l/rh Zp = mp.mpf((R**2+rh**2)/(R**2-rh**2)) if Zp == mp.cosh(y): print("RIP MOM PLSSS") #print(Zp, y, fp.cosh(y)) if Zp - mp.cosh(y) > 0: return K * fp.exp(-a*y**2) * fp.cos(b*y) / fp.mpf(mp.sqrt(Zp - mp.cosh(y))) elif Zp - mp.cosh(y) < 0: return -K * fp.exp(-a*y**2) * fp.sin(b*y) / fp.mpf(mp.sqrt(mp.cosh(y) - Zp)) else: return 0
def g(theta, phi): R = abs(fp.re(fp.spherharm(l, m, theta, phi))) x = R * fp.cos(phi) * fp.sin(theta) y = R * fp.sin(phi) * fp.sin(theta) z = R * fp.cos(theta) return [x, y, z]
def g(theta,phi): R = abs(fp.re(fp.spherharm(l,m,theta,phi))) x = R*fp.cos(phi)*fp.sin(theta) y = R*fp.sin(phi)*fp.sin(theta) z = R*fp.cos(theta) return [x,y,z]
def integrandof_PGEON_n(y, n, RA, RB, rh, l, pm1, Om, lam, tau0, width, deltaphi, isP): return lam**2/Om * fp.sin(Om*y)\ * ( h_n(y+2*tau0,n,RA,RB,rh,l,pm1,deltaphi,isP) - h_n(2*(tau0+width)-y,n,RA,RB,rh,l,pm1,deltaphi,isP) )