def test4(self): print "Test binary_will_collide" collision = StellarEncounterInHydrodynamics(None, None, verbose=True) collision.dynamical_timescale = zero collision.start_kepler(7 | units.MSun, 10 | units.RSun) # at periastron, close enough: colliders = self.new_colliders() colliders.radius = 1 | units.RSun self.assertTrue( collision.binary_will_collide(colliders[0], colliders[1])) # at periastron, distance too large: colliders.radius = 0.4 | units.RSun self.assertFalse( collision.binary_will_collide(colliders[0], colliders[1])) # at apastron, will collide at periastron: colliders.velocity = [[0.0, 0.0, 0.0], [0.0, 1000.0, 0.0] ] | units.km / units.s self.assertTrue( collision.binary_will_collide(colliders[0], colliders[1])) # hyperbolic orbits, moving away from each other: colliders.position = [[0.0, 0.0, 0.0], [1.0, 100.0, 0.0]] | units.RSun self.assertFalse( collision.binary_will_collide(colliders[0], colliders[1])) # hyperbolic orbits, moving towards each other: colliders.velocity = [[0.0, 0.0, 0.0], [0.0, -1000.0, 0.0] ] | units.km / units.s self.assertTrue( collision.binary_will_collide(colliders[0], colliders[1])) collision.kepler.stop()
def test4(self): print "Test binary_will_collide" collision = StellarEncounterInHydrodynamics(None, None, verbose=True) collision.dynamical_timescale = zero collision.start_kepler(7 | units.MSun, 10 | units.RSun) # at periastron, close enough: colliders = self.new_colliders() colliders.radius = 1 | units.RSun self.assertTrue(collision.binary_will_collide(colliders[0], colliders[1])) # at periastron, distance too large: colliders.radius = 0.4 | units.RSun self.assertFalse(collision.binary_will_collide(colliders[0], colliders[1])) # at apastron, will collide at periastron: colliders.velocity = [[0.0, 0.0, 0.0], [0.0, 1000.0, 0.0]] | units.km / units.s self.assertTrue(collision.binary_will_collide(colliders[0], colliders[1])) # hyperbolic orbits, moving away from each other: colliders.position = [[0.0, 0.0, 0.0], [1.0, 100.0, 0.0]] | units.RSun self.assertFalse(collision.binary_will_collide(colliders[0], colliders[1])) # hyperbolic orbits, moving towards each other: colliders.velocity = [[0.0, 0.0, 0.0], [0.0, -1000.0, 0.0]] | units.km / units.s self.assertTrue(collision.binary_will_collide(colliders[0], colliders[1])) collision.kepler.stop()