6 #define POWER_NU_TOL 1.0E-3 16 double mnu0[3], mnu1[3], mnu2[3];
34 double mnu0[3] = {0.04, 0., 0.};
35 double mnu1[3] = {0.05, 0.01, 0.};
36 double mnu2[3] = {0.03, 0.02, 0.04};
38 data->mnu0[0] = mnu0[0];
39 data->mnu1[0] = mnu1[0];
40 data->mnu2[0] = mnu2[0];
42 data->mnu0[1] = mnu0[1];
43 data->mnu1[1] = mnu1[1];
44 data->mnu2[1] = mnu2[1];
46 data->mnu0[2] = mnu0[2];
47 data->mnu1[2] = mnu1[2];
48 data->mnu2[2] = mnu2[2];
50 double Omega_v[3]={0.7, 0.7, 0.7};
51 double w_0[3] = {-1.0, -0.9, -0.9};
52 double w_a[3] = {0.0, 0.0, 0.1};
54 for(
int i=0;i<3;i++) {
55 data->Omega_v[i] = Omega_v[i];
56 data->w_0[i] = w_0[i];
57 data->w_a[i] = w_a[i];
70 double mnu0[3], mnu1[3], mnu2[3];
88 double mnu0[3] = {0.04, 0., 0.};
89 double mnu1[3] = {0.05, 0.01, 0.};
90 double mnu2[3] = {0.03, 0.02, 0.04};
92 data->mnu0[0] = mnu0[0];
93 data->mnu1[0] = mnu1[0];
94 data->mnu2[0] = mnu2[0];
96 data->mnu0[1] = mnu0[1];
97 data->mnu1[1] = mnu1[1];
98 data->mnu2[1] = mnu2[1];
100 data->mnu0[2] = mnu0[2];
101 data->mnu1[2] = mnu1[2];
102 data->mnu2[2] = mnu2[2];
104 double Omega_v[3]={0.7, 0.7, 0.7};
105 double w_0[3] = {-1.0, -0.9, -0.9};
106 double w_a[3] = {0.0, 0.0, 0.1};
108 for(
int i=0;i<3;i++) {
109 data->Omega_v[i] = Omega_v[i];
110 data->w_0[i] = w_0[i];
111 data->w_a[i] = w_a[i];;
123 while((fgets(ch,
sizeof(ch),f))!=NULL) {
133 char fname[256], fname_nl[256], str[1024];
141 i_model==1 ? data->
mnu0 : i_model==2 ? data->
mnu1 : data->
mnu2,
143 data->
h, data->
A_s, data->
n_s,-1,-1,-1,-1,NULL,NULL, &status);
148 sprintf(fname,
"./tests/benchmark/model%d_pk_nu.txt",i_model);
151 fprintf(stderr,
"Error opening file %s\n",fname);
156 double k=0.,pk_bench=0.,pk_ccl,err, k_h, pk_h;
161 stat=fscanf(f,
"%le %le\n",&k_h, &pk_h);
163 fprintf(stderr,
"Error reading file %s, line %d\n",fname,i);
167 pk_bench=pk_h/
pow(data->
h,3);
171 err=fabs(pk_ccl/pk_bench-1);
185 char fname_nl[256], str[1024];
195 data->
Neff, data->
mnu0, data-> mnu_type,
196 data->
w_0[i_model-1], data->
w_a[i_model-1],
197 data->
h, data->
A_s, data->
n_s,-1,-1,-1,-1,NULL,NULL, &status);
198 }
else if (i_model==2){
201 data->
w_0[i_model-1], data->
w_a[i_model-1],
202 data->
h, data->
A_s, data->
n_s,-1,-1,-1,-1,NULL,NULL, &status);
203 }
else if (i_model==3){
206 data->
w_0[i_model-1], data->
w_a[i_model-1],
207 data->
h, data->
A_s, data->
n_s,-1,-1,-1,-1,NULL,NULL, &status);
213 sprintf(fname_nl,
"./tests/benchmark/model%d_pk_nl_nu.txt",i_model);
214 f_nl=fopen(fname_nl,
"r");
216 fprintf(stderr,
"Error opening file %s\n",fname_nl);
221 double k=0.,pk_bench=0.,pk_ccl,err, k_h, pk_h;
225 for(i=0;i<nk_nl;i++) {
226 stat=fscanf(f_nl,
"%le %le\n",&k_h, &pk_h);
228 fprintf(stderr,
"Error reading file %s, line %d\n",fname_nl,i);
232 pk_bench=pk_h/
pow(data->
h,3);
236 err=fabs(pk_ccl/pk_bench-1);
matter_power_spectrum_t matter_power_spectrum_method
double ccl_nonlin_matter_power(ccl_cosmology *cosmo, double k, double a, int *status)
#define CTEST_SETUP(sname)
#define CTEST_DATA(sname)
ccl_mnu_convention mnu_type
ccl_mnu_convention mnu_type
ccl_cosmology * ccl_cosmology_create(ccl_parameters params, ccl_configuration config)
double ccl_linear_matter_power(ccl_cosmology *cosmo, double k, double a, int *status)
void ccl_cosmology_free(ccl_cosmology *cosmo)
static int linecount(FILE *f)
#define ASSERT_DBL_NEAR_TOL(exp, real, tol)
static void compare_power_nu(int i_model, struct power_nu_data *data)
static void compare_power_nu_nl(int i_model, struct power_nu_nl_data *data)
const ccl_configuration default_config
float pow(float base, unsigned long int exp)
#define ASSERT_NOT_NULL(real)
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)
#define CTEST2(sname, tname)