def test_expression_4(self): function = Function('Tensor')(Symbol('T')) tensor = Tensor(function, 4) self.assertEqual( Parser._generate_covdrv(tensor, function, [('beta', 'D')]), r'\nabla_\beta T = \partial_\beta (T)') function = Function('Tensor')(Symbol('TUU'), Symbol('mu'), Symbol('nu')) tensor = Tensor(function, 4) self.assertEqual( Parser._generate_covdrv(tensor, function, [('beta', 'D')]), r'\nabla_\beta T^{\mu \nu} = \partial_\beta (T^{\mu \nu}) + \Gamma^\mu_{a \beta} (T^{a \nu}) + \Gamma^\nu_{a \beta} (T^{\mu a})' ) function = Function('Tensor')(Symbol('TUD'), Symbol('mu'), Symbol('nu')) tensor = Tensor(function, 4) self.assertEqual( Parser._generate_covdrv(tensor, function, [('beta', 'D')]), r'\nabla_\beta T^\mu_\nu = \partial_\beta (T^\mu_\nu) + \Gamma^\mu_{a \beta} (T^a_\nu) - \Gamma^a_{\nu \beta} (T^\mu_a)' ) function = Function('Tensor')(Symbol('TDD'), Symbol('mu'), Symbol('nu')) tensor = Tensor(function, 4) self.assertEqual( Parser._generate_covdrv(tensor, function, [('beta', 'D')]), r'\nabla_\beta T_{\mu \nu} = \partial_\beta (T_{\mu \nu}) - \Gamma^a_{\mu \beta} (T_{a \nu}) - \Gamma^a_{\nu \beta} (T_{\mu a})' )
def test_expression_5(self): tensor = Tensor(Function('Tensor')(Symbol('vU'), Symbol('mu')), 4) self.assertEqual( Parser._generate_covdrv(tensor, [('a', 'U'), ('b', 'D')], 'symbolic'), r'\nabla_a \nabla_b v^\mu = \partial_a (\partial_b (v^\mu) + \Gamma^\mu_{c b} (v^c)) + \Gamma^\mu_{c a} (\partial_b (v^c) + \Gamma^c_{d b} (v^d))' )
def test_expression_5(self): function = Function('Tensor')(Symbol('vU'), Symbol('mu')) tensor = Tensor(function, 4) self.assertEqual( Parser._generate_covdrv(tensor, function, [('a', 'D'), ('b', 'D')]), r'\nabla_a \nabla_b v^\mu = \partial_a (\partial_b (v^\mu) + \Gamma^\mu_{c b} (v^c)) + \Gamma^\mu_{c a} (\partial_b (v^c) + \Gamma^c_{d b} (v^d)) - \Gamma^c_{b a} (\partial_c (v^\mu) + \Gamma^\mu_{b c} (v^b))' )
def test_expression_5(self): Parser.clear_namespace() parse(r""" % vardef -numeric -metric 'gDD' (4D) % vardef -numeric 'vU' (4D) T^\mu_b = \nabla_b v^\mu """) tensor = Parser._namespace['vU_cdD'] function = Parser._namespace['vU_cdD'].equation[0] self.assertEqual( Parser._generate_covdrv(tensor, function, 'a'), r'\nabla_a \nabla_b v^\mu = \partial_a (\nabla_b v^\mu) + \text{Gamma}^\mu_{c a} (\nabla_b v^c) - \text{Gamma}^c_{b a} (\nabla_c v^\mu)' )