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)
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)
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)
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)