def plot_isochrone(particles): particles = new_particles_with_blackbody_color(particles) pyplot.figure(figsize=(7, 8)) pyplot.title('Hertzsprung-Russell diagram', fontsize=12) pyplot.scatter( particles.temperature.value_in( units.K), particles.luminosity.value_in( units.LSun), s=particles.radius.maximum( 0.1 | units.RSun).value_in( units.RSun) * 100, c=particles.color, edgecolors="none", ) pyplot.xlabel('Effective Temperature (K)') pyplot.ylabel('Luminosity (L$_{\odot}$)') pyplot.xscale('log') pyplot.yscale('log') pyplot.xlim(20e3, 2e3) pyplot.ylim(1.0e-3, 1.0e3) pyplot.gca().set_axis_bgcolor('#808080') pyplot.show()
def plot_isochrone(particles): particles = new_particles_with_blackbody_color(particles) pyplot.figure(figsize=(7, 8)) pyplot.title('Hertzsprung-Russell diagram', fontsize=12) pyplot.scatter( particles.temperature.value_in(units.K), particles.luminosity.value_in(units.LSun), s=particles.radius.maximum(0.1 | units.RSun).value_in(units.RSun)*100, c=particles.color, edgecolors="none", ) pyplot.xlabel('Effective Temperature (K)') pyplot.ylabel('Luminosity (L$_{\odot}$)') pyplot.xscale('log') pyplot.yscale('log') pyplot.xlim(20e3, 2e3) pyplot.ylim(1.0e-3, 1.0e3) pyplot.gca().set_axis_bgcolor('#808080') pyplot.show()
particles = new_plummer_model(number_of_particles, converter) particles.mass = masses particles.move_to_center() # create simulation codes gravity = new_gravity(particles, converter) stellar_evolution = new_stellar_evolution(particles) # create channels to and from the local particle set and the simulations from_gravity_to_local = gravity.particles.new_channel_to(particles) from_stellar_evolution_to_local = \ stellar_evolution.particles.new_channel_to(particles) from_stellar_evolution_to_local.copy() # creating colored particles particles = new_particles_with_blackbody_color(particles) particles.alpha = 1.0 particles.radius = stellar_evolution.particles.radius.sqrt() * \ (1e4 | units.parsec).sqrt() # creating visualization code converter = nbody_system.nbody_to_si(10.0 | units.parsec, masses.sum()) visualization = Asterisk(converter, redirection="none") # optional: change OpenGL perspective settings # visualization.set_field_of_view(45.0) # visualization.set_z_near(0.1 | units.parsec) # visualization.set_z_far(3000.0 | units.parsec) # initialize code (creates gui windows) visualization.initialize_code()
visualization.star_particles.add_particles(stars) visualization.gas_particles.add_particles(gas) return visualization def next_filename(): next_filename.counter += 1 return os.path.join("snapshots", "cluster_snapshot_{0:=06}_".format(next_filename.counter)) next_filename.counter = -1 def radius_from_luminosity(luminosity): return 0.02 * numpy.log(luminosity.value_in(units.LSun)) | units.parsec if __name__ == "__main__": filename = next_filename() stars = read_set_from_file(filename+"stars.amuse", 'amuse') stars = new_particles_with_blackbody_color(stars) stars.radius = radius_from_luminosity(stars.luminosity) gas = read_set_from_file(filename+"gas.amuse", 'amuse') gas = new_particles_with_blackbody_color(gas) gas.alpha = 0.00001 visualization = new_visualization(stars, gas) visualization.store_view(0|units.Myr) from_stars_to_viz = stars.new_channel_to(visualization.star_particles) from_gas_to_viz = gas.new_channel_to(visualization.gas_particles) #~ print visualization.gas_particles.alpha filename = next_filename() while True: if not os.path.exists(filename+"gas.amuse"):
particles = new_plummer_model(number_of_particles, converter) particles.mass = masses particles.move_to_center() # create simulation codes gravity = new_gravity(particles, converter) stellar_evolution = new_stellar_evolution(particles) # create channels to and from the local particle set and the simulations from_gravity_to_local = gravity.particles.new_channel_to(particles) from_stellar_evolution_to_local = \ stellar_evolution.particles.new_channel_to(particles) from_stellar_evolution_to_local.copy() # creating colored particles particles = new_particles_with_blackbody_color(particles) particles.alpha = 1.0 particles.radius = (stellar_evolution.particles.radius.sqrt() * (1e4 | units.parsec).sqrt()) # creating visualization code converter = nbody.nbody_to_si(10.0 | units.parsec, masses.sum()) visualization = Asterisk(converter, redirection="none") visualization.initialize_code() # optional: set the zoom and rotation of the visualization # visualization.parameters.rotation = (15, -15, 45) # visualization.parameters.camera_distance = 100 | units.parsec # add (now colored) particles to visualization visualization.particles.add_particles(particles)