示例#1
0
 def tau(meandens, line=tau1x, sigma=1.0, hightail=False,
         hopkins=False, powertail=False, lowtail=False,
         compressive=False, divide_by_col=False, **kwargs):
     if compressive:
         distr = turbulent_pdfs.compressive_distr(meandens,sigma,**kwargs)
     elif lowtail:
         distr = turbulent_pdfs.lowtail_distr(meandens,sigma,**kwargs)
     elif powertail or hightail:
         distr = turbulent_pdfs.hightail_distr(meandens,sigma,**kwargs)
     elif hopkins:
         T = hopkins_pdf.T_of_sigma(sigma, logform=True)
         #distr = 10**dens * hopkins_pdf.hopkins(10**(dens), meanrho=10**(meandens), sigma=sigma, T=T) # T~0.05 M_C
         distr = hopkins_pdf.hopkins_masspdf_ofmeandens(10**dens, 10**meandens, sigma_volume=sigma, T=T, normalize=True)
         # Hopkins is integral-normalized, not sum-normalized
         #distr /= distr.sum()
     else:
         #distr = lognormal(10**dens, 10**meandens, sigma) * dlndens
         distr = lognormal_massweighted(10**dens, 10**meandens, sigma, normalize=True)
     if divide_by_col:
         return (distr*line/(10**col)).sum()
     else:
         return (distr*line).sum()
pl.plot(sigmas, lognormal_integrals)
pl.xlabel(r'$\sigma_s$')
pl.ylabel(r'$\int P_V(s)$')
pl.show()

pl.figure(2)
pl.clf()
pl.plot(sigmas, lognormalmass_integrals)
pl.xlabel(r'$\sigma_s$')
pl.ylabel(r'$\int P_M(s)$')

pl.figure(3)
pl.clf()
fits = []
for s in sigmas[::10]:
    distr = lognormal_massweighted(rho, 1, s)
    L, = pl.loglog(rho,
                   distr,
                   label=r'$\sigma_s=%f' % s,
                   linewidth=3,
                   alpha=0.5)
    (fitted_rho0, fitted_s), cov = curve_fit(lognormal,
                                             rho,
                                             distr,
                                             p0=[np.exp(s**2), s])
    fitted_distr = lognormal(rho, fitted_rho0, fitted_s)
    pl.loglog(rho, fitted_distr, color=L.get_color(), linestyle='--')
    fits.append((fitted_rho0, fitted_s))
fits = np.array(fits)

pl.xlabel(r'$\rho$')
pl.plot(sigmas, lognormal_integrals)
pl.xlabel(r'$\sigma_s$')
pl.ylabel(r'$\int P_V(s)$')
pl.show()

pl.figure(2)
pl.clf()
pl.plot(sigmas, lognormalmass_integrals)
pl.xlabel(r'$\sigma_s$')
pl.ylabel(r'$\int P_M(s)$')

pl.figure(3)
pl.clf()
fits = []
for s in sigmas[::10]:
    distr = lognormal_massweighted(rho, 1, s)
    L, = pl.loglog(rho,distr, label=r'$\sigma_s=%f' % s, linewidth=3, alpha=0.5)
    (fitted_rho0,fitted_s),cov = curve_fit(lognormal, rho, distr, p0=[np.exp(s**2),s])
    fitted_distr = lognormal(rho, fitted_rho0, fitted_s)
    pl.loglog(rho,fitted_distr,color=L.get_color(), linestyle='--')
    fits.append((fitted_rho0,fitted_s))
fits = np.array(fits)

pl.xlabel(r'$\rho$')
pl.ylabel(r'$P_M(s)$')
pl.axis([1e-10,1e30,1e-10,1])

pl.figure(4)
pl.clf()
pl.plot(meanrhos, lognormal_integrals_rho)
pl.xlabel(r'$\rho_0$')