from sympy.diffgeom import * TP = TensorProduct m = Manifold('Schwarzschild', 4) p = Patch('origin', m) cs = CoordSystem('spherical', p, ['t', 'r', 'theta', 'phi']) m, p, cs t, r, theta, phi = cs.coord_functions() t, r, theta, phi dt, dr, dtheta, dphi = cs.base_oneforms() dt, dr, dtheta, dphi metric = exp(2*f(r))*TP(dt, dt) - exp(2*g(r))*TP(dr, dr) - r**2*TP(dtheta, dtheta) - r**2*sin(theta)**2*TP(dphi, dphi) metric twoform_to_matrix(metric) ricci = metric_to_Ricci_components(metric) ricci = [[simplify(ricci[i][j]) for j in range(4)] for i in range(4)] ricci[0][0] ricci[1][1] ricci[2][2] ricci[3][3] all(ricci[i][j]==0 for i in range(4) for j in range(4) if i!=j) ch_2nd = metric_to_Christoffel_2nd(metric) filt = [((i,j,k), simplify(ch_2nd[i][j][k])) for i in range(4) for j in range(4) for k in range(j,4) if ch_2nd[i][j][k]!=0] filt[0:3] filt[3:6] filt[6:9] all([ch_2nd[k][i][j] == ch_2nd[k][j][i] for k in range(4) for i in range(4) for j in range(4)])