Cosmological Distances and Times

Cosmological Distances and Times — Calculates the cosmological distances and related quantities.

Synopsis

struct              NcDistance;
struct              NcDistanceClass;
gdouble             (*NcDistanceFunc0)                  (NcDistance *dist,
                                                         NcHICosmo *cosmo);
gdouble             (*NcDistanceFunc1)                  (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);
gdouble             nc_distance_Omega_k                 (NcDistance *dist,
                                                         NcHICosmo *cosmo);
gdouble             nc_distance_acoustic_scale          (NcDistance *dist,
                                                         NcHICosmo *cosmo);
gdouble             nc_distance_bao_A_scale             (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);
gdouble             nc_distance_bao_r_Dv                (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);
void                nc_distance_clear                   (NcDistance **dist);
gdouble             nc_distance_comoving                (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);
gdouble             nc_distance_comoving_a0             (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);
gdouble             nc_distance_comoving_a0_lss         (NcDistance *dist,
                                                         NcHICosmo *cosmo);
gdouble             nc_distance_comoving_lss            (NcDistance *dist,
                                                         NcHICosmo *cosmo);
gdouble             nc_distance_conformal_lookback_time (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);
gdouble             nc_distance_conformal_time          (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);
gdouble             nc_distance_conformal_time_mks_scale
                                                        (NcDistance *dist,
                                                         NcHICosmo *cosmo);
gdouble             nc_distance_cosmic_time             (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);
gdouble             nc_distance_cosmic_time_mks_scale   (NcDistance *dist,
                                                         NcHICosmo *cosmo);
gdouble             nc_distance_curvature               (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);
gdouble             nc_distance_decoupling_redshift     (NcDistance *dist,
                                                         NcHICosmo *cosmo);
gdouble             nc_distance_dilation_scale          (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);
gdouble             nc_distance_drag_redshift           (NcDistance *dist,
                                                         NcHICosmo *cosmo);
void                nc_distance_free                    (NcDistance *dist);
NcmMSetFunc *       nc_distance_func0_new               (NcDistance *dist,
                                                         NcDistanceFunc0 f0);
NcmMSetFunc *       nc_distance_func1_new               (NcDistance *dist,
                                                         NcDistanceFunc1 f1);
gdouble             nc_distance_hubble                  (NcDistance *dist,
                                                         NcHICosmo *cosmo);
gdouble             nc_distance_lookback_time           (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);
gdouble             nc_distance_luminosity              (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);
gdouble             nc_distance_luminosity_hef          (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z_he,
                                                         gdouble z_cmb);
gdouble             nc_distance_modulus                 (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);
gdouble             nc_distance_modulus_hef             (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z_he,
                                                         gdouble z_cmb);
NcDistance *        nc_distance_new                     (gdouble z_f);
void                nc_distance_prepare                 (NcDistance *dist,
                                                         NcHICosmo *cosmo);
void                nc_distance_prepare_if_needed       (NcDistance *dist,
                                                         NcHICosmo *cosmo);
NcDistance *        nc_distance_ref                     (NcDistance *dist);
gdouble             nc_distance_shift_parameter         (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);
gdouble             nc_distance_shift_parameter_lss     (NcDistance *dist,
                                                         NcHICosmo *cosmo);
gdouble             nc_distance_sound_horizon           (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);
gdouble             nc_distance_transverse              (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);

Object Hierarchy

  GObject
   +----NcDistance

Properties

  "zf"                       gdouble               : Read / Write / Construct

Description

This object implements several distances used in cosmology, here we have the following definitions.

The Hubble scale is simply defined as the inverse of the Hubble function \begin{equation}\label{eq:def:DH} D_H(z) = \frac{c}{H(z)}, \qquad D_{H0} = \frac{c}{H_0}. \end{equation} where $c$ is the speed of light [ncm_c_c()], $H(z)$ is the Hubble function and $H_0 \equiv H(0)$ is the Hubble parameter. The comoving distance $D_c$ is defined as \begin{equation}\label{eq:def:Dc} D_c(z) = \int_0^z\frac{1}{E}, \end{equation} where $z$ is the redshift and $E$ is the Hubble function over the Hubble parameter, i.e., $$E \equiv \frac{H(z)}{H_0}.$$ Note that both quantities are adimensional, in other words, one can think them as in units of the Hubble scale today.

