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