In [9]:
from nbodykit.cosmology import Cosmology, LinearPower, ZeldovichPower
In [2]:
from astropy.cosmology import FLRW, FlatwCDM
import numpy as np
In [3]:
def make_cosmo(param_names, param_vals):
"""
Frequently, the parameters of our input will not align with what we need.
So, we convert them to the appropriate format.
:param param_names:
:param param_vals:
:return:
"""
param_dict = dict([(pn, param_vals[pn]) for pn in param_names] )
# TODO it'd be nice if this could be somehow generalized.
param_dict['N_ncdm'] = 3.0
param_dict['N_ur'] = param_dict['Neff']-3.0
del param_dict['Neff']
#param_dict['h'] = param_dict['H0']/100
#del param_dict['H0']
param_dict['h'] = param_dict['h0']
del param_dict['h0']
#param_dict['w0_fld'] = param_dict['w']
#del param_dict['w']
#param_dict['Omega0_b'] = param_dict['Omega_b']
param_dict['Omega_cdm'] = param_dict['Omega_m'] - param_dict['Omega_b']
del param_dict['Omega_b']
del param_dict['Omega_m']
#param_dict['ln_1e10_A_s'] = param_dict['ln(10^{10}A_s)']
param_dict['A_s'] = 10**(-10)*np.exp(param_dict['ln(10^{10}A_s)'])
del param_dict['ln(10^{10}A_s)']
param_dict['Omega_ncdm'] = [param_dict['Omeganuh2']/(param_dict['h']**2), 0.0, 0.0]
del param_dict['Omeganuh2']
#FlatwCDM
C=Cosmology()
C2 = C.from_dict(param_dict)
C3 = C2.clone(w0_fld=param_dict['w'])
return C3#osmology(m_ncdm=None, **param_dict)
In [4]:
import pandas as pd
In [5]:
lhc = pd.read_csv('/home/users/swmclau2/Git/pearce/bin/pmesh_tests/DES_training_points.csv', sep = ' ', index_col=None)
param_names = list(lhc)
In [6]:
k = np.logspace(-4,2,1000)
In [12]:
for idx, row in lhc.iterrows():
cosmo = make_cosmo(param_names, row)
#astro = cosmo.to_astropy()
p = LinearPower(cosmo, 0.0)(k)
break
In [ ]: