galaxies = [] for item in inits: ch = ChemModel(**item) ''' call modules to run the model: snrate: SN rate at each time step - this also sets time array so ch.supernova_rate() must be called first to set time array for the entire code all results: t, mg, m*, mz, Z, md, md/mz, sfr, dust_source(all), dust_source(stars), dust_source(ism), destruction_time, graingrowth_time ''' snrate = ch.supernova_rate() all_results = ch.gas_metal_dust_mass(snrate) # write all the parameters to a dictionary for each init set params = {'time' : all_results[:,0], 'mgas' : all_results[:,1], 'mstars' : all_results[:,2], 'metalmass' : all_results[:,3], 'metallicity' : all_results[:,4], 'dustmass' : all_results[:,5], 'dust_metals_ratio' : all_results[:,6], 'sfr' : all_results[:,7], 'dust_all' : all_results[:,8], 'dust_stars' : all_results[:,9], 'dust_ism' : all_results[:,10], 'time_destroy' : all_results[:,11], 'time_gg' : all_results[:,12]} params['fg'] = params['mgas']/(params['mgas']+params['mstars'])
'destruct': 1000. } ch = ChemModel(**inits) # call modules to run the model # SN rate at each time step - this also sets time array so # this must be run before ch.gas_metal_dust_mass snrate = ch.supernova_rate() # returns # (a) dust sources vs time (all, stars only and grain growth only) # (b) timescales for destruction & grain growth in Gyrs # (c) all results -- t, mg, m*, mz, Z, md, md/mz, sfr dust_sources, timescales, all_results = ch.gas_metal_dust_mass(snrate) time = all_results[:,0] mgas = all_results[:,1] mstars = all_results[:,2] metalmass = all_results[:,3] metallicity = all_results[:,4] mdust = all_results[:,5] dust_metals = all_results[:,6] sfr = all_results[:,7] t_graingrow = timescales[:,1] t_destroy = timescales[:,0] # create gasfraction and ssfr parameters gasfraction = mgas/(mgas+mstars) ssfr = sfr/mstars