Example #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)
Example #2
0
 def test1(self):
     mass = 6.e6|units.MSun
     a = 6.|units.parsec
     plummer_profile = Plummer_profile(mass,a)
     rho0 = mass/(4./3.*numpy.pi*a**3)
     phi0 = -constants.G*mass/a
     
     # enclosed mass at R>>a is total mass
     m_tot = plummer_profile.enclosed_mass(a*1.e5)
     self.assertAlmostEqual(m_tot/mass, 1.0, 5)
     
     # mass density at the center
     rho_cen = plummer_profile.mass_density(0.|units.m)
     self.assertAlmostEqual(rho_cen/rho0, 1.0, 5)
     
     # potential at r=a is phi0/sqrt(2)
     phi_at_a = plummer_profile.get_potential_at_point(0.|units.m,0.|units.m,0.|units.m,a)
     self.assertAlmostEqual(phi_at_a/phi0*numpy.sqrt(2.), 1.0, 5)
Example #3
0
    def test1(self):
        mass = 6.e6 | units.MSun
        a = 6. | units.parsec
        plummer_profile = Plummer_profile(mass, a)
        rho0 = mass / (4. / 3. * numpy.pi * a**3)
        phi0 = -constants.G * mass / a

        # enclosed mass at R>>a is total mass
        m_tot = plummer_profile.enclosed_mass(a * 1.e5)
        self.assertAlmostEqual(m_tot / mass, 1.0, 5)

        # mass density at the center
        rho_cen = plummer_profile.mass_density(0. | units.m)
        self.assertAlmostEqual(rho_cen / rho0, 1.0, 5)

        # potential at r=a is phi0/sqrt(2)
        phi_at_a = plummer_profile.get_potential_at_point(
            0. | units.m, 0. | units.m, 0. | units.m, a)
        self.assertAlmostEqual(phi_at_a / phi0 * numpy.sqrt(2.), 1.0, 5)
Example #4
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)