Example #1
0
    def test5(self):
        interface = FDPSInterface()
        interface.initialize_code()
        
        interface.commit_parameters()
        interface.new_particle([10,20],[0,0],[0,0], [0,0], [0,0], [0,0], [0,0],[1,1])
        interface.commit_particles()
        retrieved_state = interface.get_state(0)
        
        self.assertEquals(10.0,  retrieved_state['mass'])
        self.assertEquals(1, retrieved_state['radius'])

        retrieved_state = interface.get_state([0,1])
        self.assertEquals(20.0,  retrieved_state['mass'][1])
        self.assertEquals(interface.get_number_of_particles()['number_of_particles'], 2)
        interface.cleanup_code()
        interface.stop()
Example #2
0
    def test1(self):
        instance = FDPSInterface()
        instance.initialize_code()
        instance.commit_parameters()
        res1 = instance.new_particle(mass = 11.0, radius = 2.0, x = 0.0, y = 0.0, z = 0.0, vx = 0.0, vy = 0.0, vz = 0.0)
        res2 = instance.new_particle(mass = 21.0, radius = 5.0, x = 10.0, y = 0.0, z = 0.0, vx = 10.0, vy = 0.0, vz = 0.0)
        
        instance.commit_particles()
        self.assertEquals(0, res1['index_of_the_particle'])
        self.assertEquals(1, res2['index_of_the_particle'])

        retrieved_state1 = instance.get_state(0)
        retrieved_state2 = instance.get_state(1)

        self.assertEquals(11.0,  retrieved_state1['mass'])
        self.assertEquals(21.0,  retrieved_state2['mass'])
        self.assertEquals(0.0,  retrieved_state1['x'])
        self.assertEquals(10.0,  retrieved_state2['x'])

        self.assertEquals(0, instance.get_index_of_first_particle()['index_of_the_particle'])
        self.assertEquals(1, instance.get_index_of_next_particle(0)['index_of_the_next_particle']) 
        
        instance.cleanup_code()
        instance.stop()
Example #3
0
    def test2(self):
        instance = FDPSInterface()
        instance.initialize_code()

        instance.commit_parameters()
        for i in [0, 1, 2]:
            temp_particle = instance.new_particle(mass = i, radius = 1.0, x = 0.0, y = 0.0, z = 0.0, vx = 0.0, vy = 0.0, vz = 0.0)
            self.assertEquals(i, temp_particle['index_of_the_particle'])
        
        instance.commit_particles()
        self.assertEquals(0, instance.get_index_of_first_particle()['index_of_the_particle'])
        self.assertEquals(1, instance.get_index_of_next_particle(0)['index_of_the_next_particle']) 
        self.assertEquals(2, instance.get_index_of_next_particle(1)['index_of_the_next_particle'])
            
        instance.delete_particle(0)
      
        self.assertEquals(2, instance.get_number_of_particles()['number_of_particles'])
        
        #the deletion moves all next particles one id down, so 2 is copied to 1, and 1 to 0
        self.assertEquals(1, instance.get_index_of_first_particle()['index_of_the_particle'])
        
        self.assertEquals(1, instance.get_index_of_next_particle(2)['__result'])

        instance.cleanup_code()
        instance.stop()
Example #4
0
 def test8(self):
     instance = FDPSInterface()
     instance.initialize_code()
     instance.set_epsilon_squared(0.1 * 0.1)
     instance.commit_parameters()
     id1,errorcode = instance.new_particle(mass = 10.0, radius = 1.0, x = 0.0, y = 0.0, z = 0.0, vx = 0.0, vy = 0.0, vz = 0.0)
     id2,errorcode = instance.new_particle(mass = 10.0, radius = 1.0, x = 2.0, y = 0.0, z = 0.0, vx = 10.0, vy = 0.0, vz = 0.0)
     
     instance.commit_particles()
     potential, errorcode = instance.get_potential(id1)
     self.assertEquals(errorcode, 0)
     self.assertAlmostRelativeEquals(potential,  -10.0 / numpy.sqrt(2.0**2 + 0.1**2), 8)
     instance.cleanup_code()
     instance.stop()