Source code for einsteinpy.symbolic.predefined.janis_newman_winicour
from sympy import diag, sin, symbols
from einsteinpy.symbolic import constants
from einsteinpy.symbolic.metric import MetricTensor
[docs]
def JanisNewmanWinicour(
c=constants.c, G=constants.G, gam=symbols("gam"), M=symbols("M")
):
"""
Reality of the Schwarzschild singularity.
Phys. Rev. Lett., 20:878-880, 1968.
A. I. Janis, E. T. Newman, and J. Winicour.
Parameters
----------
M : ~sympy.core.basic.Basic or int or float
Mass parameter, this is used for defining the schwarzschild metric. Defaults to ``M``.
gam : ~sympy.core.basic.Basic or int or float
Parameter for scaling Schwarzschild radius, for gamma=1 this will return the Schwarzschild metric
Defaults to ``gam``.
"""
coords = symbols("t r theta phi")
t, r, th, ph = coords
# Helper functions
r_s = (2 * G * M) / (c**2)
alpha = 1 - (r_s / (gam * r))
# define the metric
metric = diag(
-1 * (alpha**gam),
(alpha**-gam) / (c**2),
(r**2) * (alpha ** (-gam + 1)),
(r**2) * (alpha ** (-gam + 1)) * (sin(th) ** 2),
).tolist()
return MetricTensor(metric, coords, "ll", name="JanisNewmanWinicourMetric")