def test3(self): print("Test 3: evolve") instance = SimpleX(**default_options) instance.initialize_code() instance.commit_parameters() input_file = os.path.join(os.path.dirname(__file__), "test_simplex_data.txt") particles = particles_from_input_file(input_file) particles.du_dt = particles.u / (10 | units.Myr) instance.particles.add_particles(particles) # instance.particles.du_dt=particles.du_dt # instance.commit_particles() instance.particles.du_dt = particles.du_dt self.assertAlmostEqual(instance.particles.xion.mean(), 0.0) self.assertAlmostEqual( instance.particles.du_dt.mean().in_(units.cm**2 / units.s**3), particles.du_dt.mean().in_(units.cm**2 / units.s**3)) instance.evolve_model(0.5 | units.Myr) self.assertAlmostEqual( instance.particles.du_dt.mean().in_(units.cm**2 / units.s**3), particles.du_dt.mean().in_(units.cm**2 / units.s**3)) self.assertAlmostEqual(instance.particles.xion.mean(), 0.000845247683257) instance.cleanup_code() instance.stop()
def test12(self): N = 1000 Lstar = 100 | units.LSun boxsize = 10 | units.parsec rho = 1.0 | (units.amu / units.cm**3) t_end = 0.01 | units.Myr internal_energy = (9. | units.kms)**2 source = Particle() source.position = (0, 0, 0) | units.parsec source.flux = Lstar / (20. | units.eV) source.rho = rho source.xion = 0.0 source.u = internal_energy ism = ism_cube(N, boxsize / 2., rho, internal_energy).result ism.rho = rho ism.flux = 0. | units.s**-1 ism.xion = source.xion radiative = SimpleX() radiative.parameters.box_size = 1.001 * boxsize radiative.parameters.timestep = 0.001 | units.Myr radiative.particles.add_particle(source) radiative.particles.add_particles(ism) radiative.evolve_model(t_end) self.assertAlmostRelativeEquals(0.0750819123073, radiative.particles.xion.mean(), 1) radiative.stop()
def test12(self): N = 1000 Lstar=100|units.LSun boxsize=10|units.parsec rho=1.0 | (units.amu/units.cm**3) t_end=0.01 |units.Myr internal_energy = (9. |units.kms)**2 source=Particle() source.position = (0, 0, 0) |units.parsec source.flux = Lstar/(20. | units.eV) source.rho = rho source.xion = 0.0 source.u = internal_energy ism = ism_cube(N, boxsize/2., rho, internal_energy).result ism.rho = rho ism.flux = 0. | units.s**-1 ism.xion = source.xion radiative = SimpleX() radiative.parameters.box_size=1.001*boxsize radiative.parameters.timestep=0.001 | units.Myr radiative.particles.add_particle(source) radiative.particles.add_particles(ism) radiative.evolve_model(t_end) self.assertAlmostRelativeEquals( 0.0750819123073, radiative.particles.xion.mean(), 1) radiative.stop()
def test1(self): print("Test 1: initialization") instance = SimpleX(**default_options) instance.initialize_code() instance.commit_parameters() instance.cleanup_code() instance.stop()
def test1(self): print "Test 1: initialization" instance = SimpleX(**default_options) instance.initialize_code() instance.commit_parameters() instance.cleanup_code() instance.stop()
def test8(self): print "Test 8: two step evolve" instance = SimpleX(**default_options) input_file = os.path.join(os.path.dirname(__file__), "test_simplex_data.txt") particles = particles_from_input_file(input_file) instance.particles.add_particles(particles) self.assertAlmostEqual(instance.particles.xion.mean(), 0.0) instance.evolve_model(0.25 | units.Myr) instance.evolve_model(0.5 | units.Myr) self.assertEqual( instance.particles.flux.max().value_in(1.e48* units.s**-1), 5) self.assertAlmostRelativeEqual(instance.particles.xion.mean(),0.00084660917243,3) instance.cleanup_code() instance.stop()
def test8(self): print "Test 8: two step evolve" instance = SimpleX(**default_options) input_file = os.path.join(os.path.dirname(__file__), "test_simplex_data.txt") particles = particles_from_input_file(input_file) instance.particles.add_particles(particles) self.assertAlmostEqual(instance.particles.xion.mean(), 0.0) instance.evolve_model(0.25 | units.Myr) instance.evolve_model(0.5 | units.Myr) self.assertEqual( instance.particles.flux.max().value_in(1.e48* units.s**-1), 5) self.assertAlmostRelativeEqual(instance.particles.xion.mean(),0.00084660917243,3) instance.cleanup_code() instance.stop()
def test2(self): print "Test 2: commit_particles, getters and setters" instance = SimpleX(**default_options) instance.initialize_code() instance.commit_parameters() input_file = os.path.join(os.path.dirname(__file__), "test_simplex_data.txt") particles = particles_from_input_file(input_file) instance.particles.add_particles(particles) instance.commit_particles() # for attribute in ['position', 'rho', 'flux', 'xion']: # self.assertAlmostEqual(13200.*getattr(particles, attribute), # 13200.*getattr(instance.particles, attribute), 5) # setattr(instance.particles, attribute, getattr(particles, attribute)/2.0) # self.assertAlmostEqual(13200.*getattr(particles, attribute)/2.0, # 13200.*getattr(instance.particles, attribute), 5) instance.cleanup_code() instance.stop()
def test2(self): print "Test 2: commit_particles, getters and setters" instance = SimpleX(**default_options) instance.initialize_code() instance.commit_parameters() input_file = os.path.join(os.path.dirname(__file__), "test_simplex_data.txt") particles = particles_from_input_file(input_file) instance.particles.add_particles(particles) instance.commit_particles() # for attribute in ['position', 'rho', 'flux', 'xion']: # self.assertAlmostEqual(13200.*getattr(particles, attribute), # 13200.*getattr(instance.particles, attribute), 5) # setattr(instance.particles, attribute, getattr(particles, attribute)/2.0) # self.assertAlmostEqual(13200.*getattr(particles, attribute)/2.0, # 13200.*getattr(instance.particles, attribute), 5) instance.cleanup_code() instance.stop()
def test7(self): print "Test 7: two step evolve" instance = SimpleX(**default_options) instance.parameters.recombination_radiation_flag=1 input_file = os.path.join(os.path.dirname(__file__), "test_simplex_data.txt") particles = particles_from_input_file(input_file) instance.particles.add_particles(particles) self.assertAlmostEqual(instance.particles.xion.mean(), 0.0) instance.evolve_model(0.25 | units.Myr) flux_before=instance.particles.flux.sum() instance.particles.flux=particles.flux flux_after=instance.particles.flux.sum() self.assertEqual(flux_before,flux_after) instance.evolve_model(0.5 | units.Myr) self.assertAlmostRelativeEqual(instance.particles.xion.mean(),0.00084660917243,3) self.assertEqual( instance.particles.flux.max().value_in(1.e48* units.s**-1), 5) instance.cleanup_code() instance.stop()
def test7(self): print "Test 7: two step evolve" instance = SimpleX(**default_options) instance.parameters.recombination_radiation_flag=1 input_file = os.path.join(os.path.dirname(__file__), "test_simplex_data.txt") particles = particles_from_input_file(input_file) instance.particles.add_particles(particles) self.assertAlmostEqual(instance.particles.xion.mean(), 0.0) instance.evolve_model(0.25 | units.Myr) flux_before=instance.particles.flux.sum() instance.particles.flux=particles.flux flux_after=instance.particles.flux.sum() self.assertEqual(flux_before,flux_after) instance.evolve_model(0.5 | units.Myr) self.assertAlmostRelativeEqual(instance.particles.xion.mean(),0.00084660917243,3) self.assertEqual( instance.particles.flux.max().value_in(1.e48* units.s**-1), 5) instance.cleanup_code() instance.stop()
def test3(self): print "Test 3: evolve" instance = SimpleX(**default_options) instance.initialize_code() instance.commit_parameters() input_file = os.path.join(os.path.dirname(__file__), "test_simplex_data.txt") particles = particles_from_input_file(input_file) particles.du_dt = particles.u/(10|units.Myr) instance.particles.add_particles(particles) # instance.particles.du_dt=particles.du_dt # instance.commit_particles() instance.particles.du_dt=particles.du_dt self.assertAlmostEqual(instance.particles.xion.mean(), 0.0) self.assertAlmostEqual(instance.particles.du_dt.mean().in_(units.cm**2/units.s**3),particles.du_dt.mean().in_(units.cm**2/units.s**3)) instance.evolve_model(0.5 | units.Myr) self.assertAlmostEqual(instance.particles.du_dt.mean().in_(units.cm**2/units.s**3),particles.du_dt.mean().in_(units.cm**2/units.s**3)) self.assertAlmostEqual(instance.particles.xion.mean(), 0.000845247683257) instance.cleanup_code() instance.stop()
gas_particles.xion = 0. radiative = SimpleX(redirection='none', number_of_workers=8) radiative.parameters.blackbody_spectrum_flag = True radiative.parameters.thermal_evolution_flag = True radiative.parameters.box_size = box_size radiative.parameters.timestep = 1. | 1e3 * units.yr radiative.particles.add_particles(gas_particles) radiative.commit_particles() start = time.time() radiative.evolve_model(0.05 | units.Myr) end = time.time() print("Rad 1 in {a} s".format(a=end - start), flush=True) start = time.time() radiative.evolve_model(0.1 | units.Myr) end = time.time() print("Rad 2 in {a} s".format(a=end - start), flush=True) radiative.stop()