Ejemplo n.º 1
0
 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()
Ejemplo n.º 2
0
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
Ejemplo n.º 3
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.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)
Ejemplo n.º 4
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)