| |
| |
|
|
| |
|
|
|
|
| get_ipython().run_line_magic('matplotlib', 'inline') |
| import matplotlib |
| import matplotlib.pyplot as plt |
| import numpy as np |
| from classy import Class |
|
|
|
|
| |
|
|
|
|
| k_out = [5e-5, 5e-4, 5e-3] |
| models = ['PPF1','PPF2','FLD1','FLD1S'] |
| w0 = {'PPF1':-0.7,'PPF2':-1.15,'FLD1':-0.7,'FLD1S':-0.7} |
| wa = {'PPF1':0.,'PPF2':0.5,'FLD1':0.,'FLD1S':0.} |
| omega_cdm = {'PPF1':0.104976,'PPF2':0.120376,'FLD1':0.104976,'FLD1S':0.104976} |
| omega_b = 0.022 |
| |
| |
| h = {'PPF1':0.64,'PPF2':0.74,'FLD1':0.64,'FLD1S':0.64} |
| cosmo = {} |
|
|
| for M in models: |
| use_ppf = 'yes' |
| gauge = 'Newtonian' |
| if 'FLD' in M: |
| use_ppf = 'no' |
| if 'S' in M: |
| gauge = 'Synchronous' |
| |
| cosmo[M] = Class() |
| |
| cosmo[M].set({'output':'tCl mPk dTk vTk','k_output_values':str(k_out).strip('[]'), |
| 'h':h[M], |
| 'omega_b':omega_b,'omega_cdm':omega_cdm[M], |
| |
| 'cs2_fld':1., |
| 'w0_fld':w0[M],'wa_fld':wa[M],'Omega_Lambda':0.,'gauge':gauge, |
| 'use_ppf':use_ppf}) |
| cosmo[M].compute() |
|
|
|
|
| |
|
|
|
|
| colours = ['r','k','g','m'] |
| for i,M in enumerate(models): |
| cl = cosmo[M].raw_cl() |
| l = cl['ell'] |
| |
| plt.loglog(l,cl['tt']*l*(l+1)/(2.*np.pi),label=M,color=colours[i]) |
| |
| plt.legend(loc='upper left') |
| plt.xlim([2,300]) |
| plt.ylim([6e-11,1e-9]) |
| plt.xlabel(r'$\ell$') |
| plt.ylabel(r'$[\ell(\ell+1)/2\pi] C_\ell^\mathrm{TT}$') |
|
|
| plt.savefig('check_PPF_clTT.pdf') |
|
|
|
|
| |
|
|
|
|
| for M in ['PPF1','FLD1']: |
| csm = cosmo[M] |
| pt = csm.get_perturbations() |
| pts = pt['scalar'] |
| for i,k in enumerate(k_out): |
| ptk = pts[i] |
| a = ptk['a'] |
| phi = ptk['phi'] |
| psi = ptk['psi'] |
| if 'FLD' in M: |
| ls = ':' |
| lw=5 |
| else: |
| ls = '-' |
| lw=1 |
| plt.semilogx(a,0.5*(phi+psi),label=M+' '+'$k='+str(k)+'Mpc^{-1}$',ls=ls,lw=lw) |
| |
| plt.legend(loc='lower left') |
| plt.xlim([1e-2,1]) |
| plt.ylim([0.3,0.63]) |
| plt.xlabel(r'$a/a_0$') |
| plt.ylabel(r'$\frac{1}{2} ~(\Phi+\Psi)$') |
|
|
| plt.savefig('check_PPF_metric.pdf') |
|
|
|
|
| |
|
|
|
|
| |
|
|
| k_out = [1e-3] |
| |
| models = ['PPF1','FLD1'] |
| w0 = {'PPF1':-0.7,'PPF2':-1.15,'FLD1':-0.7,'FLD1S':-0.7} |
| wa = {'PPF1':0.,'PPF2':0.5,'FLD1':0.,'FLD1S':0.} |
| omega_cdm = {'PPF1':0.104976,'PPF2':0.120376,'FLD1':0.104976,'FLD1S':0.104976} |
| omega_b = 0.022 |
| |
| |
| h = {'PPF1':0.64,'PPF2':0.74,'FLD1':0.64} |
|
|
| fig, axes = plt.subplots(1,2,figsize=(16,5)) |
| for Omega_K in [-0.1, 0.0, 0.1]: |
| for gauge in ['Synchronous','Newtonian']: |
| cosmo = {} |
| for M in models: |
| use_ppf = 'yes' |
| if 'FLD' in M: |
| use_ppf = 'no' |
| |
| cosmo[M] = Class() |
| |
| cosmo[M].set({'output':'tCl mPk dTk vTk','k_output_values':str(k_out).strip('[]'), |
| 'h':h[M], |
| 'omega_b':omega_b,'omega_cdm':omega_cdm[M],'Omega_k':Omega_K, |
| |
| 'cs2_fld':1., |
| 'w0_fld':w0[M],'wa_fld':wa[M],'Omega_Lambda':0.,'gauge':gauge, |
| 'use_ppf':use_ppf,'hyper_sampling_curved_low_nu':10.0}) |
| cosmo[M].compute() |
| |
| label = r'$\Omega_k='+str(Omega_K)+'$, '+gauge[0] |
| clfld = cosmo['FLD1'].raw_cl() |
| clppf = cosmo['PPF1'].raw_cl() |
| |
| axes[0].semilogx(clfld['ell'][2:],clppf['tt'][2:]/clfld['tt'][2:],label=label) |
| |
| ptfld = cosmo['FLD1'].get_perturbations()['scalar'] |
| ptppf = cosmo['PPF1'].get_perturbations()['scalar'] |
| for i,k in enumerate(k_out): |
| ptkfld = ptfld[i] |
| a = ptkfld['a'] |
| phi_plus_phi_fld = ptkfld['phi']+ptkfld['psi'] |
| ptkppf = ptppf[i] |
| phi_plus_phi_ppf = ptkppf['phi']+ptkppf['psi'] |
| axes[1].semilogx(ptkppf['a'],phi_plus_phi_ppf,label=label+'_ppf') |
| axes[1].semilogx(ptkfld['a'],phi_plus_phi_fld,label=label+'_fld') |
| print (len(ptkppf['a']),len(ptkfld['a'])) |
| |
| axes[0].legend(loc='lower left',ncol=2) |
| axes[0].set_xlim([2,300]) |
| axes[0].set_ylim([0.98,1.02]) |
| axes[0].set_xlabel(r'$\ell$') |
| axes[0].set_ylabel(r'$C_\ell^\mathrm{FLD1}/C_\ell^\mathrm{PPF1}$') |
|
|
| axes[1].legend(loc='lower left',ncol=2) |
| axes[1].set_xlim([1e-2,1]) |
| axes[1].set_xlabel(r'$a/a_0$') |
| axes[1].set_ylabel(r'$(\Phi+\Psi)$') |
|
|
| fig.savefig('check_PPF_Omegak.pdf') |
|
|
|
|
| |
|
|
|
|
| colours = ['r','k','g','m'] |
|
|
| k_out = [1e-1] |
| |
| models = ['PPF1','FLD1'] |
| w0 = {'PPF1':-0.7,'PPF2':-1.15,'FLD1':-0.7,'FLD1S':-0.7} |
| wa = {'PPF1':0.,'PPF2':0.5,'FLD1':0.,'FLD1S':0.} |
| omega_cdm = {'PPF1':0.104976,'PPF2':0.120376,'FLD1':0.104976,'FLD1S':0.104976} |
| omega_b = 0.022 |
| |
| |
| h = {'PPF1':0.64,'PPF2':0.74,'FLD1':0.64} |
|
|
| fig, axes = plt.subplots(1,2,figsize=(18,8)) |
|
|
| for Omega_K in [-0.1, 0.0, 0.1]: |
| for ppfgauge in ['Synchronous','Newtonian']: |
| cosmo = {} |
| for M in models: |
| use_ppf = 'yes' |
| gauge = ppfgauge |
| if 'FLD' in M: |
| use_ppf = 'no' |
| |
| cosmo[M] = Class() |
| |
| cosmo[M].set({'output':'tCl mPk dTk vTk','k_output_values':str(k_out).strip('[]'), |
| 'h':h[M], |
| 'omega_b':omega_b,'omega_cdm':omega_cdm[M],'Omega_k':Omega_K, |
| |
| 'cs2_fld':1., |
| 'w0_fld':w0[M],'wa_fld':wa[M],'Omega_Lambda':0.,'gauge':gauge, |
| 'use_ppf':use_ppf,'hyper_sampling_curved_low_nu':6.1}) |
| cosmo[M].compute() |
| |
| |
| for j,M in enumerate(models): |
| cl = cosmo[M].raw_cl() |
| l = cl['ell'] |
| label = M+r'$\Omega_k='+str(Omega_K)+'$, '+gauge[0] |
| axes[0].loglog(l,cl['tt']*l*(l+1)/(2.*np.pi),label=label,color=colours[j]) |
| |
| csm = cosmo[M] |
| pt = csm.get_perturbations() |
| pts = pt['scalar'] |
| for i,k in enumerate(k_out): |
| ptk = pts[i] |
| a = ptk['a'] |
| phi = ptk['phi'] |
| psi = ptk['psi'] |
| if 'FLD' in M: |
| ls = ':' |
| lw=5 |
| else: |
| ls = '-' |
| lw=1 |
| axes[1].semilogx(a,0.5*abs(phi+psi),label=label+' '+'$k='+str(k)+'Mpc^{-1}$',ls=ls,lw=lw) |
|
|
| axes[0].legend(loc='upper left') |
| axes[0].set_xlim([2,300]) |
| axes[0].set_ylim([6e-11,1e-9]) |
| axes[0].set_xlabel(r'$\ell$') |
| axes[0].set_ylabel(r'$[\ell(\ell+1)/2\pi] C_\ell^\mathrm{TT}$') |
|
|
| axes[1].legend(loc='upper right') |
| |
| |
| axes[1].set_xlabel(r'$a/a_0$') |
| axes[1].set_ylabel(r'$\frac{1}{2}~(\Phi+\Psi)$') |
|
|
| fig.savefig('check_PPF_Omegak2.pdf') |
|
|
|
|