Fast Methods for Cosmological Simulations
FastSim serves as a tool for quick N-body simulations in modified gravity.
ccl_test_params.c File Reference
#include <math.h>
#include "ccl.h"
#include "ctest.h"
Include dependency graph for ccl_test_params.c:

Go to the source code of this file.

Classes

struct  parameters_data
 

Functions

void __attribute__ ((weak))
 
void __ctest_parameters_create_lcdm_run (struct parameters_data *data)
 
void test_general (ccl_parameters params, struct parameters_data *data)
 
void __ctest_parameters_create_general_nu_list_run (struct parameters_data *data)
 
void __ctest_parameters_create_general_nu_sum_run (struct parameters_data *data)
 
void __ctest_parameters_create_general_nu_sum_inverted_run (struct parameters_data *data)
 
void __ctest_parameters_create_general_nu_sum_equal_run (struct parameters_data *data)
 
void __ctest_parameters_read_write_run (struct parameters_data *data)
 

Variables

static struct parameters_data __ctest_parameters_data
 

Function Documentation

void __attribute__ ( (weak)  )

Definition at line 29 of file ccl_test_params.c.

29  {
30  data->Omega_c = 0.25;
31  data->Omega_b = 0.05;
32  data->Omega_k = 0.1;
33  data->Neff = 3.046;
34  data->mnu[0] = 0.1;
35  data->mnu[1] = 0.01;
36  data->mnu[2] = 0.003;
37  data->h = 0.7;
38  data->A_s = 2.1e-9;
39  data->n_s = 0.96;
40  data->wa = 0.01;
41  data->w0 = -0.8;
42  data->bcm_log10Mc = 2.0;
43  data->bcm_etab = 80.0;
44  data->bcm_ks = 1.1,
45  data->status=0;
46 }
void __ctest_parameters_create_general_nu_list_run ( struct parameters_data data)

Definition at line 147 of file ccl_test_params.c.

References ASSERT_DBL_NEAR_TOL, ASSERT_EQUAL, ccl_mnu_list, ccl_parameters_create(), ccl_parameters::mnu, ccl_parameters::N_nu_mass, halomod_bm::params, ccl_parameters::sum_nu_masses, and test_general().

147  {
148  int status = 0;
149 
152  data->Omega_c,
153  data->Omega_b,
154  data->Omega_k,
155  data->Neff,
156  data->mnu,
157  ccl_mnu_list,
158  data->w0,
159  data->wa,
160  data->h,
161  data->A_s,
162  data->n_s,
163  data->bcm_log10Mc,
164  data->bcm_etab,
165  data->bcm_ks,
166  -1,
167  NULL,
168  NULL,
169  &status);
170 
171  ASSERT_EQUAL(status, 0);
172 
173  test_general(params, data);
174 
175  ASSERT_EQUAL(params.N_nu_mass, 3);
176  ASSERT_DBL_NEAR_TOL(params.sum_nu_masses, data->mnu[0] + data->mnu[1] + data->mnu[2], 1e-10);
177  ASSERT_DBL_NEAR_TOL(params.mnu[0], 0.1, 1e-10);
178  ASSERT_DBL_NEAR_TOL(params.mnu[1], 0.01, 1e-10);
179  ASSERT_DBL_NEAR_TOL(params.mnu[2], 0.003, 1e-10);
180 }
double * mnu
Definition: ccl_core.h:40
void test_general(ccl_parameters params, struct parameters_data *data)
int * status
Definition: ccl_redshifts.c:41
double sum_nu_masses
Definition: ccl_core.h:41
dictionary params
Definition: halomod_bm.py:27
#define ASSERT_DBL_NEAR_TOL(exp, real, tol)
Definition: ctest.h:152
#define ASSERT_EQUAL(exp, real)
Definition: ctest.h:121
ccl_parameters ccl_parameters_create(double Omega_c, double Omega_b, double Omega_k, double Neff, double *mnu, ccl_mnu_convention mnu_type, double w0, double wa, double h, double norm_pk, double n_s, double bcm_log10Mc, double bcm_etab, double bcm_ks, int nz_mgrowth, double *zarr_mgrowth, double *dfarr_mgrowth, int *status)
Definition: ccl_core.c:294
void __ctest_parameters_create_general_nu_sum_equal_run ( struct parameters_data data)

