Ejemplo n.º 1
0
    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,
        )
Ejemplo n.º 2
0
 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,
                          )
Ejemplo n.º 3
0
    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))