3 Generate a set of CLASS power spectra across a set of sample points in 4 cosmological parameter space, and compare with CCL. 6 from param_space
import *
11 if len(sys.argv) > 1: CLASS_ROOT = sys.argv[1]
12 assert CLASS_ROOT
is not None, \
13 "Must specify CLASS_ROOT (as argument or in source file)." 18 ZVALS = np.arange(0., 3., 0.5)
23 'Omega_cdm': (0.15, 0.35),
24 'Omega_b': (0.018, 0.052),
25 'A_s': (1.5e-9, 2.5e-9),
30 class_datadir =
"%s/data/class" % os.path.abspath(
".")
31 ccl_datadir =
"%s/data/ccl" % os.path.abspath(
".")
32 if not os.path.exists(class_datadir): os.makedirs(class_datadir)
33 if not os.path.exists(ccl_datadir): os.makedirs(ccl_datadir)
36 root =
"%s/%s" % (class_datadir, PREFIX)
37 ccl_root =
"%s/%s" % (ccl_datadir, PREFIX)
41 class_root=CLASS_ROOT, seed=SEED )
46 print(
"Writing CLASS linear .ini files")
48 nonlinear=
False, redshifts=ZVALS)
50 nonlinear=
False, redshifts=ZVALS)
52 print(
"Writing CLASS nonlinear .ini files")
54 nonlinear=
True, redshifts=ZVALS)
56 nonlinear=
True, redshifts=ZVALS)
60 print(
"Running CLASS on .ini files")
61 run_class(fname_pattern=
"%s_lin_std_?????.ini" % root,
62 class_root=CLASS_ROOT, precision=
False)
63 run_class(fname_pattern=
"%s_lin_pre_?????.ini" % root,
64 class_root=CLASS_ROOT, precision=
True)
65 run_class(fname_pattern=
"%s_nl_std_?????.ini" % root,
66 class_root=CLASS_ROOT, precision=
False)
67 run_class(fname_pattern=
"%s_nl_pre_?????.ini" % root,
68 class_root=CLASS_ROOT, precision=
True)
73 class_data_root=
"%s_lin_std" % root,
74 zvals=ZVALS, default_params={
'mnu': 0.}, mode=
'std')
77 class_data_root=
"%s_lin_pre" % root,
78 zvals=ZVALS, default_params={
'mnu': 0.}, mode=
'pre')
81 class_data_root=
"%s_nl_std" % root,
82 zvals=ZVALS, default_params={
'mnu': 0.},
83 nonlin=
True, mode=
'std')
86 class_data_root=
"%s_nl_pre" % root,
87 zvals=ZVALS, default_params={
'mnu': 0.},
88 nonlin=
True, mode=
'pre')
def generate_latin_hypercube(samples, param_dict, class_root, seed=10)
def save_hypercube(fname, sample_points)
def generate_class_ini(sample_points, root, nonlinear=False, mnu=False, redshifts=np.arange(0., 3., 0.5))
def run_class(fname_pattern, class_root, precision=False)
def generate_ccl_pspec(sample_points, root, class_data_root, zvals, default_params=None, nonlin=False, mode='std')