CLASS MANUAL
perturbations.h
Go to the documentation of this file.
1 
3 #ifndef __PERTURBATIONS__
4 #define __PERTURBATIONS__
5 
6 #include "thermodynamics.h"
7 #include "evolver_ndf15.h"
8 #include "evolver_rkck.h"
9 
10 #define _scalars_ ((ppt->has_scalars == _TRUE_) && (index_md == ppt->index_md_scalars))
11 #define _vectors_ ((ppt->has_vectors == _TRUE_) && (index_md == ppt->index_md_vectors))
12 #define _tensors_ ((ppt->has_tensors == _TRUE_) && (index_md == ppt->index_md_tensors))
13 
14 #define _set_source_(index) ppt->sources[index_md][index_ic * ppt->tp_size[index_md] + index][index_tau * ppt->k_size[index_md] + index_k]
15 
28 
29 enum tca_flags {tca_on, tca_off};
30 enum rsa_flags {rsa_off, rsa_on};
31 enum ufa_flags {ufa_off, ufa_on};
32 enum ncdmfa_flags {ncdmfa_off, ncdmfa_on};
33 
35 
41 
42 enum tca_method {first_order_MB,first_order_CAMB,first_order_CLASS,second_order_CRS,second_order_CLASS,compromise_CLASS};
43 enum rsa_method {rsa_null,rsa_MD,rsa_MD_with_reio,rsa_none};
44 enum ufa_method {ufa_mb,ufa_hu,ufa_CLASS,ufa_none};
45 enum ncdmfa_method {ncdmfa_mb,ncdmfa_hu,ncdmfa_CLASS,ncdmfa_none};
46 enum tensor_methods {tm_photons_only,tm_massless_approximation,tm_exact};
47 
49 
55 
59 };
60 
62 
64 
68 #define _SELECTION_NUM_MAX_ 100
69 enum selection_type {gaussian,tophat,dirac};
70 
72 
73 
75 
79 #define _MAX_NUMBER_OF_K_FILES_ 30
80 
82 
83 
84 
95 struct perturbs
96 {
103 
106  short has_cls;
108  short has_scalars;
109  short has_vectors;
110  short has_tensors;
112  short has_ad;
113  short has_bi;
114  short has_cdi;
115  short has_nid;
116  short has_niv;
118  /* perturbed recombination */
122  enum tensor_methods tensor_method;
140  short has_nc_rsd;
141  short has_nc_lens;
142  short has_nc_gr;
147  int l_lss_max;
148  double k_max_for_pk;
152  enum selection_type selection;
156  int switch_sw;
167  char scalar_titles[_MAXTITLESTRINGLENGTH_];
168  char vector_titles[_MAXTITLESTRINGLENGTH_];
169  char tensor_titles[_MAXTITLESTRINGLENGTH_];
185  double z_max_pk;
188 
192 
193  short has_cmb;
194  short has_lss;
197 
201 
205 
209 
214  int md_size;
217 
221 
229  int * ic_size;
232 
236 
237  short has_source_t;
238  short has_source_p;
263  short has_source_h;
268  /* remember that the temperature source function includes three
269  terms that we call 0,1,2 (since the strategy in class v > 1.7 is
270  to avoid the integration by part that would reduce the source to
271  a single term) */
309  int * tp_size;
312 
316 
317  int * k_size_cmb;
321  int * k_size_cl;
325  int * k_size;
329  double ** k;
331  double k_min;
332  double k_max;
335 
340 
341  int tau_size;
343  double * tau_sampling;
350  double * selection_tau_min;
351  double * selection_tau_max;
352  double * selection_tau;
356 
360 
361  double *** sources;
368 
372 
375  ErrorMsg error_message;
378 
379 };
380 
389 {
394  int l_max_g;
415  int l_max_ur;
416 /* perturbed recombination */
424  int l_max_dr;
426  int N_ncdm;
427  int* l_max_ncdm;
428  int* q_size_ncdm;
437  int pt_size;
439  double * y;
440  double * dy;
446 };
447 
448 
457 {
458 
464 
475  int mt_size;
478 
484 
485  double * pvecback;
486  double * pvecthermo;
487  double * pvecmetric;
488  struct perturb_vector * pv;
492  double delta_rho;
495  double delta_p;
496  double gw_source;
500  double tca_shear_g;
501  double tca_slip;
502  double rsa_delta_g;
503  double rsa_theta_g;
504  double rsa_delta_ur;
505  double rsa_theta_ur;
507  double * delta_ncdm;
508  double * theta_ncdm;
509  double * shear_ncdm;
511  double delta_m;
512  double theta_m;
514  double delta_rho_fld;
516  double S_fld;
523 
527 
528  short inter_mode;
534 
538 
543  int ap_size;
545  int * approx;
548 
552 
553  int max_l_max;
554  double * s_l;
557 
558 };
559 
567 
568  struct precision * ppr;
569  struct background * pba;
570  struct thermo * pth;
571  struct perturbs * ppt;
572  int index_md;
573  int index_ic;
574  int index_k;
575  double k;
578 };
579 
580 /*************************************************************************************************************/
581 /* @cond INCLUDE_WITH_DOXYGEN */
582 /*
583  * Boilerplate for C++
584  */
585 #ifdef __cplusplus
586 extern "C" {
587 #endif
588 
590  struct perturbs * ppt,
591  int index_md,
592  int index_ic,
593  int index_type,
594  double tau,
595  double * pvecsources
596  );
597 
598  int perturb_init(
599  struct precision * ppr,
600  struct background * pba,
601  struct thermo * pth,
602  struct perturbs * ppt
603  );
604 
605  int perturb_free(
606  struct perturbs * ppt
607  );
608 
610  struct precision * ppr,
611  struct background * pba,
612  struct thermo * pth,
613  struct perturbs * ppt
614  );
615 
617  struct precision * ppr,
618  struct background * pba,
619  struct thermo * pth,
620  struct perturbs * ppt
621  );
622  int perturb_get_k_list(
623  struct precision * ppr,
624  struct background * pba,
625  struct thermo * pth,
626  struct perturbs * ppt
627  );
628 
630  struct precision * ppr,
631  struct background * pba,
632  struct thermo * pth,
633  struct perturbs * ppt,
634  int index_md,
635  struct perturb_workspace * ppw
636  );
637 
639  struct perturbs * ppt,
640  int index_md,
641  struct perturb_workspace * ppw
642  );
643 
644  int perturb_solve(
645  struct precision * ppr,
646  struct background * pba,
647  struct thermo * pth,
648  struct perturbs * ppt,
649  int index_md,
650  int index_ic,
651  int index_k,
652  struct perturb_workspace * ppw
653  );
654 
656  struct precision * ppr,
657  struct background * pba,
658  struct thermo * pth,
659  struct perturbs * ppt,
660  int index_md,
661  double k,
662  struct perturb_workspace * ppw,
663  double tau_ini,
664  double tau_end,
665  int * interval_number,
666  int * interval_number_of
667  );
668 
670  struct precision * ppr,
671  struct background * pba,
672  struct thermo * pth,
673  struct perturbs * ppt,
674  int index_md,
675  double k,
676  struct perturb_workspace * ppw,
677  double tau_ini,
678  double tau_end,
679  double precision,
680  int interval_number,
681  int * interval_number_of,
682  double * interval_limit,
683  int ** interval_approx
684  );
685 
687  struct precision * ppr,
688  struct background * pba,
689  struct thermo * pth,
690  struct perturbs * ppt,
691  int index_md,
692  int index_ic,
693  double k,
694  double tau,
695  struct perturb_workspace * ppw,
696  int * pa_old
697  );
698 
700  struct perturb_vector * pv
701  );
702 
704  struct precision * ppr,
705  struct background * pba,
706  struct perturbs * ppt,
707  int index_md,
708  int index_ic,
709  double k,
710  double tau,
711  struct perturb_workspace * ppw
712  );
713 
715  struct precision * ppr,
716  struct background * pba,
717  struct thermo * pth,
718  struct perturbs * ppt,
719  int index_md,
720  double k,
721  double tau,
722  struct perturb_workspace * ppw
723  );
724 
725  int perturb_timescale(
726  double tau,
727  void * parameters_and_workspace,
728  double * timescale,
729  ErrorMsg error_message
730  );
731 
732  int perturb_einstein(
733  struct precision * ppr,
734  struct background * pba,
735  struct thermo * pth,
736  struct perturbs * ppt,
737  int index_md,
738  double k,
739  double tau,
740  double * y,
741  struct perturb_workspace * ppw
742  );
743 
745  struct precision * ppr,
746  struct background * pba,
747  struct thermo * pth,
748  struct perturbs * ppt,
749  int index_md,
750  double k,
751  double * y,
752  struct perturb_workspace * ppw
753  );
754 
755  int perturb_sources(
756  double tau,
757  double * pvecperturbations,
758  double * pvecderivs,
759  int index_tau,
760  void * parameters_and_workspace,
761  ErrorMsg error_message
762  );
763 
765  double tau,
766  double * y,
767  double * dy,
768  void * parameters_and_workspace,
769  ErrorMsg error_message
770  );
771 
772  int perturb_derivs(
773  double tau,
774  double * y,
775  double * dy,
776  void * parameters_and_workspace,
777  ErrorMsg error_message
778  );
779 
781  double * y,
782  void * parameters_and_workspace,
783  ErrorMsg error_message
784  );
785 
786  int perturb_rsa_delta_and_theta(
787  struct precision * ppr,
788  struct background * pba,
789  struct thermo * pth,
790  struct perturbs * ppt,
791  double k,
792  double * y,
793  double a_prime_over_a,
794  double * pvecthermo,
795  struct perturb_workspace * ppw
796  );
797 
798  int perturb_prepare_output_file(struct background * pba,
799  struct perturbs * ppt,
800  struct perturb_workspace * ppw,
801  int index_ikout,
802  int index_md);
803 
804  int perturb_prepare_output(struct background * pba,
805  struct perturbs * ppt);
806 
807 #ifdef __cplusplus
808 }
809 #endif
810 
811 /**************************************************************/
812 
813 #endif
814 /* @endcond */
short has_cdi
Definition: perturbations.h:114
int index_pt_pol3_g
Definition: perturbations.h:398
double * dy
Definition: perturbations.h:440
int index_pt_phi
Definition: perturbations.h:431
short has_nc_lens
Definition: perturbations.h:141
int index_pt_delta_ur
Definition: perturbations.h:411
enum possible_gauges gauge
Definition: perturbations.h:202
int store_perturbations
Definition: perturbations.h:163
int index_ic_niv
Definition: perturbations.h:226
double * y
Definition: perturbations.h:439
int index_pt_psi0_ncdm1
Definition: perturbations.h:425
Definition: background.h:25
int index_tp_theta_ncdm1
Definition: perturbations.h:298
short has_vectors
Definition: perturbations.h:109
double S_fld
Definition: perturbations.h:516
short has_source_theta_ur
Definition: perturbations.h:257
short has_source_phi
Definition: perturbations.h:259
int index_tp_delta_m
Definition: perturbations.h:276
short has_source_theta_ncdm
Definition: perturbations.h:258
double vector_source_v
Definition: perturbations.h:498
double tca_shear_g
Definition: perturbations.h:500
int perturb_workspace_free(struct perturbs *ppt, int index_md, struct perturb_workspace *ppw)
Definition: perturbations.c:2033
struct perturb_vector * pv
Definition: perturbations.h:488
int index_pt_l3_g
Definition: perturbations.h:393
int index_mt_h_prime_prime
Definition: perturbations.h:468
int index_tp_theta_m
Definition: perturbations.h:289
Definition: perturbations.h:388
int perturb_tca_slip_and_shear(double *y, void *parameters_and_workspace, ErrorMsg error_message)
Definition: perturbations.c:7860
double eisw_lisw_split_z
Definition: perturbations.h:161
int perturb_workspace_init(struct precision *ppr, struct background *pba, struct thermo *pth, struct perturbs *ppt, int index_md, struct perturb_workspace *ppw)
Definition: perturbations.c:1865
double selection_max_of_tau_max
Definition: perturbations.h:346
int index_pt_gw
Definition: perturbations.h:435
int * ic_size
Definition: perturbations.h:229
int index_mt_psi
Definition: perturbations.h:465
tca_method
Definition: perturbations.h:42
int switch_pol
Definition: perturbations.h:160
Definition: perturbations.h:58
double * scalar_perturbations_data[_MAX_NUMBER_OF_K_FILES_]
Definition: perturbations.h:175
short has_cl_cmb_temperature
Definition: perturbations.h:127
int l_scalar_max
Definition: perturbations.h:144
int index_k
Definition: perturbations.h:574
int l_max_g
Definition: perturbations.h:394
double selection_delta_tau
Definition: perturbations.h:348
int * q_size_ncdm
Definition: perturbations.h:428
short has_nid
Definition: perturbations.h:115
short has_source_phi_plus_psi
Definition: perturbations.h:261
short perturbations_verbose
Definition: perturbations.h:373
short has_ad
Definition: perturbations.h:112
double * selection_tau
Definition: perturbations.h:352
int index_tp_phi_prime
Definition: perturbations.h:301
int index_pt_perturbed_recombination_delta_temp
Definition: perturbations.h:417
double three_ceff2_ur
Definition: perturbations.h:182
short has_source_delta_dcdm
Definition: perturbations.h:243
int index_ic_cdi
Definition: perturbations.h:223
short has_niv
Definition: perturbations.h:116
int index_pt_theta_g
Definition: perturbations.h:391
short has_source_delta_b
Definition: perturbations.h:241
int perturb_print_variables(double tau, double *y, double *dy, void *parameters_and_workspace, ErrorMsg error_message)
Definition: perturbations.c:6292
int index_tp_theta_dcdm
Definition: perturbations.h:293
short has_nl_corrections_based_on_delta_m
Definition: perturbations.h:137
int index_pt_phi_prime_scf
Definition: perturbations.h:410
int l_max_pol_g
Definition: perturbations.h:399
Definition: perturbations.h:95
int index_mt_phi_prime
Definition: perturbations.h:466
short evolve_tensor_ncdm
Definition: perturbations.h:125
char scalar_titles[_MAXTITLESTRINGLENGTH_]
Definition: perturbations.h:167
double gw_source
Definition: perturbations.h:496
double ** k
Definition: perturbations.h:329
short has_source_theta_cdm
Definition: perturbations.h:252
int index_pt_delta_cdm
Definition: perturbations.h:402
int index_pt_pol1_g
Definition: perturbations.h:396
short has_cl_cmb_polarization
Definition: perturbations.h:128
int last_index_back
Definition: perturbations.h:530
double * s_l
Definition: perturbations.h:554
int index_mt_alpha_prime
Definition: perturbations.h:471
int index_pt_F0_dr
Definition: perturbations.h:423
int perturb_initial_conditions(struct precision *ppr, struct background *pba, struct perturbs *ppt, int index_md, int index_ic, double k, double tau, struct perturb_workspace *ppw)
Definition: perturbations.c:4047
short has_velocity_transfers
Definition: perturbations.h:134
Definition: thermodynamics.h:58
double rho_plus_p_shear
Definition: perturbations.h:494
int index_md
Definition: perturbations.h:572
int perturb_solve(struct precision *ppr, struct background *pba, struct thermo *pth, struct perturbs *ppt, int index_md, int index_ic, int index_k, struct perturb_workspace *ppw)
Definition: perturbations.c:2084
double * vector_perturbations_data[_MAX_NUMBER_OF_K_FILES_]
Definition: perturbations.h:176
int index_mt_eta_prime
Definition: perturbations.h:469
int perturb_sources(double tau, double *y, double *dy, int index_tau, void *parameters_and_workspace, ErrorMsg error_message)
Definition: perturbations.c:5821
int * tp_size
Definition: perturbations.h:309
double * tau_sampling
Definition: perturbations.h:343
double delta_rho_fld
Definition: perturbations.h:514
short has_lss
Definition: perturbations.h:194
short has_source_t
Definition: perturbations.h:237
double * selection_tau_max
Definition: perturbations.h:351
int index_pt_shear_ur
Definition: perturbations.h:413
int mt_size
Definition: perturbations.h:475
int index_pt_theta_fld
Definition: perturbations.h:407
enum tensor_methods tensor_method
Definition: perturbations.h:122
double * delta_ncdm
Definition: perturbations.h:507
short has_cl_lensing_potential
Definition: perturbations.h:130
int switch_dop
Definition: perturbations.h:159
double rsa_delta_g
Definition: perturbations.h:502
int index_pt_hv_prime
Definition: perturbations.h:432
int * k_size_cl
Definition: perturbations.h:321
int perturb_prepare_output(struct background *pba, struct perturbs *ppt)
Definition: perturbations.c:2475
#define _MAX_NUMBER_OF_K_FILES_
Definition: perturbations.h:79
double selection_width[_SELECTION_NUM_MAX_]
Definition: perturbations.h:154
int index_tp_theta_b
Definition: perturbations.h:291
double selection_mean[_SELECTION_NUM_MAX_]
Definition: perturbations.h:153
int * used_in_sources
Definition: perturbations.h:442
short has_nc_density
Definition: perturbations.h:139
int * index_k_output_values
Definition: perturbations.h:166
short has_source_delta_scf
Definition: perturbations.h:245
int l_max_dr
Definition: perturbations.h:424
int index_pt_delta_b
Definition: perturbations.h:400
short has_metricpotential_transfers
Definition: perturbations.h:135
int perturb_approximations(struct precision *ppr, struct background *pba, struct thermo *pth, struct perturbs *ppt, int index_md, double k, double tau, struct perturb_workspace *ppw)
Definition: perturbations.c:4718
double * pvecmetric
Definition: perturbations.h:487
int pt_size
Definition: perturbations.h:437
char tensor_titles[_MAXTITLESTRINGLENGTH_]
Definition: perturbations.h:169
int index_mt_gw_prime_prime
Definition: perturbations.h:472
int index_tp_t1
Definition: perturbations.h:273
int switch_sw
Definition: perturbations.h:156
int index_tp_phi
Definition: perturbations.h:300
int perturb_timescale(double tau, void *parameters_and_workspace, double *timescale, ErrorMsg error_message)
Definition: perturbations.c:4922
short has_source_p
Definition: perturbations.h:238
int index_tp_h
Definition: perturbations.h:304
int index_tp_delta_dcdm
Definition: perturbations.h:280
Definition: perturbations.h:456
short has_source_h_prime
Definition: perturbations.h:264
double * selection_function
Definition: perturbations.h:353
struct precision * ppr
Definition: perturbations.h:568
int index_tp_eta_prime
Definition: perturbations.h:307
int k_output_values_num
Definition: perturbations.h:164
possible_gauges
Definition: perturbations.h:56
tca_flags
Definition: perturbations.h:29
#define _SELECTION_NUM_MAX_
Definition: perturbations.h:68
double k_max
Definition: perturbations.h:332
int selection_num
Definition: perturbations.h:150
int perturb_indices_of_perturbs(struct precision *ppr, struct background *pba, struct thermo *pth, struct perturbs *ppt)
Definition: perturbations.c:528
double * pvecback
Definition: perturbations.h:485
int index_ap_ncdmfa
Definition: perturbations.h:542
int index_pt_theta_b
Definition: perturbations.h:401
int index_ap_tca
Definition: perturbations.h:539
double * tensor_perturbations_data[_MAX_NUMBER_OF_K_FILES_]
Definition: perturbations.h:177
short has_source_theta_m
Definition: perturbations.h:249
int index_mt_hv_prime_prime
Definition: perturbations.h:474
double * shear_ncdm
Definition: perturbations.h:509
int perturb_get_k_list(struct precision *ppr, struct background *pba, struct thermo *pth, struct perturbs *ppt)
Definition: perturbations.c:1243
int l_tensor_max
Definition: perturbations.h:146
int index_ic_ten
Definition: perturbations.h:227
int perturb_timesampling_for_sources(struct precision *ppr, struct background *pba, struct thermo *pth, struct perturbs *ppt)
Definition: perturbations.c:867
short inter_mode
Definition: perturbations.h:528
int size_vector_perturbation_data[_MAX_NUMBER_OF_K_FILES_]
Definition: perturbations.h:179
int index_tp_delta_scf
Definition: perturbations.h:282
int index_tp_theta_scf
Definition: perturbations.h:295
short has_scalars
Definition: perturbations.h:108
short has_source_theta_fld
Definition: perturbations.h:254
int tau_size
Definition: perturbations.h:341
int index_pt_pol0_g
Definition: perturbations.h:395
int index_pt_Gamma_fld
Definition: perturbations.h:408
short has_source_delta_ncdm
Definition: perturbations.h:248
int perturb_init(struct precision *ppr, struct background *pba, struct thermo *pth, struct perturbs *ppt)
Definition: perturbations.c:98
int index_mt_V_prime
Definition: perturbations.h:473
int index_tp_psi
Definition: perturbations.h:303
int index_pt_theta_ur
Definition: perturbations.h:412
double tca_slip
Definition: perturbations.h:501
short has_cmb
Definition: perturbations.h:193
int perturb_find_approximation_switches(struct precision *ppr, struct background *pba, struct thermo *pth, struct perturbs *ppt, int index_md, double k, struct perturb_workspace *ppw, double tau_ini, double tau_end, double precision, int interval_number, int *interval_number_of, double *interval_limit, int **interval_approx)
Definition: perturbations.c:2688
int index_tp_delta_b
Definition: perturbations.h:278
short has_source_delta_g
Definition: perturbations.h:240
short has_nc_rsd
Definition: perturbations.h:140
double Gamma_prime_fld
Definition: perturbations.h:517
ErrorMsg error_message
Definition: perturbations.h:375
int index_pt_eta
Definition: perturbations.h:430
int perturb_free(struct perturbs *ppt)
Definition: perturbations.c:454
short has_source_h
Definition: perturbations.h:263
double rho_plus_p_theta_fld
Definition: perturbations.h:515
int max_l_max
Definition: perturbations.h:553
int * approx
Definition: perturbations.h:545
short evolve_tensor_ur
Definition: perturbations.h:124
int ap_size
Definition: perturbations.h:543
int index_pt_V
Definition: perturbations.h:433
int index_tp_delta_ncdm1
Definition: perturbations.h:285
short has_tensors
Definition: perturbations.h:110
short has_cl_number_count
Definition: perturbations.h:131
double z_max_pk
Definition: perturbations.h:185
int index_pt_delta_g
Definition: perturbations.h:390
int index_md_vectors
Definition: perturbations.h:212
int index_tp_delta_dr
Definition: perturbations.h:283
double * selection_tau_min
Definition: perturbations.h:350
int index_pt_perturbed_recombination_delta_chi
Definition: perturbations.h:418
int index_pt_phi_scf
Definition: perturbations.h:409
struct background * pba
Definition: perturbations.h:569
short has_source_theta_dr
Definition: perturbations.h:256
double selection_min_of_tau_min
Definition: perturbations.h:345
int index_tp_delta_cdm
Definition: perturbations.h:279
short has_source_eta
Definition: perturbations.h:265
short has_source_phi_prime
Definition: perturbations.h:260
double k_output_values[_MAX_NUMBER_OF_K_FILES_]
Definition: perturbations.h:165
short has_source_delta_fld
Definition: perturbations.h:244
int index_md_tensors
Definition: perturbations.h:211
short has_source_delta_ur
Definition: perturbations.h:247
struct perturb_workspace * ppw
Definition: perturbations.h:576
short has_perturbations
Definition: perturbations.h:104
int * k_size_cmb
Definition: perturbations.h:317
int index_pt_gwdot
Definition: perturbations.h:436
int index_pt_theta_dcdm
Definition: perturbations.h:405
int perturb_total_stress_energy(struct precision *ppr, struct background *pba, struct thermo *pth, struct perturbs *ppt, int index_md, double k, double *y, struct perturb_workspace *ppw)
Definition: perturbations.c:5285
double delta_m
Definition: perturbations.h:511
short has_bi
Definition: perturbations.h:113
short has_source_theta_b
Definition: perturbations.h:251
short has_density_transfers
Definition: perturbations.h:133
double rsa_theta_g
Definition: perturbations.h:503
int index_tp_theta_cdm
Definition: perturbations.h:292
double delta_p
Definition: perturbations.h:495
double * theta_ncdm
Definition: perturbations.h:508
int index_ic_ad
Definition: perturbations.h:222
int index_ic_nid
Definition: perturbations.h:225
int last_index_thermo
Definition: perturbations.h:531
double delta_rho
Definition: perturbations.h:492
double k_max_for_pk
Definition: perturbations.h:148
int perturb_vector_free(struct perturb_vector *pv)
Definition: perturbations.c:4016
int index_mt_alpha
Definition: perturbations.h:470
double vector_source_pi
Definition: perturbations.h:497
enum selection_type selection
Definition: perturbations.h:152
short has_source_eta_prime
Definition: perturbations.h:266
int switch_lisw
Definition: perturbations.h:158
int index_pt_pol2_g
Definition: perturbations.h:397
int index_tp_phi_plus_psi
Definition: perturbations.h:302
int index_pt_l3_ur
Definition: perturbations.h:414
short has_cls
Definition: perturbations.h:106
int index_ic_bi
Definition: perturbations.h:224
int index_tp_theta_ur
Definition: perturbations.h:296
int index_tp_perturbed_recombination_delta_temp
Definition: perturbations.h:286
int index_tp_theta_dr
Definition: perturbations.h:297
short has_source_psi
Definition: perturbations.h:262
short has_nc_gr
Definition: perturbations.h:142
int index_pt_delta_fld
Definition: perturbations.h:406
short has_perturbed_recombination
Definition: perturbations.h:120
int size_tensor_perturbation_data[_MAX_NUMBER_OF_K_FILES_]
Definition: perturbations.h:180
int index_ic
Definition: perturbations.h:573
short has_cl_cmb_lensing_potential
Definition: perturbations.h:129
int number_of_vector_titles
Definition: perturbations.h:171
int index_tp_eta
Definition: perturbations.h:306
int index_tp_theta_g
Definition: perturbations.h:290
char vector_titles[_MAXTITLESTRINGLENGTH_]
Definition: perturbations.h:168
int N_ncdm
Definition: perturbations.h:426
int number_of_tensor_titles
Definition: perturbations.h:172
Definition: common.h:345
double * pvecthermo
Definition: perturbations.h:486
int switch_eisw
Definition: perturbations.h:157
double *** sources
Definition: perturbations.h:361
int perturb_find_approximation_number(struct precision *ppr, struct background *pba, struct thermo *pth, struct perturbs *ppt, int index_md, double k, struct perturb_workspace *ppw, double tau_ini, double tau_end, int *interval_number, int *interval_number_of)
Definition: perturbations.c:2599
int index_ap_rsa
Definition: perturbations.h:540
int index_tp_theta_fld
Definition: perturbations.h:294
int * k_size
Definition: perturbations.h:325
int l_max_ur
Definition: perturbations.h:415
short has_pk_matter
Definition: perturbations.h:132
int index_tp_delta_ur
Definition: perturbations.h:284
double three_cvis2_ur
Definition: perturbations.h:183
int index_pt_delta_dcdm
Definition: perturbations.h:404
int number_of_scalar_titles
Definition: perturbations.h:170
struct perturbs * ppt
Definition: perturbations.h:571
int index_ikout
Definition: perturbations.h:520
double theta_m
Definition: perturbations.h:512
int index_tp_delta_fld
Definition: perturbations.h:281
int index_md_scalars
Definition: perturbations.h:210
FILE * perturb_output_file
Definition: perturbations.h:519
double rsa_theta_ur
Definition: perturbations.h:505
int perturb_einstein(struct precision *ppr, struct background *pba, struct thermo *pth, struct perturbs *ppt, int index_md, double k, double tau, double *y, struct perturb_workspace *ppw)
Definition: perturbations.c:5092
short has_source_theta_g
Definition: perturbations.h:250
int index_pt_shear_g
Definition: perturbations.h:392
int index_mt_h_prime
Definition: perturbations.h:467
int index_pt_theta_cdm
Definition: perturbations.h:403
int index_tp_delta_g
Definition: perturbations.h:277
int index_tp_t0
Definition: perturbations.h:272
int size_scalar_perturbation_data[_MAX_NUMBER_OF_K_FILES_]
Definition: perturbations.h:178
int index_tp_perturbed_recombination_delta_chi
Definition: perturbations.h:287
int * l_max_ncdm
Definition: perturbations.h:427
int l_vector_max
Definition: perturbations.h:145
short has_source_theta_scf
Definition: perturbations.h:255
int index_tp_h_prime
Definition: perturbations.h:305
short has_source_delta_dr
Definition: perturbations.h:246
int perturb_sources_at_tau(struct perturbs *ppt, int index_md, int index_ic, int index_type, double tau, double *psource)
Definition: perturbations.c:45
double rho_plus_p_theta
Definition: perturbations.h:493
int perturb_derivs(double tau, double *y, double *dy, void *parameters_and_workspace, ErrorMsg error_message)
Definition: perturbations.c:6813
short has_source_delta_cdm
Definition: perturbations.h:242
int index_tp_p
Definition: perturbations.h:275
short has_source_theta_dcdm
Definition: perturbations.h:253
int md_size
Definition: perturbations.h:214
short has_source_delta_m
Definition: perturbations.h:239
int perturb_vector_init(struct precision *ppr, struct background *pba, struct thermo *pth, struct perturbs *ppt, int index_md, int index_ic, double k, double tau, struct perturb_workspace *ppw, int *pa_old)
Definition: perturbations.c:2979
int l_lss_max
Definition: perturbations.h:147
Definition: perturbations.h:57
double k
Definition: perturbations.h:575
int index_ap_ufa
Definition: perturbations.h:541
double rsa_delta_ur
Definition: perturbations.h:504
double k_min
Definition: perturbations.h:331
struct thermo * pth
Definition: perturbations.h:570
Definition: perturbations.h:566
int index_tp_t2
Definition: perturbations.h:274