Definition at line 246 of file ccl_test_params.c.

References ASSERT_DBL_NEAR_TOL, ASSERT_EQUAL, ccl_mnu_sum_equal, ccl_parameters_create(), ccl_parameters::mnu, ccl_parameters::N_nu_mass, halomod_bm::params, ccl_parameters::sum_nu_masses, and test_general().

246  {
247  int status = 0;
248 
251  data->Omega_c,
252  data->Omega_b,
253  data->Omega_k,
254  data->Neff,
255  data->mnu,
257  data->w0,
258  data->wa,
259  data->h,
260  data->A_s,
261  data->n_s,
262  data->bcm_log10Mc,
263  data->bcm_etab,
264  data->bcm_ks,
265  -1,
266  NULL,
267  NULL,
268  &status);
269 
270  ASSERT_EQUAL(status, 0);
271 
272  test_general(params, data);
273 
274  ASSERT_EQUAL(params.N_nu_mass, 3);
275  ASSERT_DBL_NEAR_TOL(params.sum_nu_masses, data->mnu[0], 1e-10);
276  ASSERT_DBL_NEAR_TOL(params.mnu[0], data->mnu[0]/3, 1e-10);
277  ASSERT_DBL_NEAR_TOL(params.mnu[1], data->mnu[0]/3, 1e-10);
278  ASSERT_DBL_NEAR_TOL(params.mnu[2], data->mnu[0]/3, 1e-10);
279 }
double * mnu
Definition: ccl_core.h:40
void test_general(ccl_parameters params, struct parameters_data *data)
int * status
Definition: ccl_redshifts.c:41
double sum_nu_masses
Definition: ccl_core.h:41
dictionary params
Definition: halomod_bm.py:27
#define ASSERT_DBL_NEAR_TOL(exp, real, tol)
Definition: ctest.h:152
#define ASSERT_EQUAL(exp, real)
Definition: ctest.h:121
ccl_parameters ccl_parameters_create(double Omega_c, double Omega_b, double Omega_k, double Neff, double *mnu, ccl_mnu_convention mnu_type, double w0, double wa, double h, double norm_pk, double n_s, double bcm_log10Mc, double bcm_etab, double bcm_ks, int nz_mgrowth, double *zarr_mgrowth, double *dfarr_mgrowth, int *status)
Definition: ccl_core.c:294
void __ctest_parameters_create_general_nu_sum_inverted_run ( struct parameters_data data)

Definition at line 214 of file ccl_test_params.c.

References ASSERT_DBL_NEAR_TOL, ASSERT_EQUAL, ccl_mnu_sum, ccl_parameters_create(), ccl_parameters::N_nu_mass, halomod_bm::params, ccl_parameters::sum_nu_masses, and test_general().

214  {
215  int status = 0;
216 
219  data->Omega_c,
220  data->Omega_b,
221  data->Omega_k,
222  data->Neff,
223  data->mnu,
224  ccl_mnu_sum,
225  data->w0,
226  data->wa,
227  data->h,
228  data->A_s,
229  data->n_s,
230  data->bcm_log10Mc,
231  data->bcm_etab,
232  data->bcm_ks,
233  -1,
234  NULL,
235  NULL,
236  &status);
237 
238  ASSERT_EQUAL(status, 0);
239 
240  test_general(params, data);
241 
242  ASSERT_EQUAL(params.N_nu_mass, 3);
243  ASSERT_DBL_NEAR_TOL(params.sum_nu_masses, data->mnu[0], 1e-10);
244 }
void test_general(ccl_parameters params, struct parameters_data *data)
int * status
Definition: ccl_redshifts.c:41
double sum_nu_masses
Definition: ccl_core.h:41
dictionary params
Definition: halomod_bm.py:27
#define ASSERT_DBL_NEAR_TOL(exp, real, tol)
Definition: ctest.h:152
#define ASSERT_EQUAL(exp, real)
Definition: ctest.h:121
ccl_parameters ccl_parameters_create(double Omega_c, double Omega_b, double Omega_k, double Neff, double *mnu, ccl_mnu_convention mnu_type, double w0, double wa, double h, double norm_pk, double n_s, double bcm_log10Mc, double bcm_etab, double bcm_ks, int nz_mgrowth, double *zarr_mgrowth, double *dfarr_mgrowth, int *status)
Definition: ccl_core.c:294
void __ctest_parameters_create_general_nu_sum_run ( struct parameters_data data)

