def test_scalar_curvature_godel(): x0, x1, x2, x3 = sympy.symbols('x_0 x_1 x_2 x_3') basis = [x0, x1, x2, x3] e = sympy.exp(1) a = sympy.Symbol('a') matrix = (a**2) * sympy.Matrix([[1, 0, e**x1, 0], [0, -1, 0, 0], [e**x1, 0, (e**(2 * x1)) / 2, 0], [0, 0, 0, -1]]) metric = gr.get_tensor_from_matrix(matrix, basis) cs = gr.get_chrisoffel_symbols_from_metric(metric) R = gr.get_scalar_curvature(cs, metric) R = R[(), ()] assert R == 1.0 / a**2
def test_scalar_curvature_Schwarzschild(): t, r, theta, phi = sympy.symbols('t r \\theta \\phi') Rs = sympy.Symbol('R_s') basis = [t, r, theta, phi] values = { (0, 0): -(1 - Rs / r), (1, 1): 1 / (1 - Rs / r), (2, 2): r**2, (3, 3): r**2 * sympy.sin(theta)**2 } g = gr.Tensor(basis, (0, 2), values) cs = gr.get_chrisoffel_symbols_from_metric(g) R = gr.get_scalar_curvature(cs, g) assert R[(), ()] == 0
def test_christoffel_symbols1_godel(): x0, x1, x2, x3 = sympy.symbols('x_0 x_1 x_2 x_3') basis = [x0, x1, x2, x3] e = sympy.exp(1) matrix = sympy.Matrix([[1, 0, e**x1, 0], [0, -1, 0, 0], [e**x1, 0, (e**(2 * x1)) / 2, 0], [0, 0, 0, -1]]) metric = gr.get_tensor_from_matrix(matrix, basis) christoffel_symbols_1 = gr.get_chrisoffel_symbols_from_metric(metric) christoffel_symbols_2 = { ((0, ), (0, 1)): 1, ((0, ), (1, 2)): (e**x1) / 2, ((1, ), (0, 2)): (e**x1) / 2, ((1, ), (2, 2)): (e**(2 * x1)) / 2, ((2, ), (0, 1)): -e**(-x1), } christoffel_symbols_2 = gr._dict_completer(christoffel_symbols_2, 1, 2, 4) assert christoffel_symbols_1.get_all_values() == christoffel_symbols_2