Skip to content

Commit

Permalink
Merge aea6276 into 85b00e1
Browse files Browse the repository at this point in the history
  • Loading branch information
giordano committed Dec 16, 2019
2 parents 85b00e1 + aea6276 commit a847b2e
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 16 deletions.
21 changes: 5 additions & 16 deletions src/Cosmology.jl
Original file line number Diff line number Diff line change
Expand Up @@ -146,31 +146,20 @@ hubble_time(c::AbstractCosmology, z) = hubble_time0(c)/E(c,z)

# distances

Z(c::AbstractCosmology, z::Real; kws...) =
Z(c::AbstractCosmology, z::Real, ::Nothing; kws...) =
QuadGK.quadgk(a->1/a2E(c,a), scale_factor(z), 1; kws...)[1]
Z(c::AbstractCosmology, z₁::Real, z₂::Real; kws...) =
QuadGK.quadgk(a->1/a2E(c,a), scale_factor(z₂), scale_factor(z₁); kws...)[1]

comoving_radial_dist(c::AbstractCosmology, z; kws...) = hubble_dist0(c)*Z(c, z; kws...)
comoving_radial_dist(c::AbstractCosmology, z₁, z₂; kws...) = hubble_dist0(c)*Z(c, z₁, z₂; kws...)
comoving_radial_dist(c::AbstractCosmology, z₁, z₂=nothing; kws...) = hubble_dist0(c)*Z(c, z₁, z₂; kws...)