Definition at line 182 of file ccl_test_params.c.

References ASSERT_DBL_NEAR_TOL, ASSERT_EQUAL, ccl_mnu_sum, ccl_parameters_create(), ccl_parameters::N_nu_mass, halomod_bm::params, ccl_parameters::sum_nu_masses, and test_general().

182  {
183  int status = 0;
184 
187  data->Omega_c,
188  data->Omega_b,
189  data->Omega_k,
190  data->Neff,
191  data->mnu,
192  ccl_mnu_sum,
193  data->w0,
194  data->wa,
195  data->h,
196  data->A_s,
197  data->n_s,
198  data->bcm_log10Mc,
199  data->bcm_etab,
200  data->bcm_ks,
201  -1,
202  NULL,
203  NULL,
204  &status);
205 
206  ASSERT_EQUAL(status, 0);
207 
208  test_general(params, data);
209 
210  ASSERT_EQUAL(params.N_nu_mass, 3);
211  ASSERT_DBL_NEAR_TOL(params.sum_nu_masses, data->mnu[0], 1e-10);
212 }
void test_general(ccl_parameters params, struct parameters_data *data)
int * status
Definition: ccl_redshifts.c:41
double sum_nu_masses
Definition: ccl_core.h:41
dictionary params
Definition: halomod_bm.py:27
#define ASSERT_DBL_NEAR_TOL(exp, real, tol)
Definition: ctest.h:152
#define ASSERT_EQUAL(exp, real)
Definition: ctest.h:121
ccl_parameters ccl_parameters_create(double Omega_c, double Omega_b, double Omega_k, double Neff, double *mnu, ccl_mnu_convention mnu_type, double w0, double wa, double h, double norm_pk, double n_s, double bcm_log10Mc, double bcm_etab, double bcm_ks, int nz_mgrowth, double *zarr_mgrowth, double *dfarr_mgrowth, int *status)
Definition: ccl_core.c:294
void __ctest_parameters_create_lcdm_run ( struct parameters_data data)

Definition at line 57 of file ccl_test_params.c.

