def test_ehnobao(): t = Transfer(transfer_model="EH") tnobao = Transfer(transfer_model="EH_NoBAO") assert np.isclose(t._unnormalised_lnT[0], tnobao._unnormalised_lnT[0], rtol=1e-5)
def test_updates(): t = Transfer() t2 = Transfer() for k, v in { "z": 0.1, "sigma_8": 0.82, "n": 0.95, "cosmo_params": { "H0": 68.0 } }.items(): yield check_update, t, t2, k, v
def hmf_halofit(): #https://github.com/steven-murray/hmf/blob/master/development/halofit_testing.ipynb from hmf.transfer import Transfer teh_nl_tk = Transfer(transfer_model="EH", takahashi=True, z=0.0) teh_nl_ntk = Transfer(transfer_model="EH", takahashi=False, z=0.0) teh_nl_tk.update(z=0) #plt.plot(teh_nl_tk.k, np.abs(teh_nl_ntk.nonlinear_power/teh_nl_tk.nonlinear_power -1)) ax0.loglog(teh_nl_ntk.k, teh_nl_ntk.nonlinear_power, 'k--') ax0.loglog(teh_nl_ntk.k, teh_nl_ntk.power, 'k-.')
def test_updates(): t = Transfer() t2 = Transfer() for k, v in { "z": 0.1, "wdm_mass": 10.0, "transfer_options": { "initial_mode": 2, "lAccuracyBoost": 1.5, "AccuracyBoost": 1.5 }, "sigma_8": 0.82, "n": 0.95, "H0": 68.0 }.iteritems(): yield check_update, t, t2, k, v
def test_updates(): t = Transfer() t2 = Transfer() for k, v in { "z": 0.1, "transfer_params": { "lAccuracyBoost": 1.5, "AccuracyBoost": 1.5 }, "sigma_8": 0.82, "n": 0.95, "cosmo_params": { "H0": 68.0 } }.iteritems(): yield check_update, t, t2, k, v
def test_data(): t = Transfer(cosmo_model=LambdaCDM(Om0=0.3, Ode0=0.7, H0=70.0, Ob0=0.05), sigma_8=0.8, n=1, transfer_params={ "transfer__k_per_logint": 0, "transfer__kmax": 100.0 }, lnk_min=np.log(1e-11), lnk_max=np.log(1e11)) tdata = np.genfromtxt(LOCATION + "/data/transfer_for_hmf_tests.dat") pdata = np.genfromtxt(LOCATION + "/data/power_for_hmf_tests.dat") assert rms(t._unnormalised_lnT - np.log(tdata[:, 1]) ) < 0.05 # Does better than 0.001 on my system... diff = t.power - pdata[:, 1] print t._unnormalised_lnT[400], t._unnormalised_power[400], t._power0[400] assert rms(t.power - pdata[:, 1]) < 0.001
def test_data(): t = Transfer(omegab=0.05, omegac=0.25, omegav=0.7, omegan=0.0, H0=70.0, sigma_8=0.8, n=1, transfer_options={ "transfer__k_per_logint": 0, "transfer__kmax": 100.0 }, lnk_min=np.log(1e-11), lnk_max=np.log(1e11)) tdata = np.genfromtxt(LOCATION + "/data/transfer_for_hmf_tests.dat") pdata = np.genfromtxt(LOCATION + "/data/power_for_hmf_tests.dat") assert rms(np.exp(t._unnormalised_lnT) - tdata[:, 1]) < 0.05 # Does better than 0.001 on my system... assert rms(np.exp(t.power) - pdata[:, 1]) < 0.001
plt.legend(loc = "lower left") plt.show() #plt.savefig('plots/hmf_OmegaM', bbox_inches='tight') # Check if log scale is working properly plt.figure(10) plt.plot(Mass) plt.plot(Mass[::10], 'o') plt.yscale('log') plt.show() from hmf.transfer import Transfer teh_nl_tk = Transfer(transfer_model="EH", takahashi=True, z= 8.0) teh_nl_ntk = Transfer(transfer_model="EH", takahashi=False, z=8.0) teh_nl_tk.update(z=0) plt.plot(teh_nl_tk.k, np.abs(teh_nl_ntk.nonlinear_power/teh_nl_tk.nonlinear_power -1)) #plt.plot(teh_nl_ntk.k, teh_nl_ntk.nonlinear_power) #plt.plot(teh_nl_ntk.k, teh_nl_ntk.power) plt.xscale('log') #plt.yscale('log') plt.grid(True)
def test_halofit(): t = Transfer(lnk_min=-20, lnk_max=20, dlnk=0.05, transfer_fit="EH") assert abs(t.power[0] - t.nonlinear_power[0]) < 1e-5 assert 5 + t.power[-1] < t.nonlinear_power[-1]
def test_halofit(): t = Transfer(lnk_min=-20, lnk_max=20, dlnk=0.05, transfer_model="EH") print EH_BAO._defaults print "in test_transfer, params are: ", t.transfer_params assert np.isclose(t.power[0], t.nonlinear_power[0]) assert 5 * t.power[-1] < t.nonlinear_power[-1]
def test_bondefs(): t = Transfer(transfer_model="BondEfs") print(np.exp(t._unnormalised_lnT)) assert np.isclose(np.exp(t._unnormalised_lnT[0]), 1, rtol=1e-5)