PyCos
1.x
|
00001 // 00002 // File: Cosmology.h 00003 // Package: C++ implementation of cosmology part for PyGL 00004 // Copyright: the GNU General Public License 00005 // Description: Cosmology class and other routines supporting PyGL 00006 // 00007 00008 00009 class Cosmology { 00010 00011 private: 00012 double omega_m; 00013 double omega_x; 00014 double omega_k; 00015 double w_x; 00016 double h; 00018 public: 00019 00024 Cosmology(double o_m=0.260, double omega_x=0.740, \ 00025 double omega_k=0.0, double w_x=-1.0, double h=0.72); 00029 ~Cosmology(); 00030 00035 double D_C(double z1, double z2); 00036 00041 double D_M(double z1, double z2); 00042 00047 double ang_dist(double z); 00048 00053 double ang_dist_z1_z2(double z1, double z2); 00054 00059 double lum_dist(double z); 00060 00066 double unit_comoving_volume(double z, void *params); 00067 00072 double comoving_volume_z1_z2(double z1, double z2); 00073 00078 double comoving_volume_0_z(double z); 00079 00083 double lookback_time(double z); 00084 00088 double age(double z); 00089 00093 double age_now(void); 00094 00098 double conformal_time(double z); 00099 }; 00100 00101 double E_z(double x, void *params); 00102 double time_integral(double x, void *params); 00103 00109 double schechter(double L, double phi_star, double alpha, double L_star); 00110 00116 double number_schechter(double L, double phi_star, double alpha, double L_star); 00117 00123 double total_number_schechter(double phi_star, double alpha); 00124 00130 double luminosity_schechter(double L, double phi_star, double alpha, double L_star); 00131 00137 double total_luminosity_schechter(double phi_star, double alpha, double L_star); 00138 00145 double double_schechter(double L, double phi_star1, double alpha1, \ 00146 double L_star1, double phi_star2, double alpha2, double L_star2); 00147 00153 double number_double_schechter(double L, double phi_star1, double alpha1, double L_star1, \ 00154 double phi_star2, double alpha2, double L_star2); 00155 00161 double luminosity_double_schechter(double L, double phi_star1, double alpha1, double L_star1, \ 00162 double phi_star2, double alpha2, double L_star2); 00163 00169 double total_luminosity_double_schechter(double phi_star1, double alpha1, double L_star1, \ 00170 double phi_star2, double alpha2, double L_star2);