57  {
59  data->Omega_c, data->Omega_b, data->h, data->A_s, data->n_s, &(data->status));
60 
61  ASSERT_DBL_NEAR_TOL(params.Omega_c, data->Omega_c, 1e-10);
62  ASSERT_DBL_NEAR_TOL(params.Omega_b, data->Omega_b, 1e-10);
63  ASSERT_DBL_NEAR_TOL(params.Omega_m, data->Omega_b + data->Omega_c, 1e-10);
64  ASSERT_DBL_NEAR_TOL(params.Omega_k, 0.0, 1e-10);
65  ASSERT_DBL_NEAR_TOL(params.sqrtk, 0.0, 1e-10);
66  ASSERT_DBL_NEAR_TOL(params.k_sign, 0.0, 1e-10);
67  ASSERT_DBL_NEAR_TOL(params.w0, -1.0, 1e-10);
68  ASSERT_DBL_NEAR_TOL(params.wa, 0.0, 1e-10);
69  ASSERT_DBL_NEAR_TOL(params.H0, 70.0, 1e-10);
70  ASSERT_DBL_NEAR_TOL(params.h, 0.7, 1e-10);
71  ASSERT_DBL_NEAR_TOL(params.A_s, data->A_s, 1e-10);
72  ASSERT_DBL_NEAR_TOL(params.n_s, data->n_s, 1e-10);
73  ASSERT_TRUE(isnan(params.sigma8));
74  ASSERT_TRUE(isnan(params.z_star));
75  ASSERT_DBL_NEAR_TOL(params.Neff, 3.046, 1e-10);
76  ASSERT_EQUAL(params.N_nu_mass, 0);
77  ASSERT_DBL_NEAR_TOL(params.N_nu_rel, 3.046, 1e-10);
78  ASSERT_DBL_NEAR_TOL(params.sum_nu_masses, 0.0, 1e-10);
79  ASSERT_DBL_NEAR_TOL(params.mnu[0], 0.0, 1e-10);
80  ASSERT_DBL_NEAR_TOL(params.Omega_n_mass, 0.0, 1e-10);
81  ASSERT_DBL_NEAR_TOL(params.T_CMB, TCMB, 1e-10);
82 
83  ASSERT_DBL_NEAR_TOL(params.bcm_ks, 55.0, 1e-10);
84  ASSERT_DBL_NEAR_TOL(params.bcm_log10Mc, log10(1.2e14), 1e-10);
85  ASSERT_DBL_NEAR_TOL(params.bcm_etab, 0.5, 1e-10);
86 
87  ASSERT_FALSE(params.has_mgrowth);
88  ASSERT_EQUAL(params.nz_mgrowth, 0);
89  ASSERT_NULL(params.z_mgrowth);
90  ASSERT_NULL(params.df_mgrowth);
91 
92  /* these are defined in the code via some constants - going to test the total
93  Omega_n_rel
94  Omega_g
95  Omega_l
96  */
98  params.Omega_l + params.Omega_m +
99  params.Omega_g + params.Omega_n_rel +
100  params.Omega_n_mass + params.Omega_k,
101  1.,
102  1e-10);
103 }
double Omega_g
Definition: ccl_core.h:53
double * df_mgrowth
Definition: ccl_core.h:70
double * mnu
Definition: ccl_core.h:40
bool has_mgrowth
Definition: ccl_core.h:67
double Omega_b
Definition: ccl_core.h:20
double N_nu_rel
Definition: ccl_core.h:39
double H0
Definition: ccl_core.h:32
#define ASSERT_TRUE(real)
Definition: ctest.h:142
double Omega_n_mass
Definition: ccl_core.h:42
double n_s
Definition: ccl_core.h:50
double h
Definition: ccl_core.h:33
double w0
Definition: ccl_core.h:28
double Omega_l
Definition: ccl_core.h:63
double bcm_ks
Definition: ccl_core.h:59
double * z_mgrowth
Definition: ccl_core.h:69
double Neff
Definition: ccl_core.h:37
#define ASSERT_NULL(real)
Definition: ctest.h:136
double sum_nu_masses
Definition: ccl_core.h:41
double A_s
Definition: ccl_core.h:49
double sqrtk
Definition: ccl_core.h:23
#define TCMB
Definition: ccl_constants.h:95
double Omega_n_rel
Definition: ccl_core.h:43
double T_CMB
Definition: ccl_core.h:54
dictionary params
Definition: halomod_bm.py:27
#define ASSERT_DBL_NEAR_TOL(exp, real, tol)
Definition: ctest.h:152
double sigma8
Definition: ccl_core.h:62
double bcm_etab
Definition: ccl_core.h:58
double Omega_c
Definition: ccl_core.h:19
#define ASSERT_EQUAL(exp, real)
Definition: ctest.h:121
#define ASSERT_FALSE(real)
Definition: ctest.h:145
int nz_mgrowth
Definition: ccl_core.h:68
double bcm_log10Mc
Definition: ccl_core.h:57
double Omega_k
Definition: ccl_core.h:22
ccl_parameters ccl_parameters_create_flat_lcdm(double Omega_c, double Omega_b, double h, double norm_pk, double n_s, int *status)
Definition: ccl_core.c:505
double Omega_m
Definition: ccl_core.h:21
double z_star
Definition: ccl_core.h:64
double wa
Definition: ccl_core.h:29
void __ctest_parameters_read_write_run ( struct parameters_data data)

Definition at line 282 of file ccl_test_params.c.

References ASSERT_DBL_NEAR_TOL, ASSERT_EQUAL, ccl_parameters_create_flat_lcdm(), ccl_parameters_read_yaml(), ccl_parameters_write_yaml(), ccl_parameters::Omega_c, ccl_parameters::Omega_k, halomod_bm::params, ccl_parameters::w0, and ccl_parameters::wa.

