def test1(self): numpy.random.seed(0) #print numpy.random.get_state() m = MakePlummerModel(2) m1, p, v = m.new_model() self.assertEquals(m1[0, 0], 0.5) self.assertEquals(m1[1, 0], 0.5) self.assertAlmostEqual(p[0, 0], -0.729636617171, 5) self.assertAlmostEqual(p[1, 0], -0.713272921751, 5) self.assertAlmostEqual(p[0, 1], 0.379570256435, 5) self.assertAlmostEqual(p[1, 1], -0.930290757081, 5)
def test1(self): numpy.random.seed(0) #print numpy.random.get_state() m = MakePlummerModel(2) m1, p, v = m.new_model() self.assertEquals(m1[0,0], 0.5) self.assertEquals(m1[1,0], 0.5) self.assertAlmostEqual(p[0,0], -0.729636617171, 5) self.assertAlmostEqual(p[1,0], -0.713272921751 , 5) self.assertAlmostEqual(p[0,1], 0.379570256435, 5) self.assertAlmostEqual(p[1,1], -0.930290757081, 5)
def plummer(x): plummer = MakePlummerModel(x) mass, pos, vel = plummer.new_model() mass = mass[0:, 0] x = pos[0:, 0] y = pos[0:, 1] z = pos[0:, 2] vx = vel[0:, 0] vy = vel[0:, 1] vz = vel[0:, 2] radius = mass * 0. return mass, radius, x, y, z, vx, vy, vz
def plummer(x): plummer = MakePlummerModel(x) mass,pos,vel=plummer.new_model() mass=mass[0:,0] x=pos[0:,0] y=pos[0:,1] z=pos[0:,2] vx=vel[0:,0] vy=vel[0:,1] vz=vel[0:,2] radius=mass*0. return mass,radius,x,y,z,vx,vy,vz
def plummer(x): plummer=MakePlummerModel(x) mass,pos,vel=plummer.new_model() mass=mass[0:,0] x=pos[0:,0] y=pos[0:,1] z=pos[0:,2] vx=vel[0:,0] vy=vel[0:,1] vz=vel[0:,2] radius=mass*0. tm=numpy.sum(mass) cmx=numpy.sum(mass*x)/tm cmy=numpy.sum(mass*y)/tm cmz=numpy.sum(mass*z)/tm return mass,radius,x,y,z,vx,vy,vz
def plummer(x, interface): plummer = MakePlummerModel(x) mass, pos, vel = plummer.new_model() mass = mass[0:, 0] x = pos[0:, 0] y = pos[0:, 1] z = pos[0:, 2] vx = vel[0:, 0] vy = vel[0:, 1] vz = vel[0:, 2] radius = mass * 0. nb = interface(redirection="none") #,debugger="gdb") nb.initialize_code() ids, error = nb.new_particle(mass, radius, x, y, z, vx, vy, vz) if filter(lambda x: x != 0, error) != []: raise Exception return nb, ids
r_a.append(ra) dens.append(da) i = i1 if not hasattr(r_a, "unit"): r_a = numpy.array(r_a) if not hasattr(dens, "unit"): dens = numpy.array(dens) return r_a, dens / volfac if __name__ == "__main__": from matplotlib import pyplot from amuse.ic.plummer import MakePlummerModel plum = MakePlummerModel(100000).result r = (plum.x**2 + plum.y**2 + plum.z**2)**0.5 ra, dens = radial_density(r, plum.mass, 100, start_at_zero=True) ascl = 1 / 1.695 ra = ra.number dens = dens.number pyplot.subplot(211) pyplot.loglog(ra, dens) pyplot.loglog( ra, 3. / 4. / numpy.pi / ascl**3 / (1 + (ra**2 / ascl**2))**(5. / 2)) # pyplot.plot(ra,(dens-3./4./numpy.pi/ascl**3/(1+(ra**2/ascl**2))**(5./2))/dens,'r.') pyplot.subplot(212) pyplot.plot(plum.x.number, plum.y.number, 'r.') pyplot.show()