예제 #1
0
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()
예제 #2
0
#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'
예제 #3
0
    # 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)