282  {
283  char filename[32];
284  snprintf(filename, 32, "ccl_test_params_rw_XXXXXX");
285  mkstemp(filename);
286  ccl_parameters params = ccl_parameters_create_flat_lcdm(data->Omega_c, data->Omega_b, data->h, data->A_s, data->n_s, &(data->status));
287  int status = 0;
288  ccl_parameters_write_yaml(&params, filename, &status);
289  ASSERT_EQUAL(status, 0);
290  ccl_parameters params2 = ccl_parameters_read_yaml(filename, &status);
291  ASSERT_EQUAL(status, 0);
292  ASSERT_DBL_NEAR_TOL(params2.Omega_c, data->Omega_c, 1e-10);
293  ASSERT_DBL_NEAR_TOL(params2.Omega_k, 0.0, 1e-10);
294  ASSERT_DBL_NEAR_TOL(params2.w0, -1.0, 1e-10);
295  ASSERT_DBL_NEAR_TOL(params2.wa, 0.0, 1e-10);
296  remove(filename);
297 }
double w0
Definition: ccl_core.h:28
int * status
Definition: ccl_redshifts.c:41
ccl_parameters ccl_parameters_read_yaml(const char *filename, int *status)
Definition: ccl_core.c:624
void ccl_parameters_write_yaml(ccl_parameters *params, const char *filename, int *status)
Definition: ccl_core.c:531
dictionary params
Definition: halomod_bm.py:27
#define ASSERT_DBL_NEAR_TOL(exp, real, tol)
Definition: ctest.h:152
double Omega_c
Definition: ccl_core.h:19
#define ASSERT_EQUAL(exp, real)
Definition: ctest.h:121
double Omega_k
Definition: ccl_core.h:22
ccl_parameters ccl_parameters_create_flat_lcdm(double Omega_c, double Omega_b, double h, double norm_pk, double n_s, int *status)
Definition: ccl_core.c:505
double wa
Definition: ccl_core.h:29
void test_general ( ccl_parameters  params,
struct parameters_data data 
)

Definition at line 107 of file ccl_test_params.c.

References parameters_data::A_s, ccl_parameters::A_s, ASSERT_DBL_NEAR_TOL, ASSERT_EQUAL, ASSERT_FALSE, ASSERT_NULL, ASSERT_TRUE, parameters_data::bcm_etab, ccl_parameters::bcm_etab, parameters_data::bcm_ks, ccl_parameters::bcm_ks, parameters_data::bcm_log10Mc, ccl_parameters::bcm_log10Mc, CLIGHT_HMPC, ccl_parameters::df_mgrowth, parameters_data::h, ccl_parameters::h, ccl_parameters::H0, ccl_parameters::has_mgrowth, ccl_parameters::k_sign, parameters_data::n_s, ccl_parameters::n_s, parameters_data::Neff, ccl_parameters::Neff, ccl_parameters::nz_mgrowth, parameters_data::Omega_b, ccl_parameters::Omega_b, parameters_data::Omega_c, ccl_parameters::Omega_c, ccl_parameters::Omega_g, parameters_data::Omega_k, ccl_parameters::Omega_k, ccl_parameters::Omega_l, ccl_parameters::Omega_m, ccl_parameters::Omega_n_mass, ccl_parameters::Omega_n_rel, ccl_parameters::sigma8, sqrt(), ccl_parameters::sqrtk, ccl_parameters::T_CMB, TCMB, parameters_data::w0, ccl_parameters::w0, parameters_data::wa, ccl_parameters::wa, ccl_parameters::z_mgrowth, and ccl_parameters::z_star.

Referenced by __ctest_parameters_create_general_nu_list_run(), __ctest_parameters_create_general_nu_sum_equal_run(), __ctest_parameters_create_general_nu_sum_inverted_run(), and __ctest_parameters_create_general_nu_sum_run().