The curvature distance is defined as \begin{equation}\label{eq:def:Dk} D_k(z) = \sqrt{\vert\Omega_{k0}\vert}D_c(z), \end{equation} where $\Omega_{k0}$ is the value of the curvature today [nc_hicosmo_Omega_k()].

The transverse distance $D_t$ and its derivative with respect to $z$ are given by \begin{equation}\label{eq:def:Dt} D_t(z) = \frac{\sinh\left(\sqrt{\Omega_{k0}}D_c(z)\right)}{\sqrt{\Omega_{k0}}}, \qquad \frac{dD_t}{dz}(z) = \frac{\cosh\left(\sqrt{\Omega_{k0}}D_c(z)\right)}{E(z)}. \end{equation} Using the definition above we have the luminosity distance simply \begin{equation}\label{eq:def:Dl} D_l = (1+z)D_t(z). \end{equation} Then, the distance modulus is defined by the following expression \begin{equation}\label{eq:def:mu} \mu(z) = 5\log_{10}(D_l(z)) + 25, \end{equation} where $\log_{10}$ represents the logarithm in the decimal base. Note that the distance modulus is usually defined as $$5\log_{10}(D_{H0}D_l(z)/\text{pc}) - 5,$$ where $\text{pc}$ is parsec [ncm_c_pc()], thus, this differs from our definition by a factor of $5\log_{10}(D_{H0}/\text{Mpc})$, where $\text{Mpc}$ is mega parsec [ncm_c_Mpc()].

Details

struct NcDistance

struct NcDistance;

struct NcDistanceClass

struct NcDistanceClass {
};

NcDistanceFunc0 ()

gdouble             (*NcDistanceFunc0)                  (NcDistance *dist,
                                                         NcHICosmo *cosmo);

NcDistanceFunc1 ()

gdouble             (*NcDistanceFunc1)                  (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);

nc_distance_Omega_k ()

gdouble             nc_distance_Omega_k                 (NcDistance *dist,
                                                         NcHICosmo *cosmo);

nc_distance_acoustic_scale ()

gdouble             nc_distance_acoustic_scale          (NcDistance *dist,
                                                         NcHICosmo *cosmo);

Calculate the acoustic scale l_A = pi D_T (z_lss) / r (z_lss).

dist :

a NcDistance.

cosmo :

a NcHICosmo.

Returns :

FIXME

nc_distance_bao_A_scale ()

gdouble             nc_distance_bao_A_scale             (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);

Bao 'A' scaleD_v(z) sqrt(Omega_m) / z -- (arXiv:astro-ph/0501171)

dist :

a NcDistance.

cosmo :

a NcHICosmo.

z :

the redshift $z$.

Returns :

FIXME

nc_distance_bao_r_Dv ()

gdouble             nc_distance_bao_r_Dv                (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);

r(z_d) / D_v(z) -- (arXiv:0705.3323).

dist :

a NcDistance.

cosmo :

a NcHICosmo.

z :

the redshift $z$.

Returns :

FIXME

nc_distance_clear ()

void                nc_distance_clear                   (NcDistance **dist);

FIXME

dist :

a NcDistance.

nc_distance_comoving ()

gdouble             nc_distance_comoving                (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);

Calculates the comoving distance $D_c$ as defined in Eq. $\eqref{eq:def:Dc}$.

dist :

a NcDistance.

cosmo :

a NcHICosmo.

z :

the redshift $z$.

Returns :

$D_c(z)$.

nc_distance_comoving_a0 ()

gdouble             nc_distance_comoving_a0             (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);

FIXME

dist :

a NcDistance.

