Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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
Пример #6
0
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
Пример #7
0
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
Пример #8
0
            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()