Example #1
0
 def test6(self):
     print("Test handle_collision")
     position_offset = [100.0, 200.0, 300.0] | units.RSun
     velocity_offset = [10000.0, 20000.0, 30000.0] | units.km / units.s
     colliders = self.new_colliders()
     colliders.position *= 1.5 # Grazing collision
     colliders.position += position_offset
     colliders.velocity += velocity_offset
     
     class GravityCodeStub(object):
         def __init__(self, particles):
             self.particles = particles
     gravity = GravityCodeStub(colliders)
     
     stellar = EVtwin()
     stellar.particles.add_particles(colliders)
     
     collision = StellarEncounterInHydrodynamics(280,  # For speed
         Gadget2,
         relax_sph_models=False,  # For speed
         verbose=True)
     collision.extra_steps_when_encounter_is_over = 0 # For speed, no extra steps...
     collision.dynamical_timescales_per_step = 1.3 # ... but then we need to evolve a bit longer in the first step
     result = collision.handle_collision(colliders[0], colliders[1], gravity_code=gravity, stellar_evolution_code=stellar)
     stellar.stop()
     print(result)
     self.assertTrue(isinstance(result, Particles))
     self.assertEqual(len(result), 2)
     self.assertAlmostEqual(result.mass, [5.0, 2.0] | units.MSun, 1)
     self.assertAlmostRelativeEqual(result.center_of_mass(), position_offset, 2)
     self.assertAlmostRelativeEqual(result.center_of_mass_velocity(), velocity_offset, 2)
Example #2
0
 def test6(self):
     print "Test handle_collision"
     position_offset = [100.0, 200.0, 300.0] | units.RSun
     velocity_offset = [10000.0, 20000.0, 30000.0] | units.km / units.s
     colliders = self.new_colliders()
     colliders.position *= 1.5 # Grazing collision
     colliders.position += position_offset
     colliders.velocity += velocity_offset
     
     class GravityCodeStub(object):
         def __init__(self, particles):
             self.particles = particles
     gravity = GravityCodeStub(colliders)
     
     stellar = EVtwin()
     stellar.particles.add_particles(colliders)
     
     collision = StellarEncounterInHydrodynamics(280,  # For speed
         Gadget2,
         relax_sph_models=False,  # For speed
         verbose=True)
     collision.extra_steps_when_encounter_is_over = 0 # For speed, no extra steps...
     collision.dynamical_timescales_per_step = 1.3 # ... but then we need to evolve a bit longer in the first step
     result = collision.handle_collision(colliders[0], colliders[1], gravity_code=gravity, stellar_evolution_code=stellar)
     stellar.stop()
     print result
     self.assertTrue(isinstance(result, Particles))
     self.assertEqual(len(result), 2)
     self.assertAlmostEqual(result.mass, [5.0, 2.0] | units.MSun, 1)
     self.assertAlmostRelativeEqual(result.center_of_mass(), position_offset, 2)
     self.assertAlmostRelativeEqual(result.center_of_mass_velocity(), velocity_offset, 2)