cosmo :

a NcHICosmo.

z :

the redshift $z$.

Returns :

FIXME

nc_distance_comoving_a0_lss ()

gdouble             nc_distance_comoving_a0_lss         (NcDistance *dist,
                                                         NcHICosmo *cosmo);

Calculate the d_c (z_lss) / a0

dist :

a NcDistance.

cosmo :

a NcHICosmo.

Returns :

FIXME

nc_distance_comoving_lss ()

gdouble             nc_distance_comoving_lss            (NcDistance *dist,
                                                         NcHICosmo *cosmo);

Calculate the d_c (z_lss)

dist :

a NcDistance.

cosmo :

a NcHICosmo.

Returns :

FIXME

nc_distance_conformal_lookback_time ()

gdouble             nc_distance_conformal_lookback_time (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);

nc_distance_conformal_time ()

gdouble             nc_distance_conformal_time          (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);

nc_distance_conformal_time_mks_scale ()

gdouble             nc_distance_conformal_time_mks_scale
                                                        (NcDistance *dist,
                                                         NcHICosmo *cosmo);

nc_distance_cosmic_time ()

gdouble             nc_distance_cosmic_time             (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);

nc_distance_cosmic_time_mks_scale ()

gdouble             nc_distance_cosmic_time_mks_scale   (NcDistance *dist,
                                                         NcHICosmo *cosmo);

nc_distance_curvature ()

gdouble             nc_distance_curvature               (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);

Calculate the curvature distance $D_k$ defined in Eq. $\eqref{eq:def:Dk}$.

dist :

a NcDistance.

cosmo :

a NcHICosmo.

z :

the redshift $z$.

Returns :

$D_k(z)$.

nc_distance_decoupling_redshift ()

gdouble             nc_distance_decoupling_redshift     (NcDistance *dist,
                                                         NcHICosmo *cosmo);

Decoupling redshift (arXiv:astro-ph/9510117).

dist :

a NcDistance.

cosmo :

a NcHICosmo.

Returns :

FIXME

nc_distance_dilation_scale ()

gdouble             nc_distance_dilation_scale          (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);

Dilation scale D_v(z) -- (arXiv:astro-ph/0501171)

dist :

a NcDistance.

cosmo :

a NcHICosmo.

z :

the redshift $z$.

Returns :

FIXME

nc_distance_drag_redshift ()

gdouble             nc_distance_drag_redshift           (NcDistance *dist,
                                                         NcHICosmo *cosmo);

Drag redshift (arXiv:astro-ph/9510117).

dist :

a NcDistance.

cosmo :

a NcHICosmo.

Returns :

FIXME

nc_distance_free ()

void                nc_distance_free                    (NcDistance *dist);

FIXME

dist :

a NcDistance.

nc_distance_func0_new ()

NcmMSetFunc *       nc_distance_func0_new               (NcDistance *dist,
                                                         NcDistanceFunc0 f0);

dist :

FIXME

f0 :

FIXME. [scope notified]

Returns :

FIXME. [transfer full]

nc_distance_func1_new ()

NcmMSetFunc *       nc_distance_func1_new               (NcDistance *dist,
                                                         NcDistanceFunc1 f1);

dist :

FIXME

f1 :

FIXME. [scope notified]

Returns :

FIXME. [transfer full]

nc_distance_hubble ()

gdouble             nc_distance_hubble                  (NcDistance *dist,
                                                         NcHICosmo *cosmo);

Calculate the curvature scale today as defined in Eq $\eqref{eq:def:DH}$ in units of mega parsec $\text{Mpc}$ [ncm_c_Mpc()].

dist :

a NcDistance.

cosmo :

a NcHICosmo.

Returns :

$D_{H0}$.

nc_distance_lookback_time ()

gdouble             nc_distance_lookback_time           (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);

nc_distance_luminosity ()

gdouble             nc_distance_luminosity              (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);

Calculates the luminosity distance $D_l$ defined in Eq. $\eqref{eq:def:Dl}$.

