Example #1
0
 def test_example_6(self):
     Parser.continue_parsing(True)
     parse(r"""
         % define basis [t, r, \theta, \phi];
         \begin{align}
             R^\alpha{}_{\beta\mu\nu} &= \partial_\mu \Gamma^\alpha_{\beta\nu} - \partial_\nu \Gamma^\alpha_{\beta\mu} + \Gamma^\alpha_{\mu\gamma}\Gamma^\gamma_{\beta\nu} - \Gamma^\alpha_{\nu\sigma}\Gamma^\sigma_{\beta\mu} \\
             R^{\alpha\beta\mu\nu} &= g^{\beta a} g^{\mu b} g^{\nu c} R^\alpha_{a b c} \\
             R_{\alpha\beta\mu\nu} &= g_{\alpha a} R^a_{\beta\mu\nu} \\
             K &= R^{\alpha\beta\mu\nu} R_{\alpha\beta\mu\nu} \\
             R_{\beta\nu} &= R^\alpha_{\beta\alpha\nu} \\
             R &= g^{\beta\nu} R_{\beta\nu} \\
             G_{\beta\nu} &= R_{\beta\nu} - \frac{1}{2}g_{\beta\nu}R
         \end{align}
     """)
     self.assertEqual(0, simplify(GammaUDD[0][0][1] - GammaUDD[0][1][0]))
     self.assertEqual(str(GammaUDD[0][0][1]), '-G*M/(r**2*(2*G*M/r - 1))')
     self.assertEqual(str(GammaUDD[1][0][0]), 'G*M*(-2*G*M/r + 1)/r**2')
     self.assertEqual(str(GammaUDD[1][1][1]), '-G*M/(r**2*(-2*G*M/r + 1))')
     self.assertEqual(str(GammaUDD[1][3][3]),
                      '-r*(-2*G*M/r + 1)*sin(theta)**2')
     self.assertEqual(0, simplify(GammaUDD[2][1][2] - GammaUDD[2][2][1]))
     self.assertEqual(str(GammaUDD[2][1][2]), '1/r')
     self.assertEqual(str(GammaUDD[2][3][3]), '-sin(theta)*cos(theta)')
     self.assertEqual(0, simplify(GammaUDD[2][1][3] - GammaUDD[2][3][1]))
     self.assertEqual(str(GammaUDD[3][1][3]), '1/r')
     self.assertEqual(0, simplify(GammaUDD[3][2][3] - GammaUDD[3][3][2]))
     self.assertEqual(str(GammaUDD[3][2][3]), 'cos(theta)/sin(theta)')
     self.assertEqual(str(simplify(K)), '48*G**2*M**2/r**6')
     self.assertEqual(simplify(R), 0)
     self.assertEqual(
         True,
         all(component == 0
             for component in (row for row in simplify(Matrix(GDD)))))
Example #2
0
 def setUp(self):
     self.maxDiff = None
     Parser.continue_parsing(False)
     Parser.ignore_override()