Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

EMT_Toshmatov_et_al_Kerr_Newman

Views: 873
Kernel: SageMath (stable)

Exact solution to nonlinear Maxwell's equations and Einstein's equations in Toshmatov et al.

This worksheet is devoted to the study of solutions to the Einstein and nonlinear Maxwell equations from Toshmatov et al. (https://journals.aps.org/prd/abstract/10.1103/PhysRevD.95.084037)

%display latex

Spacetime: general M(r)

M = Manifold(4, 'M') X.<t,r,th,ph> = M.chart(r't r:(0,+oo) th:(0,pi):\theta ph:(0,2*pi):\phi') X

The mass and angular momentum parameters:

M0, a = var('M0 a', domain='real') assume(M0>0, a>=0) var('gam', latex_name="\gamma");

The metric:

var('Qm', latex_name="Q_m"); g = M.lorentzian_metric('g') MM=function('M')(r) rho2 = r^2 + (a*cos(th))^2 Delta = r^2 -(2*M(r)*r) + a^2 g[0,0] = -(1-(2*M(r)*r)/rho2) g[0,3] = -a*(2*M(r)*r)*sin(th)^2/rho2 g[1,1], g[2,2] = rho2/Delta, rho2 g[3,3] = (r^2+a^2+(2*M(r)*r)*(a*sin(th))^2/rho2)*sin(th)^2 g.display()
gm1=g.inverse()

Electromagnetic field

We need the 1-forms dt\mathrm{d}t and dϕ\mathrm{d}\phi to form the electromagnetic field; we get them as follows:

X.coframe()
dt = X.coframe()[0] dr = X.coframe()[1] dtheta = X.coframe()[2] dphi = X.coframe()[3]

The potential defined according to Eq. (25) of Toshmatov et al. (2017):

var('Q') A = -Qm*a*cos(th)/rho2 * dt + Qm*cos(th)*(r^2+a^2)/rho2 * dphi A.set_name('A') A.display()
F = A.exterior_derivative() F.set_name('F') F.display()

The electromagnetic field invariant F:=FabFab\mathcal{F} := F_{ab} F^{ab}:

Fuu = F.up(g) F2 = F['_ab']*Fuu['^ab'] print(F2)
Scalar field on the 4-dimensional differentiable manifold M
F2.display()

We introduce the Lagrangian density L(F)L(\mathcal{F}) for the electromagnetic field

L=gam*F2

Similarly, we introduce dLdF\frac{\mathrm{d}L}{\mathrm{d}\mathcal{F}} as a lambda function, formed from the derivative of L(x)L(x):

Nonlinear Maxwell equation

We introduce the derivative of the Lagrangian density LF(F)\mathcal{L_F(F)} for the electromagnetic field

LF=gam

The nonlinear Maxwell equations read dH=0\mathrm{d} H = 0 with H:=⋆(dLdFF)H := \star \left(\frac{\mathrm{d}L}{\mathrm{d}\mathcal{F}} F\right)

H = (LF * F).hodge_dual(g) H.set_name('H') H.display()

Nonlinear Maxwell's equations are satisfied independantly of M(r)M(r)

dH=H.exterior_derivative() dH==0

Einstein's equations

Energy-momentum tensor of the electromagnetic field

Fud = F.up(g,0) Tud=-4*LF*F['_ab']*Fuu['^cb']+L*g['_ab']*gm1['^bc'] print(Tud)
Tensor field of type (1,1) on the 4-dimensional differentiable manifold M
Tud.display()
Tud[0,0]+Tud[1,1]+Tud[2,2]+Tud[3,3]
latex(Tud[0,0].factor())
latex(Tud[1,1].factor())
latex(Tud[2,2].factor())
latex(Tud[3,0].factor())
latex(Tud[3,3].factor())

Einstein's tensor

G = g.ricci() - 1/2*g.ricci_scalar()*g G.set_name('G') print(G)
Field of symmetric bilinear forms G on the 4-dimensional differentiable manifold M
Gud=G['_ab']*gm1['^bc'] Gud.display()
latex(Gud[0,0].simplify())
latex(Gud[1,1].simplify())
latex(Gud[2,2].simplify())
latex(Gud[3,0].simplify())
latex(Gud[3,3].simplify())
latex(Gud[0,0]+Gud[1,1]+Gud[2,2]+Gud[3,3])

Check that Einstein's equations are satisfied

Gud[0,0].expr().substitute_function(MM,M0+8*gam*pi*Q^2/r)
Gud.substitute_function(MM,M0+8*gam*pi*Q^2/r)==8*pi*Tud
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-33-5c5bdec69eff> in <module>() ----> 1 Gud.substitute_function(MM,M0+Integer(8)*gam*pi*Q**Integer(2)/r)==Integer(8)*pi*Tud /ext/sage/sage-8.3_1804/local/lib/python2.7/site-packages/sage/structure/element.pyx in sage.structure.element.Element.__getattr__ (build/cythonized/sage/structure/element.c:4518)() 491 AttributeError: 'LeftZeroSemigroup_with_category.element_class' object has no attribute 'blah_blah' 492 """ --> 493 return self.getattr_from_category(name) 494 495 cdef getattr_from_category(self, name): /ext/sage/sage-8.3_1804/local/lib/python2.7/site-packages/sage/structure/element.pyx in sage.structure.element.Element.getattr_from_category (build/cythonized/sage/structure/element.c:4627)() 504 else: 505 cls = P._abstract_element_class --> 506 return getattr_from_other_class(self, cls, name) 507 508 def __dir__(self): /ext/sage/sage-8.3_1804/local/lib/python2.7/site-packages/sage/cpython/getattr.pyx in sage.cpython.getattr.getattr_from_other_class (build/cythonized/sage/cpython/getattr.c:2468)() 387 dummy_error_message.cls = type(self) 388 dummy_error_message.name = name --> 389 raise AttributeError(dummy_error_message) 390 cdef PyObject* attr = instance_getattr(cls, name) 391 if attr is NULL: AttributeError: 'TensorFieldFreeModule_with_category.element_class' object has no attribute 'substitute_function'