dist :

a NcDistance.

cosmo :

a NcHICosmo.

z :

the redshift $z$.

Returns :

$D_l(z)$.

nc_distance_luminosity_hef ()

gdouble             nc_distance_luminosity_hef          (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z_he,
                                                         gdouble z_cmb);

Calculates the luminosity distance $D_l$ corrected to our local frame.

dist :

a NcDistance.

cosmo :

a NcHICosmo.

z_he :

the redshift $z_{he}$ in our local frame.

z_cmb :

the redshift $z_{CMB}$ in the CMB frame.

Returns :

$D_l(z_{hef},z_{CMB})$.

nc_distance_modulus ()

gdouble             nc_distance_modulus                 (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);

Calculates the distance modulus $\mu$ defined in Eq. $\eqref{eq:def:mu}$.

dist :

a NcDistance.

cosmo :

a NcHICosmo.

z :

the redshift $z$.

Returns :

$\mu(z)$.

nc_distance_modulus_hef ()

gdouble             nc_distance_modulus_hef             (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z_he,
                                                         gdouble z_cmb);

Calculates the distance modulus using the frame corrected luminosity distance [nc_distance_luminosity_hef()].

dist :

a NcDistance.

cosmo :

a NcHICosmo.

z_he :

the redshift $z_{he}$ in our local frame.

z_cmb :

the redshift $z_{CMB}$ in the CMB frame.

Returns :

$\mu(z_{hef},z_{CMB})$.

nc_distance_new ()

NcDistance *        nc_distance_new                     (gdouble z_f);

Creates a new NcDistance object optimized to perform distance calculations to redshift up to $z_f$.

z_f :

final redshift $z_f$.

Returns :

a new NcDistance.

nc_distance_prepare ()

void                nc_distance_prepare                 (NcDistance *dist,
                                                         NcHICosmo *cosmo);

FIXME

dist :

a NcDistance.

cosmo :

a NcHICosmo.

nc_distance_prepare_if_needed ()

void                nc_distance_prepare_if_needed       (NcDistance *dist,
                                                         NcHICosmo *cosmo);

FIXME

dist :

FIXME,

cosmo :

FIXME

nc_distance_ref ()

NcDistance *        nc_distance_ref                     (NcDistance *dist);

FIXME

dist :

a NcDistance.

Returns :

FIXME. [transfer full]

nc_distance_shift_parameter ()

gdouble             nc_distance_shift_parameter         (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);

Calculate the shift parameter $R$ defined in Eq. $\eqref{eq:def:R}$.

dist :

a NcDistance.

cosmo :

a NcHICosmo.

z :

the redshift $z$.

Returns :

$R(z)$.

nc_distance_shift_parameter_lss ()

gdouble             nc_distance_shift_parameter_lss     (NcDistance *dist,
                                                         NcHICosmo *cosmo);

Calculate the shift parameter $R$ [nc_distance_shift_parameter()] at the decoupling redshift $z_\star$ [nc_distance_decoupling_redshift()].

dist :

a NcDistance

cosmo :

a NcHICosmo

Returns :

$R(z_\star)$.

nc_distance_sound_horizon ()

gdouble             nc_distance_sound_horizon           (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);

Calculate the sound horizon integrating numerically the hubble function.

dist :

a NcDistance.

cosmo :

a NcHICosmo.

z :

the redshift $z$.

Returns :

FIXME

nc_distance_transverse ()

gdouble             nc_distance_transverse              (NcDistance *dist,
                                                         NcHICosmo *cosmo,
                                                         gdouble z);

Calculates the transverse distance $D_t$ defined in Eq. $\eqref{eq:def:Dt}$.

dist :

a NcDistance.

cosmo :

a NcHICosmo.

z :

the redshift $z$.

Returns :

$D_T(z)$.

Property Details

The "zf" property

  "zf"                       gdouble               : Read / Write / Construct

Final cached redshift.

Allowed values: >= 0

Default value: 10