comoving_transverse_dist(c::AbstractFlatCosmology, z; kws...) =
comoving_radial_dist(c, z; kws...)
comoving_transverse_dist(c::AbstractFlatCosmology, z₁, z₂; kws...) =
comoving_transverse_dist(c::AbstractFlatCosmology, z₁, z₂=nothing; kws...) =
comoving_radial_dist(c, z₁, z₂; kws...)
function comoving_transverse_dist(c::AbstractOpenCosmology, z; kws...)
sqrtok = sqrt(c.Ω_k)
hubble_dist0(c)*sinh(sqrtok*Z(c, z; kws...))/sqrtok
end
function comoving_transverse_dist(c::AbstractOpenCosmology, z₁, z₂; kws...)
function comoving_transverse_dist(c::AbstractOpenCosmology, z₁, z₂=nothing; kws...)
sqrtok = sqrt(c.Ω_k)
hubble_dist0(c)*sinh(sqrtok*Z(c, z₁, z₂; kws...))/sqrtok
end
function comoving_transverse_dist(c::AbstractClosedCosmology, z; kws...)
sqrtok = sqrt(abs(c.Ω_k))
hubble_dist0(c)*sin(sqrtok*Z(c,z; kws...))/sqrtok
end
function comoving_transverse_dist(c::AbstractClosedCosmology, z₁, z₂; kws...)
function comoving_transverse_dist(c::AbstractClosedCosmology, z₁, z₂=nothing; kws...)
sqrtok = sqrt(abs(c.Ω_k))
hubble_dist0(c)*sin(sqrtok*Z(c, z₁, z₂; kws...))/sqrtok
end
Expand Down
8 changes: 8 additions & 0 deletions test/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ integrand(c, z) = 4pi*ustrip(comoving_volume_element(c, z))
c = cosmology(h=0.7, OmegaM=0.3, OmegaR=0)
@test angular_diameter_dist(c,1,rtol=dist_rtol) 1651.9145u"Mpc" rtol = dist_rtol
@test angular_diameter_dist(c,1,2,rtol=dist_rtol) 625.3444u"Mpc" rtol = dist_rtol
@test angular_diameter_dist(c,pi,rtol=dist_rtol) angular_diameter_dist(c,0,pi,rtol=dist_rtol) rtol = dist_rtol
@test comoving_radial_dist(c,1,rtol=dist_rtol) 3303.829u"Mpc" rtol = dist_rtol
@test comoving_volume(c,1,rtol=dist_rtol) 151.0571u"Gpc^3" rtol = dist_rtol
@test quadgk(z -> integrand(c, z), 0, 2.5)[1] ustrip(comoving_volume(c, 2.5))
Expand All @@ -28,6 +29,7 @@ end
c = cosmology(h=0.7, OmegaK=0.1, OmegaM=0.3, OmegaR=0)
@test angular_diameter_dist(c,1,rtol=dist_rtol) 1619.9588u"Mpc" rtol = dist_rtol
@test angular_diameter_dist(c,1,2,rtol=dist_rtol) 598.9118u"Mpc" rtol = dist_rtol
@test angular_diameter_dist(c,pi,rtol=dist_rtol) angular_diameter_dist(c,0,pi,rtol=dist_rtol) rtol = dist_rtol
@test comoving_radial_dist(c,1,rtol=dist_rtol) 3209.784u"Mpc" rtol = dist_rtol
@test comoving_volume(c,1,rtol=dist_rtol) 140.0856u"Gpc^3" rtol = dist_rtol
@test quadgk(z -> integrand(c, z), 0, 2.5)[1] ustrip(comoving_volume(c, 2.5))
Expand All @@ -43,6 +45,7 @@ end
c = cosmology(h=0.7, OmegaK=-0.1, OmegaM=0.3, OmegaR=0)
@test angular_diameter_dist(c,1,rtol=dist_rtol) 1686.5272u"Mpc" rtol = dist_rtol
@test angular_diameter_dist(c,1,2,rtol=dist_rtol) 655.6019u"Mpc" rtol = dist_rtol
@test angular_diameter_dist(c,pi,rtol=dist_rtol) angular_diameter_dist(c,0,pi,rtol=dist_rtol) rtol = dist_rtol
@test comoving_radial_dist(c,1,rtol=dist_rtol) 3408.937u"Mpc" rtol = dist_rtol
@test comoving_volume(c,1,rtol=dist_rtol) 163.8479u"Gpc^3" rtol = dist_rtol
@test quadgk(z -> integrand(c, z), 0, 2.5)[1] ustrip(comoving_volume(c, 2.5))
Expand All @@ -58,6 +61,7 @@ end
c = cosmology(h=0.7, OmegaM=0.3, OmegaR=0, w0=-0.9, wa=0.1)
@test angular_diameter_dist(c,1,rtol=dist_rtol) 1612.0585u"Mpc" rtol = dist_rtol
@test angular_diameter_dist(c,1,2,rtol=dist_rtol) 607.6802u"Mpc" rtol = dist_rtol
@test angular_diameter_dist(c,pi,rtol=dist_rtol) angular_diameter_dist(c,0,pi,rtol=dist_rtol) rtol = dist_rtol
@test comoving_radial_dist(c,1,rtol=dist_rtol) 3224.1169u"Mpc" rtol = dist_rtol
@test comoving_volume(c,1,rtol=dist_rtol) 140.3851u"Gpc^3" rtol = dist_rtol
@test quadgk(z -> integrand(c, z), 0, 2.5)[1] ustrip(comoving_volume(c, 2.5))
Expand All @@ -73,6 +77,7 @@ end
c = cosmology(h=0.7, OmegaK=0.1, OmegaM=0.3, OmegaR=0, w0=-0.9, wa=0.1)
@test angular_diameter_dist(c,1,rtol=dist_rtol) 1588.0181u"Mpc" rtol = dist_rtol
@test angular_diameter_dist(c,1,2,rtol=dist_rtol) 585.4929u"Mpc" rtol = dist_rtol
@test angular_diameter_dist(c,pi,rtol=dist_rtol) angular_diameter_dist(c,0,pi,rtol=dist_rtol) rtol = dist_rtol
@test comoving_radial_dist(c,rtol=dist_rtol,1) 3147.6227u"Mpc" rtol = dist_rtol
@test comoving_volume(c,1,rtol=dist_rtol) 132.0466u"Gpc^3" rtol = dist_rtol
@test quadgk(z -> integrand(c, z), 0, 2.5)[1] ustrip(comoving_volume(c, 2.5))
Expand All @@ -88,6 +93,7 @@ end
c = cosmology(h=0.7, OmegaK=-0.1, OmegaM=0.3, OmegaR=0, w0=-0.9, wa=0.1)
@test angular_diameter_dist(c,1,rtol=dist_rtol) 1637.5993u"Mpc" rtol = dist_rtol
@test angular_diameter_dist(c,1,2,rtol=dist_rtol) 632.5829u"Mpc" rtol = dist_rtol
@test angular_diameter_dist(c,pi,rtol=dist_rtol) angular_diameter_dist(c,0,pi,rtol=dist_rtol) rtol = dist_rtol
@test comoving_radial_dist(c,1,rtol=dist_rtol) 3307.9932u"Mpc" rtol = dist_rtol
@test comoving_volume(c,1,rtol=dist_rtol) 149.8301u"Gpc^3" rtol = dist_rtol
@test quadgk(z -> integrand(c, z), 0, 2.5)[1] ustrip(comoving_volume(c, 2.5))
Expand All @@ -104,11 +110,13 @@ end
c = cosmology(h=0.7, OmegaM=big(0.3), OmegaR=0)
@test angular_diameter_dist(c,1,rtol=dist_rtol) 1651.9145u"Mpc" rtol = dist_rtol
@test angular_diameter_dist(c,1,2,rtol=dist_rtol) 625.3444u"Mpc" rtol = dist_rtol
@test angular_diameter_dist(c,pi,rtol=dist_rtol) angular_diameter_dist(c,0,pi,rtol=dist_rtol) rtol = dist_rtol
@test comoving_volume_element(c, big(1.41)) 3.4030879e10u"Mpc^3" rtol = dist_rtol
# Test that FlatWCDM works with non-Float64 (BigFloat in this example)
c = cosmology(h=big(0.7), OmegaM=0.3, OmegaR=0, w0=-0.9, wa=0.1)
@test angular_diameter_dist(c,1,rtol=dist_rtol) 1612.0585u"Mpc" rtol = dist_rtol
@test angular_diameter_dist(c,1,2,rtol=dist_rtol) 607.6802u"Mpc" rtol = dist_rtol
@test angular_diameter_dist(c,pi,rtol=dist_rtol) angular_diameter_dist(c,0,pi,rtol=dist_rtol) rtol = dist_rtol
@test comoving_volume_element(c, big(1.41)) 3.1378625e10u"Mpc^3" rtol = dist_rtol
end

Expand Down

0 comments on commit a847b2e

Please sign in to comment.