Kernel: SageMath 8.1
Locally nonrotating frames and NEC
This Jupyter/SageMath notebook is related to the article Lamy et al, arXiv:1802.01635.
In [1]:
version()
'SageMath version 8.1, Release Date: 2017-12-07'
In [2]:
%display latex
Metric
In [3]:
M = Manifold(4, 'M') print(M)
4-dimensional differentiable manifold M
In [4]:
M1 = M.open_subset('M_1') XBL1.<t,r,th,ph> = M1.chart(r't r:(0,+oo) th:(0,pi):\theta ph:(0,2*pi):\phi') XBL1
(M1,(t,r,θ,ϕ))
In [5]:
M2 = M.open_subset('M_2') forget(r>0) XBL2.<t,r,th,ph> = M2.chart(r't r:(-oo,0) th:(0,pi):\theta ph:(0,2*pi):\phi') M._top_charts.append(XBL2) XBL2
(M2,(t,r,θ,ϕ))
In [6]:
forget(r<0) assumptions()
[txisxreal,rxisxreal,thxisxreal,θ>0,θ[removed]0,ϕ<2π]
In [7]:
g = M.lorentzian_metric('g')
In [8]:
a, b= var('a b') Sigma = r^2 + a^2*cos(th)^2
In [9]:
m=r^3/(r^3+2*b^2) m1 = m Delta1 = r^2 - 2*m*r + a^2 g1 = g.restrict(M1) g1[0,0] = -(1 - 2*r*m/Sigma) g1[0,3] = -2*a*r*sin(th)^2*m/Sigma g1[1,1] = Sigma/Delta1 g1[2,2] = Sigma g1[3,3] = (r^2 + a^2 + 2*r*(a*sin(th))^2*m/Sigma)*sin(th)^2 g.display(XBL1.frame())
g=(a2cos(θ)2+r2)(r3+2b2)2r4−1dt⊗dt−(a2cos(θ)2+r2)(r3+2b2)2ar4sin(θ)2dt⊗dϕ+(−r3+2b22r4−a2−r2a2cos(θ)2+r2)dr⊗dr+(a2cos(θ)2+r2)dθ⊗dθ−(a2cos(θ)2+r2)(r3+2b2)2ar4sin(θ)2dϕ⊗dt+(a2cos(θ)2+r2)(r3+2b2)2a2r4sin(θ)2+a2+r2sin(θ)2dϕ⊗dϕ
In [10]:
g.display_comp(XBL1.frame())
gttttgtϕtϕgrrrrgθθθθgϕtϕtgϕϕϕϕ======(a2cos(θ)2+r2)(r3+2b2)2r4−1−(a2cos(θ)2+r2)(r3+2b2)2ar4sin(θ)2−r3+2b22r4−a2−r2a2cos(θ)2+r2a2cos(θ)2+r2−(a2cos(θ)2+r2)(r3+2b2)2ar4sin(θ)2((a2cos(θ)2+r2)(r3+2b2)2a2r4sin(θ)2+a2+r2)sin(θ)2
In [11]:
m = -r^3/(-r^3 + 2*b^2) m2 = m Delta2 = r^2 - 2*m*r + a^2 g2 = g.restrict(M2) g2[0,0] = -(1 - 2*r*m/Sigma) g2[0,3] = -2*a*r*sin(th)^2*m/Sigma g2[1,1] = Sigma/Delta2 g2[2,2] = Sigma g2[3,3] = (r^2 + a^2 + 2*r*(a*sin(th))^2*m/Sigma)*sin(th)^2 g.display(XBL2.frame())
g=(a2cos(θ)2+r2)(r3−2b2)2r4−1dt⊗dt−(a2cos(θ)2+r2)(r3−2b2)2ar4sin(θ)2dt⊗dϕ+(−r3−2b22r4−a2−r2a2cos(θ)2+r2)dr⊗dr+(a2cos(θ)2+r2)dθ⊗dθ−(a2cos(θ)2+r2)(r3−2b2)2ar4sin(θ)2dϕ⊗dt+(a2cos(θ)2+r2)(r3−2b2)2a2r4sin(θ)2+a2+r2sin(θ)2dϕ⊗dϕ
In [12]:
g.display_comp(XBL2.frame())
gttttgtϕtϕgrrrrgθθθθgϕtϕtgϕϕϕϕ======(a2cos(θ)2+r2)(r3−2b2)2r4−1−(a2cos(θ)2+r2)(r3−2b2)2ar4sin(θ)2−r3−2b22r4−a2−r2a2cos(θ)2+r2a2cos(θ)2+r2−(a2cos(θ)2+r2)(r3−2b2)2ar4sin(θ)2((a2cos(θ)2+r2)(r3−2b2)2a2r4sin(θ)2+a2+r2)sin(θ)2
Locally nonrotating frames
In [13]:
A1=(r^2+a^2)^2-a^2*Delta1*sin(th)^2 A2=(r^2+a^2)^2-a^2*Delta2*sin(th)^2
In [14]:
b1=XBL1.frame() b1
(M1,(∂t∂,∂r∂,∂θ∂,∂ϕ∂))
In [15]:
change_frame = M1.automorphism_field() change_frame[:] = [[sqrt(A1/(Sigma*Delta1)),0,0,0], [0,sqrt(Delta1/Sigma),0,0],[0,0,1/sqrt(Sigma),0], [2*m1*a*r/sqrt(A1*Sigma*Delta1),0,0,sqrt(Sigma/A1)/sin(th)]]; #old covariant basis in terms of the new covariant basis e1 = b1.new_frame(change_frame, 'e1') ; e1
(M1,(e10,e11,e12,e13))
In [16]:
b2=XBL2.frame(); b2
(M2,(∂t∂,∂r∂,∂θ∂,∂ϕ∂))
In [17]:
change_frame = M2.automorphism_field() change_frame[:] = [[sqrt(A2/(Sigma*Delta2)),0,0,0], [0,sqrt(Delta2/Sigma),0,0],[0,0,1/sqrt(Sigma),0], [2*m2*a*r/sqrt(A2*Sigma*Delta2),0,0,sqrt(Sigma/A2)/sin(th)]]; #old covariant basis in terms of the new covariant basis e2 = b2.new_frame(change_frame, 'e2') ; e2
(M2,(e20,e21,e22,e23))
In [18]:
g.display_comp(e1)
g0000g1111g2222g3333====−1111
In [19]:
g.display_comp(e2)
g0000g1111g2222g3333====−1111
Energy momentum tensor
In [20]:
Ricci = g.ricci() Ricci_scal = g.ricci_scalar() G = Ricci-1/2*g*Ricci_scal; print G
Field of symmetric bilinear forms Ric(g)-unnamed metric on the 4-dimensional differentiable manifold M
In [21]:
G1=G.display(e1)
In [22]:
G2=G.display(e2)
In [23]:
G.display()
Ric(g)−unnamed metric=r15+6b2r12+12b4r9+8b6r6+(a6r9+6a6b2r6+12a6b4r3+8a6b6)cos(θ)6+3(a4r11+6a4b2r8+12a4b4r5+8a4b6r2)cos(θ)4+3(a2r13+6a2b2r10+12a2b4r7+8a2b6r4)cos(θ)212(3a2b2r7+b2r9+2b4r6−2b2r8−(a4b2r5−4a4b4r2)cos(θ)4+(a4b2r5−2a2b2r7−4a4b4r2+2a2b4r4)cos(θ)2)dt⊗dt+r15+6b2r12+12b4r9+8b6r6+(a6r9+6a6b2r6+12a6b4r3+8a6b6)cos(θ)6+3(a4r11+6a4b2r8+12a4b4r5+8a4b6r2)cos(θ)4+3(a2r13+6a2b2r10+12a2b4r7+8a2b6r4)cos(θ)212((a5b2r5+a3b2r7−4a5b4r2−4a3b4r4)sin(θ)4−(a5b2r5+4a3b2r7+3ab2r9−4a5b4r2−4a3b4r4−2ab2r8)sin(θ)2)dt⊗dϕ+(−a2r8+r10+4a2b2r5+4b2r7−2r9+4a2b4r2+4b4r4−4b2r6+(a4r6+a2r8+4a4b2r3+4a2b2r5−2a2r7+4a4b4+4a2b4r2−4a2b2r4)cos(θ)212b2r4)dr⊗dr+r11+6b2r8+12b4r5+8b6r2+(a2r9+6a2b2r6+12a2b4r3+8a2b6)cos(θ)212(2b2r7−2b4r4+(a2b2r5−4a2b4r2)cos(θ)2)dθ⊗dθ+r15+6b2r12+12b4r9+8b6r6+(a6r9+6a6b2r6+12a6b4r3+8a6b6)cos(θ)6+3(a4r11+6a4b2r8+12a4b4r5+8a4b6r2)cos(θ)4+3(a2r13+6a2b2r10+12a2b4r7+8a2b6r4)cos(θ)212((a5b2r5+a3b2r7−4a5b4r2−4a3b4r4)sin(θ)4−(a5b2r5+4a3b2r7+3ab2r9−4a5b4r2−4a3b4r4−2ab2r8)sin(θ)2)dϕ⊗dt+−r15+6b2r12+12b4r9+8b6r6+(a6r9+6a6b2r6+12a6b4r3+8a6b6)cos(θ)6+3(a4r11+6a4b2r8+12a4b4r5+8a4b6r2)cos(θ)4+3(a2r13+6a2b2r10+12a2b4r7+8a2b6r4)cos(θ)212((a6b2r5+a4b2r7−4a6b4r2−10a4b4r4−6a2b4r6+2a2b2r8)sin(θ)4−(a6b2r5+4a4b2r7+5a2b2r9+2b2r11−4a6b4r2−10a4b4r4−8a2b4r6−2b4r8)sin(θ)2)dϕ⊗dϕ
Null Energy Condition
In [24]:
k1 = M1.vector_field('k1') k1[e1,:] = [1,1,0,0] k1.display(e1)
k1=e10+e11
In [25]:
k1d=k1.down(g) k1k1=k1d['_a']*k1['^a'] k1k1.display()
M1(t,r,θ,ϕ)⟶⟼R0
In [26]:
k2 = M2.vector_field('k2') k2[e2,:] = [1,1,0,0] k2.display(e2)
k2=e20+e21
In [27]:
k2d=k2.down(g) k2k2=k2d['_a']*k2['^a'] k2k2.display()
M2(t,r,θ,ϕ)⟶⟼R0
In [28]:
NN=G['_{ab}']*k1['^a'] NEC1=8*pi*NN['_a']*k1['^a'] NEC1.display()
M1(t,r,θ,ϕ)⟶⟼R−a2r18+r20+8a2b2r15+24a2b4r12+2(a2+4b2)r17+32a2b6r9+16a2b8r6+12(a2b2+2b4)r14+8(3a2b4+4b6)r11+16(a2b6+b8)r8+(a8r12+a6r14+8a8b2r9+8a6b2r11−2a6r13+24a8b4r6+24a6b4r8−12a6b2r10+32a8b6r3+32a6b6r5−24a6b4r7+16a8b8+16a6b8r2−16a6b6r4)cos(θ)6+(3a6r14+3a4r16+24a6b2r11−4a4r15+72a6b4r8−24a4b2r12+96a6b6r5−48a4b4r9+48a6b8r2−32a4b6r6+2(a6+12a4b2)r13+12(a6b2+6a4b4)r10+24(a6b4+4a4b6)r7+16(a6b6+3a4b8)r4)cos(θ)4+(3a4r16+3a2r18+24a4b2r13−2a2r17+72a4b4r10−12a2b2r14+96a4b6r7−24a2b4r11+48a4b8r4−16a2b6r8+4(a4+6a2b2)r15+24(a4b2+3a2b4)r12+48(a4b4+2a2b6)r9+16(2a4b6+3a2b8)r6)cos(θ)296((πa6b2r8+πa4b2r10−2πa6b4r5−2πa4b4r7−2πa4b2r9−8πa6b6r2−8πa4b6r4+8πa4b4r6)sin(θ)4−(πa6b2r8+4πa4b2r10+3πa2b2r12−2πa6b4r5+4πa4b4r7−6πa2b2r11−8πa6b6r2−8πa4b6r4+8πa4b4r6−2(πa4b2−3πa2b4)r9)sin(θ)2)
In [29]:
NNN=G['_{ab}']*k2['^a'] NEC2=8*pi*NNN['_a']*k2['^a'] NEC2.display()
M2(t,r,θ,ϕ)⟶⟼Ra2r18+r20−8a2b2r15+24a2b4r12+2(a2−4b2)r17−32a2b6r9+16a2b8r6−12(a2b2−2b4)r14+8(3a2b4−4b6)r11−16(a2b6−b8)r8+(a8r12+a6r14−8a8b2r9−8a6b2r11−2a6r13+24a8b4r6+24a6b4r8+12a6b2r10−32a8b6r3−32a6b6r5−24a6b4r7+16a8b8+16a6b8r2+16a6b6r4)cos(θ)6+(3a6r14+3a4r16−24a6b2r11−4a4r15+72a6b4r8+24a4b2r12−96a6b6r5−48a4b4r9+48a6b8r2+32a4b6r6+2(a6−12a4b2)r13−12(a6b2−6a4b4)r10+24(a6b4−4a4b6)r7−16(a6b6−3a4b8)r4)cos(θ)4+(3a4r16+3a2r18−24a4b2r13−2a2r17+72a4b4r10+12a2b2r14−96a4b6r7−24a2b4r11+48a4b8r4+16a2b6r8+4(a4−6a2b2)r15−24(a4b2−3a2b4)r12+48(a4b4−2a2b6)r9−16(2a4b6−3a2b8)r6)cos(θ)296((πa6b2r8+πa4b2r10+2πa6b4r5+2πa4b4r7−2πa4b2r9−8πa6b6r2−8πa4b6r4−8πa4b4r6)sin(θ)4−(πa6b2r8+4πa4b2r10+3πa2b2r12+2πa6b4r5−4πa4b4r7−6πa2b2r11−8πa6b6r2−8πa4b6r4−8πa4b4r6−2(πa4b2+3πa2b4)r9)sin(θ)2)
In [30]:
nec1(a,b,r,th)=NEC1.expr() nec2(a,b,r,th)=NEC2.expr()
In [31]:
a=0.9 b=1 plot1=plot((nec1(a,b,r,pi/6), nec1(a,b,r,pi/3), nec1(a,b,r,pi/2)), (r,0,4), ymin=-70,ymax=70, legend_label=[r'$\theta=\frac{\pi}{6}$',r'$\theta=\frac{\pi}{3}$', r'$\theta=\frac{\pi}{2}$'], axes_labels=[r'$r/m$',''], plot_points=400)
In [32]:
a=0.9 b=1 plot2=plot((nec2(a,b,r,pi/6), nec2(a,b,r,pi/3), nec2(a,b,r,pi/2)),(r,-4,0), axes_labels=[r'$r/m$',r'$T_{\hat{\mu}\hat{\nu}}k^{\hat{\mu}}k^{\hat{\nu}}$'], ymin=-70, ymax=70, plot_points=400)
In [33]:
graph = plot1 + plot2 show(graph)
In [34]:
graph.save('NEC_a=09_b=1.pdf')
In [35]:
ww1(a,b,r,th)=-12*((a^6*b^2*r^8 + a^4*b^2*r^10 - 2*a^6*b^4*r^5 - 2*a^4*b^4*r^7 - 2*a^4*b^2*r^9 - 8*a^6*b^6*r^2 - 8*a^4*b^6*r^4 + 8*a^4*b^4*r^6)*sin(th)^4 - (a^6*b^2*r^8 + 4*a^4*b^2*r^10 + 3*a^2*b^2*r^12 - 2*a^6*b^4*r^5 + 4*a^4*b^4*r^7 - 6*a^2*b^2*r^11 - 8*a^6*b^6*r^2 - 8*a^4*b^6*r^4 + 8*a^4*b^4*r^6 - 2*(a^4*b^2 - 3*a^2*b^4)*r^9)*sin(th)^2)/(a^2*r^18 + r^20 + 8*a^2*b^2*r^15 + 24*a^2*b^4*r^12 + 2*(a^2 + 4*b^2)*r^17 + 32*a^2*b^6*r^9 + 16*a^2*b^8*r^6 + 12*(a^2*b^2 + 2*b^4)*r^14 + 8*(3*a^2*b^4 + 4*b^6)*r^11 + 16*(a^2*b^6 + b^8)*r^8 + (a^8*r^12 + a^6*r^14 + 8*a^8*b^2*r^9 + 8*a^6*b^2*r^11 - 2*a^6*r^13 + 24*a^8*b^4*r^6 + 24*a^6*b^4*r^8 - 12*a^6*b^2*r^10 + 32*a^8*b^6*r^3 + 32*a^6*b^6*r^5 - 24*a^6*b^4*r^7 + 16*a^8*b^8 + 16*a^6*b^8*r^2 - 16*a^6*b^6*r^4)*cos(th)^6 + (3*a^6*r^14 + 3*a^4*r^16 + 24*a^6*b^2*r^11 - 4*a^4*r^15 + 72*a^6*b^4*r^8 - 24*a^4*b^2*r^12 + 96*a^6*b^6*r^5 - 48*a^4*b^4*r^9 + 48*a^6*b^8*r^2 - 32*a^4*b^6*r^6 + 2*(a^6 + 12*a^4*b^2)*r^13 + 12*(a^6*b^2 + 6*a^4*b^4)*r^10 + 24*(a^6*b^4 + 4*a^4*b^6)*r^7 + 16*(a^6*b^6 + 3*a^4*b^8)*r^4)*cos(th)^4 + (3*a^4*r^16 + 3*a^2*r^18 + 24*a^4*b^2*r^13 - 2*a^2*r^17 + 72*a^4*b^4*r^10 - 12*a^2*b^2*r^14 + 96*a^4*b^6*r^7 - 24*a^2*b^4*r^11 + 48*a^4*b^8*r^4 - 16*a^2*b^6*r^8 + 4*(a^4 + 6*a^2*b^2)*r^15 + 24*(a^4*b^2 + 3*a^2*b^4)*r^12 + 48*(a^4*b^4 + 2*a^2*b^6)*r^9 + 16*(2*a^4*b^6 + 3*a^2*b^8)*r^6)*cos(th)^2)
In [36]:
ww2(a,b,r,th)=12*((a^6*b^2*r^8 + a^4*b^2*r^10 + 2*a^6*b^4*r^5 + 2*a^4*b^4*r^7 - 2*a^4*b^2*r^9 - 8*a^6*b^6*r^2 - 8*a^4*b^6*r^4 - 8*a^4*b^4*r^6)*sin(th)^4 - (a^6*b^2*r^8 + 4*a^4*b^2*r^10 + 3*a^2*b^2*r^12 + 2*a^6*b^4*r^5 - 4*a^4*b^4*r^7 - 6*a^2*b^2*r^11 - 8*a^6*b^6*r^2 - 8*a^4*b^6*r^4 - 8*a^4*b^4*r^6 - 2*(a^4*b^2 + 3*a^2*b^4)*r^9)*sin(th)^2)/(a^2*r^18 + r^20 - 8*a^2*b^2*r^15 + 24*a^2*b^4*r^12 + 2*(a^2 - 4*b^2)*r^17 - 32*a^2*b^6*r^9 + 16*a^2*b^8*r^6 - 12*(a^2*b^2 - 2*b^4)*r^14 + 8*(3*a^2*b^4 - 4*b^6)*r^11 - 16*(a^2*b^6 - b^8)*r^8 + (a^8*r^12 + a^6*r^14 - 8*a^8*b^2*r^9 - 8*a^6*b^2*r^11 - 2*a^6*r^13 + 24*a^8*b^4*r^6 + 24*a^6*b^4*r^8 + 12*a^6*b^2*r^10 - 32*a^8*b^6*r^3 - 32*a^6*b^6*r^5 - 24*a^6*b^4*r^7 + 16*a^8*b^8 + 16*a^6*b^8*r^2 + 16*a^6*b^6*r^4)*cos(th)^6 + (3*a^6*r^14 + 3*a^4*r^16 - 24*a^6*b^2*r^11 - 4*a^4*r^15 + 72*a^6*b^4*r^8 + 24*a^4*b^2*r^12 - 96*a^6*b^6*r^5 - 48*a^4*b^4*r^9 + 48*a^6*b^8*r^2 + 32*a^4*b^6*r^6 + 2*(a^6 - 12*a^4*b^2)*r^13 - 12*(a^6*b^2 - 6*a^4*b^4)*r^10 + 24*(a^6*b^4 - 4*a^4*b^6)*r^7 - 16*(a^6*b^6 - 3*a^4*b^8)*r^4)*cos(th)^4 + (3*a^4*r^16 + 3*a^2*r^18 - 24*a^4*b^2*r^13 - 2*a^2*r^17 + 72*a^4*b^4*r^10 + 12*a^2*b^2*r^14 - 96*a^4*b^6*r^7 - 24*a^2*b^4*r^11 + 48*a^4*b^8*r^4 + 16*a^2*b^6*r^8 + 4*(a^4 - 6*a^2*b^2)*r^15 - 24*(a^4*b^2 - 3*a^2*b^4)*r^12 + 48*(a^4*b^4 - 2*a^2*b^6)*r^9 - 16*(2*a^4*b^6 - 3*a^2*b^8)*r^6)*cos(th)^2)
In [0]: