def test_sYlm(self): # Test values froom kerrgeodesic_gw self.assertAlmostEqual(gwu.sYlm(0, -1, 0, 0, 1), 0) self.assertAlmostEqual(gwu.sYlm(0, 1, 2, 0, 1), 0) self.assertAlmostEqual( gwu.sYlm(-2, 2, 1, 1.0, 2.0), -0.170114676286891 + 0.371707349012686j, ) self.assertAlmostEqual( gwu.sYlm(-2, 2, 1, 1.5, 2.0), -0.140181365376761 + 0.306301871434652j, ) self.assertAlmostEqual( gwu.sYlm(-2, 2, -1, 1.5, 2.0), -0.121659476911011 - 0.265830806794102j, ) self.assertAlmostEqual( gwu.sYlm(-2, 2, -2, 1.5, 2.0), -0.0890098785065999 + 0.103057531674292j, ) self.assertAlmostEqual( gwu.sYlm(0, 2, 1, 1.5, 2.0), 0.0226845879069160 - 0.0495667288582717j, ) self.assertAlmostEqual( gwu.sYlm(0, 3, 1, 1.5, 2.0), -0.130797156679223 + 0.285797001345366j, )
def compute_strain(_1, mult_l, mult_m, _2): return gw_utils.sYlm(-2, mult_l, mult_m, theta, phi) * self.get_strain_lm( mult_l, mult_m, pcut, *args, window_function=window_function, trim_ends=trim_ends, **kwargs, )
def test_get_strain(self): # test l_max too big with self.assertRaises(ValueError): self.psi4.get_strain(0, 0, 1, l_max=100) theta, phi = np.pi / 2, 1 ym2 = gwu.sYlm(-2, 2, -2, theta, phi) ym1 = gwu.sYlm(-2, 2, -1, theta, phi) y0 = gwu.sYlm(-2, 2, 0, theta, phi) y1 = gwu.sYlm(-2, 2, 1, theta, phi) y2 = gwu.sYlm(-2, 2, 2, theta, phi) strain = (self.psi4.get_strain_lm(2, -2, 0.1).y * ym2 + self.psi4.get_strain_lm(2, -1, 0.1).y * ym1 + self.psi4.get_strain_lm(2, 0, 0.1).y * y0 + self.psi4.get_strain_lm(2, 1, 0.1).y * y1 + self.psi4.get_strain_lm(2, 2, 0.1).y * y2) self.assertTrue( np.allclose(strain, self.psi4.get_strain(theta, phi, 0.1).y))