def steady_pdf_cdf(sink,args): low,hi= low_hi_mdot_all_models() arr,bins,pdf,cdf= pdf_for_model_64_x_N(sink,args.str_beta, low,hi,nsinks=64,corr=True,last_2tBH=True,dt=2.) #plot hist fig,axes=plt.subplots(2,1,sharex=True) ax=axes.flatten() plt.subplots_adjust(hspace=0.1) ax[0].plot((bins[1:]+bins[:-1])/2,cdf,c='b') ax[1].plot((bins[1:]+bins[:-1])/2,pdf,c='b') ax[0].set_ylabel('CDF') ax[1].set_ylabel('PDF') ax[1].set_xlabel(r'$\dot{M}$') for i in range(2): ax[i].set_xlim(-7,-2) ax[i].set_ylim(-0.1,1.1) plt.suptitle('Model: %s' % (args.str_beta,)) plt.savefig(os.path.join(os.path.dirname(args.master_sink),'steady-pdf-cdf-%s.png' % args.str_beta)) plt.close()
#raw_t= master_sink.old_t[-master_sink.tnorm().size:].copy() print "%s" % args.str_beta print "mdotTime, tnorm()" for raw_t,norm in zip(master_sink.mdotTime,master_sink.tnorm()): print raw_t,norm print 'exiting early' sys.exit() #tend print 'model: %s, last t/tBH= %.5f' % (args.str_beta,master_sink.tnorm()[-1]) if False: # print machrms at end t_end= min(20.,master_sink.tnorm()[-1]) i_end= index_before_tBH(master_sink,t_end,units_tBH=True) mach_end= master_sink.f_rms_mach(master_sink.mdotTime[i_end]) print 'model= %s, tsteady/tBH= %.2f, tend/tBH= %.2f, rms Mach end= %.2f' % \ (args.str_beta, steady_state_begins(args.str_beta,True),t_end,mach_end) #corr mdots end_t,end_mach= t_rms_mach_near_end(args.str_beta) master_sink.rm_mdot_systematics(end_t,end_mach) #final PDF final_pdf= dict(arr={},bins={},pdf={},cdf={}) #PDF USING, 64 pdf, over last 2tBH low,hi= low_hi_mdot_all_models() final_pdf['arr'][args.str_beta],final_pdf['bins'][args.str_beta],final_pdf['pdf'][args.str_beta],final_pdf['cdf'][args.str_beta]= pdf_for_model_64_x_N(master_sink,args.str_beta, low,hi,nsinks=64,corr=True,last_2tBH=True,dt=2.) #make plots just_median(master_sink,args) median_and_when_equil_begins(master_sink,args) steady_pdf_cdf(master_sink,args) all_rates(master_sink,args,corr=True) bootstrap_sigma_vs_nsink(final_pdf,args.str_beta) print 'finished'
# print 'sinks[key].mdot.shae[istart:iend].shape= ',sinks[key].mdot[istart:iend].shape # print 'sinks[key].mdot[istart:iend].shape= ',sinks[key].mdot[istart:iend].shape gt_zero = sinks[key].mdot[:, istart:iend] > 0 # mdot < 0 when dt plummeted, huge vertical spike in mdot vs. t... new_low, new_hi = sinks[key].mdot[:, istart:iend][gt_zero].min(), sinks[key].mdot[:, istart:iend][gt_zero].max() print "model= %s: low,new_low,hi,new_hi= " % (key,), low, new_low, hi, new_hi low, hi = min(low, new_low), max(hi, new_hi) print "----lowest and highest mdots for all models are: lo=", low, ", hi=", hi, " ----" nsinks = 64 # for nsinks in [8,16,32,64]: # first, store pdfs,cdfs b/c kaylans_pdf_one_model calls plot functions and messing up plot if make inside loop final_pdf = dict(arr={}, bins={}, pdf={}, cdf={}) # PDF USING, 64 pdf, over last 2tBH for mod in sinks.keys(): # PDF for each model final_pdf["arr"][mod], final_pdf["bins"][mod], final_pdf["pdf"][mod], final_pdf["cdf"][ mod ] = stats.pdf_for_model_64_x_N( sinks[mod], mod, low, hi, nsinks=nsinks, corr=True, last_2tBH=True, dt=2.0, median=True ) # if 128 PDF desired = stats.pdf_for_model_64_x_N(sinks[mod],mod, low,hi,nsinks=nsinks,corr=True,last_2tBH=True,dt=1.) # combine the 2 hydro models def combine_hydro(arr, bins, pdf, cdf): arr["hydro_both"], bins["hydro_both"] = ( np.concatenate([arr["bInf"], arr["bInfsd3"]], axis=0), bins["bInf"], ) # bins same all models pdf["hydro_both"], cdf["hydro_both"] = stats.get_pdf_cdf(arr["hydro_both"], bins["hydro_both"]) combine_hydro(final_pdf["arr"], final_pdf["bins"], final_pdf["pdf"], final_pdf["cdf"]) # PLOTS # all_models_cdfs_pdfs(final_pdf['cdf'],final_pdf['pdf'],final_pdf['bins'],args,nsinks=nsinks)