11 #include <gsl/gsl_sf_hyperg.h>
17 void init_omega_nu(
_omega_nu *
const omnu,
const double MNu[],
const double a0,
const double HubbleParam,
const double tcmb0) {}
28 void init_hybrid_nu(
_hybrid_nu *
const hybnu,
const double mnu[],
const double vcrit,
const double light,
const double nu_crit_time,
const double kBtnu){ }
48 static inline double radgrow(
double aa,
double omegar) {
49 return omegar + 1.5 * 1. * aa;
53 static inline double growth(
double aa,
double omegam) {
54 double omegal = 1-omegam;
55 return aa * gsl_sf_hyperg_2F1(1./3, 1, 11./6, -omegal/omegam*pow(aa,3));
66 assert_true(fabs(
CP.
OmegaG/5.045e-5 - 1) < 2e-3);
73 assert_true(fabs(
CP.
Hubble - 0.1) < 1e-6);
78 assert_true(fabs(1.0 -
F_Omega(&
CP, 1.5)) < 1e-1);
79 assert_true(fabs(1.0 -
F_Omega(&
CP, 2)) < 1e-2);
97 const struct CMUnitTest tests[] = {
100 return cmocka_run_group_tests_mpi(tests, NULL, NULL);
double GrowthFactor(Cosmology *CP, double astart, double aend)
double hubble_function(const Cosmology *CP, double a)
void init_cosmology(Cosmology *CP, const double TimeBegin, const struct UnitSystem units)
double F_Omega(Cosmology *CP, double a)
void init_omega_nu(_omega_nu *const omnu, const double MNu[], const double a0, const double HubbleParam, const double tcmb0)
static double growth(double aa, double omegam)
double get_omega_nu_nopart(const _omega_nu *omnu, const double a)
void init_hybrid_nu(_hybrid_nu *const hybnu, const double mnu[], const double vcrit, const double light, const double nu_crit_time, const double kBtnu)
double get_omega_nu(const _omega_nu *omnu, const double a)
static void test_cosmology(void **state)
static double radgrow(double aa, double omegar)
void setup_cosmology(Cosmology *CP, double Omega0, double OmegaBaryon, double H0)
struct UnitSystem get_unitsystem(double UnitLength_in_cm, double UnitMass_in_g, double UnitVelocity_in_cm_per_s)