コード例 #1
0
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
コード例 #2
0
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
コード例 #3
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