def testDistanceModulusAtZero(self): """ Test to make sure that the distance modulus is set to zero if the distance modulus method returns a negative number """ universe = CosmologyObject() ztest = [0.0, 1.0, 2.0, 0.0, 3.0] mm = universe.distanceModulus(redshift=ztest) self.assertEqual(mm[0], 0.0) self.assertEqual(mm[3], 0.0) self.assertEqual(mm[1], 5.0*np.log10(universe.luminosityDistance(ztest[1])) + 25.0) self.assertEqual(mm[2], 5.0*np.log10(universe.luminosityDistance(ztest[2])) + 25.0) self.assertEqual(mm[4], 5.0*np.log10(universe.luminosityDistance(ztest[4])) + 25.0)
def testDistanceModulusAtZero(self): """ Test to make sure that the distance modulus is set to zero if the distance modulus method returns a negative number """ universe = CosmologyObject() ztest = [0.0, 1.0, 2.0, 0.0, 3.0] mm = universe.distanceModulus(redshift=ztest) self.assertEqual(mm[0], 0.0) self.assertEqual(mm[3], 0.0) self.assertEqual( mm[1], 5.0 * np.log10(universe.luminosityDistance(ztest[1])) + 25.0) self.assertEqual( mm[2], 5.0 * np.log10(universe.luminosityDistance(ztest[2])) + 25.0) self.assertEqual( mm[4], 5.0 * np.log10(universe.luminosityDistance(ztest[4])) + 25.0)
def testLuminosityDistance(self): """ Test the calculation of the luminosity distance """ H0 = 73.0 for Om0 in numpy.arange(start=0.15, stop=0.56, step=0.2): for Ok0 in numpy.arange(start=-0.1, stop=0.11, step=0.2): for w0 in numpy.arange(start=-1.1, stop=-0.85, step=0.2): for wa in numpy.arange(start=-0.1, stop=0.11, step=0.2): universe = CosmologyObject(H0=H0, Om0=Om0, Ok0=Ok0, w0=w0, wa=wa) sqrtkCurvature = numpy.sqrt( numpy.abs(universe.OmegaCurvature())) * universe.H( ) / self.speedOfLight Og0 = universe.OmegaPhotons() Onu0 = universe.OmegaNeutrinos() Ode0 = universe.OmegaDarkEnergy() for zz in numpy.arange(start=0.1, stop=4.2, step=2.0): luminosityControl = universe.luminosityDistance( redshift=zz) comovingDistance = self.speedOfLight * scipy.integrate.quad( comovingDistanceIntegrand, 0.0, zz, args=(H0, Om0, Ode0, Og0, Onu0, w0, wa))[0] if universe.OmegaCurvature() < 0.0: nn = sqrtkCurvature * comovingDistance nn = numpy.sin(nn) luminosityTest = (1.0 + zz) * nn / sqrtkCurvature elif universe.OmegaCurvature() > 0.0: nn = sqrtkCurvature * comovingDistance nn = numpy.sinh(nn) luminosityTest = (1.0 + zz) * nn / sqrtkCurvature else: luminosityTest = (1.0 + zz) * comovingDistance self.assertAlmostEqual( luminosityControl / luminosityTest, 1.0, 4)
def testLuminosityDistance(self): """ Test the calculation of the luminosity distance """ H0 = 73.0 for Om0 in np.arange(start=0.15, stop=0.56, step=0.2): for Ok0 in np.arange(start=-0.1, stop=0.11, step=0.2): for w0 in np.arange(start=-1.1, stop=-0.85, step=0.2): for wa in np.arange(start=-0.1, stop=0.11, step=0.2): universe = CosmologyObject(H0=H0, Om0=Om0, Ok0=Ok0, w0=w0, wa=wa) sqrtkCurvature = \ np.sqrt(np.abs(universe.OmegaCurvature()))*universe.H()/self.speedOfLight Og0 = universe.OmegaPhotons() Onu0 = universe.OmegaNeutrinos() Ode0 = universe.OmegaDarkEnergy() for zz in np.arange(start=0.1, stop=4.2, step=2.0): luminosityControl = universe.luminosityDistance(redshift=zz) comovingDistance = \ self.speedOfLight*scipy.integrate.quad(comovingDistanceIntegrand, 0.0, zz, args=(H0, Om0, Ode0, Og0, Onu0, w0, wa))[0] if universe.OmegaCurvature() < 0.0: nn = sqrtkCurvature*comovingDistance nn = np.sin(nn) luminosityTest = (1.0+zz)*nn/sqrtkCurvature elif universe.OmegaCurvature() > 0.0: nn = sqrtkCurvature*comovingDistance nn = np.sinh(nn) luminosityTest = (1.0+zz)*nn/sqrtkCurvature else: luminosityTest = (1.0+zz)*comovingDistance self.assertAlmostEqual(luminosityControl/luminosityTest, 1.0, 4)