107  {
108  ASSERT_DBL_NEAR_TOL(params.Omega_c, data->Omega_c, 1e-10);
109  ASSERT_DBL_NEAR_TOL(params.Omega_b, data->Omega_b, 1e-10);
110  ASSERT_DBL_NEAR_TOL(params.Omega_m, data->Omega_b + data->Omega_c, 1e-10);
111  ASSERT_DBL_NEAR_TOL(params.Omega_k, data->Omega_k, 1e-10);
112  ASSERT_DBL_NEAR_TOL(params.sqrtk, sqrt(fabs(data->Omega_k))*data->h/CLIGHT_HMPC, 1e-10);
113  ASSERT_DBL_NEAR_TOL(params.k_sign, -1.0, 1e-10);
114  ASSERT_DBL_NEAR_TOL(params.w0, data->w0, 1e-10);
115  ASSERT_DBL_NEAR_TOL(params.wa, data->wa, 1e-10);
116  ASSERT_DBL_NEAR_TOL(params.H0, data->h * 100.0, 1e-10);
117  ASSERT_DBL_NEAR_TOL(params.h, data->h, 1e-10);
118  ASSERT_DBL_NEAR_TOL(params.A_s, data->A_s, 1e-10);
119  ASSERT_DBL_NEAR_TOL(params.n_s, data->n_s, 1e-10);
120  ASSERT_TRUE(isnan(params.sigma8));
121  ASSERT_TRUE(isnan(params.z_star));
122  ASSERT_DBL_NEAR_TOL(params.Neff, data->Neff, 1e-10);
123  ASSERT_DBL_NEAR_TOL(params.T_CMB, TCMB, 1e-10);
124 
125  ASSERT_DBL_NEAR_TOL(params.bcm_ks, data->bcm_ks, 1e-10);
126  ASSERT_DBL_NEAR_TOL(params.bcm_log10Mc, data->bcm_log10Mc, 1e-10);
127  ASSERT_DBL_NEAR_TOL(params.bcm_etab, data->bcm_etab, 1e-10);
128 
129  ASSERT_FALSE(params.has_mgrowth);
130  ASSERT_EQUAL(params.nz_mgrowth, 0);
131  ASSERT_NULL(params.z_mgrowth);
132  ASSERT_NULL(params.df_mgrowth);
133 
134  /* these are defined in the code via some constants - going to test the total
135  Omega_n_mass
136  Omega_n_rel
137  Omega_g
138  Omega_l
139  */
141  params.Omega_l + params.Omega_m + params.Omega_g + params.Omega_n_rel + params.Omega_n_mass + params.Omega_k,
142  1.,
143  1e-10);
144 
145 }
double Omega_g
Definition: ccl_core.h:53
double * df_mgrowth
Definition: ccl_core.h:70
bool has_mgrowth
Definition: ccl_core.h:67
double Omega_b
Definition: ccl_core.h:20
double H0
Definition: ccl_core.h:32
#define ASSERT_TRUE(real)
Definition: ctest.h:142
#define CLIGHT_HMPC
Definition: ccl_constants.h:33
double Omega_n_mass
Definition: ccl_core.h:42
double n_s
Definition: ccl_core.h:50
double h
Definition: ccl_core.h:33
double w0
Definition: ccl_core.h:28
double Omega_l
Definition: ccl_core.h:63
double bcm_ks
Definition: ccl_core.h:59
double * z_mgrowth
Definition: ccl_core.h:69
double Neff
Definition: ccl_core.h:37
#define ASSERT_NULL(real)
Definition: ctest.h:136
double A_s
Definition: ccl_core.h:49
Grid< NDIM, T > sqrt(Grid< NDIM, T > lhs)
Definition: grid.h:231
double sqrtk
Definition: ccl_core.h:23
#define TCMB
Definition: ccl_constants.h:95
double Omega_n_rel
Definition: ccl_core.h:43
double T_CMB
Definition: ccl_core.h:54
#define ASSERT_DBL_NEAR_TOL(exp, real, tol)
Definition: ctest.h:152
double sigma8
Definition: ccl_core.h:62
double bcm_etab
Definition: ccl_core.h:58
double Omega_c
Definition: ccl_core.h:19
#define ASSERT_EQUAL(exp, real)
Definition: ctest.h:121
#define ASSERT_FALSE(real)
Definition: ctest.h:145
int nz_mgrowth
Definition: ccl_core.h:68
double bcm_log10Mc
Definition: ccl_core.h:57
double Omega_k
Definition: ccl_core.h:22
double Omega_m
Definition: ccl_core.h:21
double z_star
Definition: ccl_core.h:64
double wa
Definition: ccl_core.h:29

Variable Documentation

static struct parameters_data __ctest_parameters_data
static

Definition at line 57 of file ccl_test_params.c.