物质功率谱的计算

from classy import Class
# create instance of the class "Class"
LambdaCDM = Class()
# pass input parameters
LambdaCDM.set({'omega_b':0.02242,'omega_cdm':0.11933,'h':0.6766,'A_s':2.105e-09,'n_s':0.9665,'tau_reio':0.0561})
LambdaCDM.set({'output':'mPk','P_k_max_h/Mpc':4.0})
# run class
LambdaCDM.compute()

import numpy as np
kk = np.logspace(-4,np.log10(4),600) # k in h/Mpc
Pk = [] # P(k) in (Mpc/h)**3
h = LambdaCDM.h() # get reduced Hubble for conversions to 1/Mpc
for k in kk:
    Pk.append(LambdaCDM.pk(k*h,0.)*h**3) # function .pk(k,z)

# uncomment to get plots displayed in notebook
%matplotlib inline
import matplotlib.pyplot as plt
# plot P(k)
plt.figure(2)
plt.xscale('log');plt.yscale('log');plt.xlim(kk[0],kk[-1])
plt.xlabel(r'$k \,\,\,\, [h/\mathrm{Mpc}]$')
plt.ylabel(r'$P(k) \,\,\,\, [\mathrm{Mpc}/h]^3$')
plt.plot(kk,Pk,'b-')

import numpy as np

parameters = '_'.join([f"{key}_{value:.3f}" for key, value in list(LambdaCDM.pars.items())[:3]])

filename = f"data_Omega0_m_{LambdaCDM.Omega0_m():.3f}_h_{LambdaCDM.h():.3f}.txt"

with open(filename, 'w') as file:
    for a, b in zip(kk, Pk):
        file.write(f"{a} {b}\n")

Smilie Vote is loading.
✿ 阅读数:203  分类:文章

物质功率谱的计算”下有2个评论:

  1. import matplotlib.pyplot as plt
    import numpy as np
    from scipy.interpolate import interp1d
    import matplotlib
    font = {‘size’ : 13, ‘family’:’STIXGeneral’}
    axislabelfontsize=’large’
    matplotlib.rc(‘font’, **font)

    fig = plt.figure(figsize = (4,4))
    left, bottom, width, height = 0.0,-0.4,1.4,0.6
    ax0 = fig.add_axes([left,bottom,width,height])
    plt.xticks([])
    plt.yticks([])

    ################################
    left, bottom, width, height = 0.,0.0,1.4,0.6
    ax2 = fig.add_axes([left,bottom,width,height])
    ax2.plot(kk,Pk_lcdm,’g-‘,label=r’$\Lambda$CDM’)
    ax2.plot(kk,Pk,’r–‘,label=’PUDF’)
    ax2.set_yscale(‘log’)
    ax2.set_xscale(‘log’)
    ax2.set_xlim(kk[0],kk[-1])
    ax2.set_xticks([])
    plt.legend()
    plt.ylabel(r’$P(k) \,\,\,\, [\mathrm{Mpc}/h]^3$’)
    ################################
    left, bottom, width, height = 0.0,-0.4,1.4,0.4
    ax11 = fig.add_axes([left,bottom,width,height])
    ax11.plot(kk,(np.array(Pk)-np.array(Pk_lcdm))/np.array(Pk_lcdm))
    ax11.set_xscale(‘log’)
    ax11.set_xlim(kk[0],kk[-1])
    ax11.set_xlabel(r’$k \,\,\,\, [h/\mathrm{Mpc}]$’)
    plt.ylabel(r’$P(k)_\mathrm{PUDF}/P(k)_\mathrm{\Lambda CDM} – 1$’,fontsize=10)
    #############################
    plt.savefig(‘Pk.pdf’,bbox_inches = ‘tight’)
    plt.show()

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code