Beispiel #1
0
    def xtest8(self):
        instance = SmallNInterface()
        instance.initialize_code()
        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=1.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.assertEqual(errorcode, 0)
        self.assertAlmostRelativeEquals(potential, -1.0 / numpy.sqrt(2.0**2),
                                        8)
        total_potential, errorcode = instance.get_potential_energy()
        potentials, errorcode = instance.get_potential([id1, id2])
        instance.cleanup_code()
        instance.stop()

        self.assertAlmostRelativeEquals(
            total_potential,
            numpy.sum(potentials * [10.0, 1.0]) / 2.0)
Beispiel #2
0
 def test9(self):
     print "Test SmallNInterface evolve_model"
     instance = SmallNInterface()
     self.assertEquals(0, instance.initialize_code())
     self.assertEquals(0, instance.set_eta(0.001))
     self.assertEquals(0, instance.commit_parameters())
     
     # Set up an equal-mass binary on a circular orbit:
     self.assertEquals([1, 0], instance.new_particle(0.5,  0.5, 0, 0,  0, 0.5, 0, 0.01).values())
     self.assertEquals([2, 0], instance.new_particle(0.5,  -0.5, 0, 0,  0,-0.5, 0, 0.01).values())
     self.assertEquals(0, instance.commit_particles())
     
     self.assertEquals(0, instance.evolve_model(math.pi))
     for result, expected in zip(instance.get_position(1).values(), [-0.5, 0.0, 0.0, 0]):
         self.assertAlmostEquals(result, expected, 3)
     for result, expected in zip(instance.get_position(2).values(), [0.5, 0.0, 0.0, 0]):
         self.assertAlmostEquals(result, expected, 3)
     
     self.assertEquals(0, instance.evolve_model(2 * math.pi))
     #print instance.get_time()
     #print instance.get_position(1), instance.get_velocity(1)
     #print instance.get_position(2)
     #for result, expected in zip(instance.get_position(1).values(), [0.5, 0.0, 0.0, 0]):
     #    self.assertAlmostEquals(result, expected, 3)
     #for result, expected in zip(instance.get_position(2).values(), [-0.5, 0.0, 0.0, 0]):
     #    self.assertAlmostEquals(result, expected, 3)
     
     self.assertEquals(0, instance.cleanup_code())
     instance.stop()
Beispiel #3
0
 def xtest8(self):
     instance = SmallNInterface()
     instance.initialize_code()
     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 = 1.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,  -1.0 / numpy.sqrt(2.0**2), 8)
     total_potential, errorcode = instance.get_potential_energy()
     potentials, errorcode = instance.get_potential([id1, id2])
     instance.stop()
     
     self.assertAlmostRelativeEquals(total_potential, numpy.sum(potentials * [10.0, 1.0]) / 2.0)
Beispiel #4
0
    def test9(self):
        print "Test SmallNInterface evolve_model"
        instance = SmallNInterface()
        self.assertEquals(0, instance.initialize_code())
        self.assertEquals(0, instance.set_eta(0.001))
        self.assertEquals(0, instance.commit_parameters())

        # Set up an equal-mass binary on a circular orbit:
        self.assertEquals([1, 0],
                          instance.new_particle(0.5, 0.5, 0, 0, 0, 0.5, 0,
                                                0.01).values())
        self.assertEquals([2, 0],
                          instance.new_particle(0.5, -0.5, 0, 0, 0, -0.5, 0,
                                                0.01).values())
        self.assertEquals(0, instance.commit_particles())

        self.assertEquals(0, instance.evolve_model(math.pi))
        for result, expected in zip(
                instance.get_position(1).values(), [-0.5, 0.0, 0.0, 0]):
            self.assertAlmostEquals(result, expected, 3)
        for result, expected in zip(
                instance.get_position(2).values(), [0.5, 0.0, 0.0, 0]):
            self.assertAlmostEquals(result, expected, 3)

        self.assertEquals(0, instance.evolve_model(2 * math.pi))
        #print instance.get_time()
        #print instance.get_position(1), instance.get_velocity(1)
        #print instance.get_position(2)
        #for result, expected in zip(instance.get_position(1).values(), [0.5, 0.0, 0.0, 0]):
        #    self.assertAlmostEquals(result, expected, 3)
        #for result, expected in zip(instance.get_position(2).values(), [-0.5, 0.0, 0.0, 0]):
        #    self.assertAlmostEquals(result, expected, 3)

        self.assertEquals(0, instance.cleanup_code())
        instance.stop()