def test2(self): random.seed(1001) hop = HopInterface() hop.initialize_code() particles = new_plummer_model(1000) ids, errors = hop.new_particle( particles.mass.value_in(nbody_system.mass), particles.x.value_in(nbody_system.length), particles.y.value_in(nbody_system.length), particles.z.value_in(nbody_system.length)) n, err = hop.get_number_of_particles() self.assertEquals(n, 1000) self.assertEquals(err, 0) #distance_to_center = (particles.position - particles.center_of_mass()).lengths() #print distance_to_center ds = {0: 0.482308834791, 1: 0.4885137677192688, 2: 0.27442726492881775} for method in [0, 1, 2]: hop.set_nDens(7) hop.set_density_method(method) hop.calculate_densities() d, err = hop.get_density(0) self.assertAlmostRelativeEquals(d, ds[method], 5) hop.stop()
def test2(self): random.seed(1001) hop = HopInterface() hop.initialize_code() particles = new_plummer_model(1000) ids, errors = hop.new_particle( particles.mass.value_in(nbody_system.mass), particles.x.value_in(nbody_system.length), particles.y.value_in(nbody_system.length), particles.z.value_in(nbody_system.length) ) n, err = hop.get_number_of_particles() self.assertEquals(n, 1000) self.assertEquals(err, 0) #distance_to_center = (particles.position - particles.center_of_mass()).lengths() #print distance_to_center ds = {0: 0.482308834791, 1:0.4885137677192688, 2:0.27442726492881775} for method in [0,1,2]: hop.set_nDens(7) hop.set_density_method(method) hop.calculate_densities() d, err = hop.get_density(0) self.assertAlmostRelativeEquals(d,ds[method], 5) hop.stop()
def coreradius(mass,x,y,z): hop=Hop() ids,err=hop.new_particle(mass,x,y,z) hop.set_density_method(2) hop.set_nDens(7) hop.calculate_densities() dens,err=hop.get_density(ids) tdens=numpy.sum(dens) x_core=numpy.sum(dens*x)/tdens y_core=numpy.sum(dens*y)/tdens z_core=numpy.sum(dens*z)/tdens rc=numpy.sqrt( numpy.sum(dens**2*((x-x_core)**2+(y-y_core)**2+(z-z_core)**2))/numpy.sum(dens**2)) return x_core,y_core,z_core,rc
def coreradius(mass,x,y,z): hop=Hop() ids,err=hop.new_particle(mass,x,y,z) hop.set_density_method(2) hop.set_nDens(7) hop.calculate_densities() dens,err=hop.get_density(ids) tdens=numpy.sum(dens) x_core=numpy.sum(dens*x)/tdens y_core=numpy.sum(dens*y)/tdens z_core=numpy.sum(dens*z)/tdens rc=numpy.sqrt( numpy.sum(dens**2*((x-x_core)**2+(y-y_core)**2+(z-z_core)**2))/numpy.sum(dens**2)) return x_core,y_core,z_core,rc