def test16(self): particles = datamodel.Particles(3) particles.mass = [0.1, 0.1, 0.0001] | nbody_system.mass particles.radius = [0.3, 0.3, 0.1] | nbody_system.length particles.x = [-0.5, 0.5, 10] | nbody_system.length particles.y = 0 | nbody_system.length particles.z = 0 | nbody_system.length particles.velocity = [0, 0, 0] | nbody_system.speed particles[-1].vy = 10 | nbody_system.speed instance = Mikkola() instance.initialize_code() instance.parameters.set_defaults() instance.parameters.lightspeed = 0 | nbody_system.speed instance.particles.add_particles(particles) collisions = instance.stopping_conditions.collision_detection collisions.enable() instance.evolve_model(10.0 | nbody_system.time) print(instance.particles.position) self.assertTrue(collisions.is_set()) print(instance.model_time) print(len(collisions.particles(0))) self.assertTrue(instance.model_time < 2 | nbody_system.time) print(collisions.particles(0).key) print(collisions.particles(1).key) self.assertEqual(len(collisions.particles(0)), 1) self.assertEqual(len(collisions.particles(1)), 1) instance.stop()
def get_mikkola(converter): instance = Mikkola(converter) instance.initialize_code() instance.parameters.set_defaults() instance.parameters.lightspeed = constants.c #instance.parameters.timestep = 0.01 | nbody_system.time #print >> sys.stderr, 'c/v=', instance.parameters.lightspeed return instance
def test4(self): convert_nbody=nbody_system.nbody_to_si(1.0|units.MSun, 1.0|units.yr/(2.0*pi)) instance = Mikkola(convert_nbody) stars = self.new_system_of_Hulse_Taylor_pulsar() instance.particles.add_particles(stars) instance.commit_particles() self.assertEquals(len(instance.particles), 2) instance.cleanup_code() self.assertEquals(len(instance.particles), 0) instance.initialize_code() instance.particles.add_particles(stars) self.assertEquals(len(instance.particles), 2) instance.commit_particles() self.assertEquals(len(instance.particles), 2) instance.cleanup_code() self.assertEquals(len(instance.particles), 0)
def test4(self): convert_nbody = nbody_system.nbody_to_si(1.0 | units.MSun, 1.0 | units.yr / (2.0 * pi)) instance = Mikkola(convert_nbody) stars = self.new_system_of_Hulse_Taylor_pulsar() instance.particles.add_particles(stars) instance.commit_particles() self.assertEqual(len(instance.particles), 2) instance.cleanup_code() self.assertEqual(len(instance.particles), 0) instance.initialize_code() instance.particles.add_particles(stars) self.assertEqual(len(instance.particles), 2) instance.commit_particles() self.assertEqual(len(instance.particles), 2) instance.cleanup_code() self.assertEqual(len(instance.particles), 0)