コード例 #1
0
    def test2(self):
        mass = 1.984e4 | units.MSun
        a = 0.0 | units.parsec
        b = 6.66 | units.parsec
        nm_profile = MiyamotoNagai_profile(mass, a, b)
        plummer_profile = Plummer_profile(mass, b)

        pot_nm = nm_profile.get_potential_at_point(0. | units.m, b * 0.1,
                                                   b * 5., b * 0.2)
        pot_p = plummer_profile.get_potential_at_point(0. | units.m, b * 0.1,
                                                       b * 5., b * 0.2)
        self.assertEqual(pot_nm, pot_p)

        ax_nm, ay_nm, az_nm = nm_profile.get_gravity_at_point(
            0. | units.m, b * 0.1, b * 5., b * 0.1)
        ax_p, ay_p, az_p = plummer_profile.get_gravity_at_point(
            0. | units.m, b * 0.1, b * 5., b * 0.1)
        print(ax_nm.in_(units.parsec / units.Myr**2),
              ax_p.in_(units.parsec / units.Myr**2))
        self.assertAlmostEqual(ax_nm.in_(units.parsec / units.Myr**2),
                               ax_p.in_(units.parsec / units.Myr**2), 12)
        self.assertAlmostEqual(ay_nm.in_(units.parsec / units.Myr**2),
                               ay_p.in_(units.parsec / units.Myr**2), 12)
        self.assertAlmostEqual(az_nm.in_(units.parsec / units.Myr**2),
                               az_p.in_(units.parsec / units.Myr**2), 12)

        rho_nm = nm_profile.mass_density(b * 0., b * 0., b * 6.6)
        rho_p = plummer_profile.mass_density(b * 6.6)
        self.assertEqual(rho_nm, rho_p)
コード例 #2
0
 def test2(self):
     mass = 1.984e4|units.MSun
     a = 0.0|units.parsec
     b = 6.66|units.parsec
     nm_profile = MiyamotoNagai_profile(mass,a,b)
     plummer_profile = Plummer_profile(mass,b)
     
     pot_nm = nm_profile.get_potential_at_point(0.|units.m,b*0.1,b*5.,b*0.2)
     pot_p = plummer_profile.get_potential_at_point(0.|units.m,b*0.1,b*5.,b*0.2)
     self.assertEqual(pot_nm,pot_p)
     
     ax_nm,ay_nm,az_nm = nm_profile.get_gravity_at_point(0.|units.m,b*0.1,b*5.,b*0.1)
     ax_p,ay_p,az_p = plummer_profile.get_gravity_at_point(0.|units.m,b*0.1,b*5.,b*0.1)
     print ax_nm.in_(units.parsec/units.Myr**2), ax_p.in_(units.parsec/units.Myr**2)
     self.assertAlmostEqual(ax_nm.in_(units.parsec/units.Myr**2),ax_p.in_(units.parsec/units.Myr**2), 12)
     self.assertAlmostEqual(ay_nm.in_(units.parsec/units.Myr**2),ay_p.in_(units.parsec/units.Myr**2), 12)
     self.assertAlmostEqual(az_nm.in_(units.parsec/units.Myr**2),az_p.in_(units.parsec/units.Myr**2), 12)
     
     rho_nm = nm_profile.mass_density(b*0.,b*0.,b*6.6)
     rho_p = plummer_profile.mass_density(b*6.6)
     self.assertEqual(rho_nm,rho_p)
コード例 #3
0
    def test1(self):
        mass = 6.6e10 | units.MSun
        a = 3.33 | units.kpc
        b = 0.666 | units.kpc
        profile = MiyamotoNagai_profile(mass, a, b)

        r_force = profile.force_R(0.1 * a, 0.2 * b,
                                  1.2 * a).in_(units.parsec / units.Myr**2)
        z_force = profile.force_z(0.1 * a, 0.2 * b,
                                  1.2 * a).in_(units.parsec / units.Myr**2)
        potential = profile.get_potential_at_point(
            0. | units.m, a * 0.1, a * 5.,
            b * 0.5).in_(units.kpc**2 / units.Myr**2)
        ax, ay, az = profile.get_gravity_at_point(0. | units.m, a * 0.1,
                                                  a * 5., b * 0.5)
        density = profile.mass_density(0.1 * a, -0.5 * b,
                                       1.2 * a).in_(units.MSun / units.kpc**3)
        vc = profile.circular_velocity_at_z0(1.0 * a).in_(units.kms)
        m_r = profile.equivalent_enclosed_mass_in_plane(100. * a).in_(
            units.MSun)

        self.assertAlmostEqual(r_force,
                               -0.263920797645 | units.parsec / units.Myr**2,
                               12)
        self.assertAlmostEqual(z_force,
                               -5.35763387945 | units.parsec / units.Myr**2,
                               11)
        self.assertAlmostEqual(potential,
                               -0.017321166943 | units.kpc**2 / units.Myr**2,
                               12)
        self.assertAlmostEqual(ax,
                               -0.0196231550925 | units.parsec / units.Myr**2,
                               12)
        self.assertAlmostEqual(ay,
                               -0.981157754625 | units.parsec / units.Myr**2,
                               12)
        self.assertAlmostEqual(az,
                               -0.107380572532 | units.parsec / units.Myr**2,
                               12)
        self.assertAlmostEqual(density,
                               1336672.32264 | units.MSun / units.kpc**3, 5)
        self.assertAlmostEqual(vc, 149.569512197 | units.kms, 9)
        self.assertAlmostEqual(m_r, 65.9857465656 | 1.e9 * units.MSun, 9)
コード例 #4
0
 def test1(self):
     mass = 6.6e10|units.MSun
     a = 3.33|units.kpc
     b = 0.666|units.kpc
     profile = MiyamotoNagai_profile(mass,a,b)
     
     r_force = profile.force_R(0.1*a,0.2*b,1.2*a).in_(units.parsec/units.Myr**2)
     z_force = profile.force_z(0.1*a,0.2*b,1.2*a).in_(units.parsec/units.Myr**2)
     potential = profile.get_potential_at_point(0.|units.m,a*0.1,a*5.,b*0.5).in_(units.kpc**2/units.Myr**2)
     ax,ay,az = profile.get_gravity_at_point(0.|units.m,a*0.1,a*5.,b*0.5)
     density = profile.mass_density(0.1*a,-0.5*b,1.2*a).in_(units.MSun/units.kpc**3)
     vc = profile.circular_velocity_at_z0(1.0*a).in_(units.kms)
     m_r = profile.equivalent_enclosed_mass_in_plane(100.*a).in_(units.MSun)
     
     self.assertAlmostEqual(r_force, -0.263920797645|units.parsec/units.Myr**2, 12)
     self.assertAlmostEqual(z_force, -5.35763387945 |units.parsec/units.Myr**2, 11)
     self.assertAlmostEqual(potential, -0.017321166943|units.kpc**2/units.Myr**2, 12)
     self.assertAlmostEqual(ax, -0.0196231550925|units.parsec/units.Myr**2, 12)
     self.assertAlmostEqual(ay, -0.981157754625|units.parsec/units.Myr**2, 12)
     self.assertAlmostEqual(az, -0.107380572532 |units.parsec/units.Myr**2, 12)
     self.assertAlmostEqual(density, 1336672.32264|units.MSun/units.kpc**3, 5)
     self.assertAlmostEqual(vc, 149.569512197|units.kms, 9)
     self.assertAlmostEqual(m_r, 65.9857465656|1.e9*units.MSun, 9)