def test_radius_from_time(self): self.skip_no_scipy() func = stellar_wind.RSquaredAcceleration() star = Particle() star.radius = 312. | units.RSun star.acc_cutoff = 312 * 5. | units.RSun star.initial_wind_velocity = 2 | units.kms star.terminal_wind_velocity = 20 | units.kms times = [0., 25., 100.] | units.yr print "times", times radii = func.radius_from_time(times, star) print "radii", radii self.assertAlmostEquals(radii[0], 312. | units.RSun) self.assertAlmostEquals(radii[1], 22644.6086263 | units.RSun) self.assertAlmostEquals(radii[2], 90704.1183516 | units.RSun) return times = numpy.linspace(0., 1, 100) | units.yr radii = func.radius_from_time(times, star) print radii from matplotlib import pyplot from amuse import plot as aplot aplot.plot(times, radii / star.radius) pyplot.show()
def test_radius_from_number(self): self.skip_no_scipy() star = Particle(initial_wind_velocity=200. | units.kms, mass=20. | units.MSun, radius=10. | units.RSun, terminal_wind_velocity=1000. | units.kms) star.acc_cutoff = 5. * star.radius r_max = 24.2642526438 | units.RSun x = 0.1 func = stellar_wind.RSquaredAcceleration() radius = func.radius_from_number(x, r_max, star) self.assertAlmostEquals(radius, 10.6029030808 | units.RSun)
def test_r_squared_velocity(self): self.skip_no_scipy() func = stellar_wind.RSquaredAcceleration() self.r_squared_asserts(func)