Two-point correlator models (models)

Compute Fourier-space two-point correlator models.

Cartesian multipoles

The standard Kaiser model of plane-parallel power spectrum multipoles is implemented,

\[\begin{split}\begin{align*} P_0(k, z) &= \left[ b_1(z)^2 + \frac{2}{3} b(z, k) f(z) + \frac{1}{5} f(z)^2 \right] P_\mathrm{m}(k, z) \,, \\ P_2(k, z) &= \left[ \frac{4}{3} b(z, k) f(z) + \frac{4}{7} f(z)^2 \right] P_\mathrm{m}(k, z) \,, \\ P_4(k, z) &= \frac{8}{35} f(z)^2 P_\mathrm{m}(k, z) \,, \end{align*}\end{split}\]

with shot noise, window convolution and the integral constraint taken into account [1] [2]; here \(f(z)\) is the linear growth rate, \(b(z, k) = b_1(z) + f_\textrm{NL} \Delta b(k, z)\) is the scale-dependent linear bias including the modification \(\Delta b\) due to local primordial non-Gaussianity \(f_\textrm{NL}\) (see scale_dependence), and \(P_{\textrm{m}}\) is the matter power spectrum.

Spherical correlator

Spherical 2-point correlators are computed from coupling coefficients (see couplings) as a sum of the signal part

\[\left\langle \delta_\mu \delta_\nu \right\rangle = \sum_\sigma M_{\mu\sigma} M^*_{\nu\sigma} \left[ b_*(k_\sigma) \Phi_{\mu\sigma} + f_* \Upsilon_{\mu\sigma} \right] \left[ b_*(k_\sigma) \Phi_{\nu\sigma} + f_* \Upsilon_{\nu\sigma} \right] \kappa_\sigma^{-1} P_{\textrm{m}*}(k_\sigma) \,,\]

and the shot noise part

\[\left\langle \epsilon_\mu \epsilon_\nu \right\rangle = \frac{1}{\bar{n}} M_{\mu\nu} \int \operatorname{d}\!r r^2 (w^2\phi)(r) j_\mu(r) j_\nu(r) \,,\]

where \(*\) denotes quantities computed at the fiducial epoch \(z_*\), \(\kappa\) denotes the normalisation coefficients (see discretisation), \(\bar{n}\) is the mean number density and \(j_\mu(r) \equiv j_{\ell_\mu}(k_{\ell_\mu n_\mu} r)\).

CartesianMultipoles(wavenumbers, redshift[, ...])

Power spectrum multipoles predicted for a given cosmological model and survey specifications.

SphericalCorrelator(disc, redshift[, cosmo, ...])

Spherical two-point correlator predicted for a given cosmological model and survey specifications.


class harmonia.reader.models.CartesianMultipoles(wavenumbers, redshift, cosmo=None, power_spectrum=None, growth_rate=None, mask_multipoles=None, window_multipoles=None)[source]

Power spectrum multipoles predicted for a given cosmological model and survey specifications.

Parameters:
  • wavenumbers (float, array_like) – Wavenumbers at which the model is evaluated.

  • redshift (float) – Redshift at which the model is evaluated.

  • cosmo (nbodykit.cosmology.cosmology.Cosmology or None, optional) – Baseline cosmological model used to produce the transfer function and power spectrum and to compute the linear growth rate. This can be subsequently updated when calling convolved_power_multipoles(). If None (default) and not subsequently updated, primordial non-Gaussianity modifications cannot be computed.

  • power_spectrum (callable or None, optional) – Baseline linear matter power spectrum model at redshift. Ignored when cosmo is provided. This cannot be None (default) unless it is subsequently updated when calling convolved_power_multipoles().

  • growth_rate (float or None, optional) – Baseline linear growth rate at redshift. If None (default), this is set by cosmo if it is provided; otherwise this is set to 0. This can be subsequently updated when calling two_point_correlator() or correlator_matrix().

  • mask_multipoles (numpy.ndarray or None, optional) – Survey mask multipoles given at sampled separations (default is None). Orders and sampled separations must be sorted.

  • window_multipoles (CartesianArray or None, optional) – Survey window multipoles given at sampled wavenumbers (default is None). If provided, integral constraint corrections are applied. Orders and sampled wavenumbers must be sorted.

Variables:
  • mask_multipoles (numpy.ndarray or None) – Survey mask multipoles given at sampled separations.

  • window_multipoles (CartesianArray or None) – Survey window multipoles given at sampled wavenumbers.

  • cosmo (nbodykit.cosmology.cosmology.Cosmology or None) – Cosmological model.

  • matter_power_spectrum (callable) – Matter power spectrum at redshift.

  • growth_rate (float) – Linear growth rate at redshift.

  • attrs (dict) – Any other attributes inherited from input parameters.

convolved_power_multipoles(orders, b_1=None, f_nl=None, nbar=None, contrast=None, tracer_p=1.0, update_model_kwargs=None)[source]

Compute the convolved power spectrum multipoles.

Parameters:
  • orders (list of int) – Orders of the power spectrum multipoles. Values only allowed from the set {0, 2, 4}.

  • b_1 (float or None, optional) – Scale-independent linear bias at input redshift. If None (default), no tracer bias is assumed relative to the matter power spectrum.

  • f_nl (float or None, optional) – Local primordial non-Gaussianity (default is None).

  • nbar (float or None, optional) – Mean particle number density (in cubic \(h\)/Mpc). If None (default), shot noise is neglected.

  • contrast (float or None, optional) – If not None (default), this adds additional shot noise 1 / (contrast * nbar) from a FKP-style random catalogue.

  • tracer_p (float, optional) – Tracer-dependent parameter for bias modulation by f_nl (default is 1.).

  • update_model_kwargs (dict or None, optional) – Parameters cosmo, power_spectrum and growth_rate passed as keyword arguments to update the baseline cosmological model.

Returns:

convolved_power – Convolved power spectrum multipoles.

Return type:

CartesianArray

static kaiser_factors(ell, b, f)[source]

Return the standard Kaiser power spectrum multipole as a multipole of the matter power spectrum.

Notes

Linear bias b and growth rate f must be specified at the same redshift.

Parameters:
  • ell (int) – Order of the multipole in {0, 2, 4}.

  • b (float, array_like) – Linear bias of the tracer particles.

  • f (float or None) – Linear growth rate.

Returns:

Standard Kaiser factor to multiply by the matter power spectrum.

Return type:

float, array_like

class harmonia.reader.models.SphericalCorrelator(disc, redshift, cosmo=None, power_spectrum=None, growth_rate=None, couplings=None, coupling_disc=None, survey_specs=None, cosmo_specs=None, ini_shot_noise=True, comm=None)[source]

Spherical two-point correlator predicted for a given cosmological model and survey specifications.

Notes

Summation is performed over spherical modes to compute the correlator model. Owing to mode couplings, sums need to be truncated at higher mode wavenumbers than wavenumbers under consideration to ensure convergence. We suggest the user trial discrete spectra with different upper wavenumber cutoffs for the couplings and use radialised_power() to gauge convergence. In the future, an automated facility for this purpose may be provided.

Parameters:
  • disc (DiscreteSpectrum) – Discrete spectrum associated with the correlator model.

  • redshift (float) – Redshift at which the model is evaluated.

  • cosmo (nbodykit.cosmology.cosmology.Cosmology or None, optional) – Baseline cosmological model used to produce the transfer function (and the power spectrum and linear growth rate if these are not set but required in model evaluation). This can be subsequently updated when calling two_point_correlator() or correlator_matrix(). If None (default) and not subsequently updated, primordial non-Gaussianity modifications cannot be computed.

  • power_spectrum (callable or None, optional) – Baseline linear matter power spectrum model at redshift. Ignored when cosmo is provided; otherwise this cannot be None (default) unless it is subsequently updated when calling two_point_correlator() or correlator_matrix().

  • growth_rate (float or None, optional) – Baseline linear growth rate at redshift. If None (default), this is set by cosmo (if provided); otherwise this is set to zero. This can be subsequently updated when calling two_point_correlator() or correlator_matrix().

  • couplings (Couplings or None, optional) – Baseline coupling coefficients consistent with the underlying cosmological model cosmo. If None (default), this is compiled from survey_specs and cosmo_specs if either is provided; otherwise all couplings are assumed to be trivial (i.e. angular and radial couplings are Kronecker deltas). This can be subsequently updated when calling two_point_correlator() or correlator_matrix().

  • coupling_disc (Couplings or None, optional) – Discrete spectrum for the baseline coupling coefficients (default is None). This must be provided if couplings is None and needs to be compiled. To ensure sum convergence in the correlator model, the upper wavenumber cutoff for this spectrum may need to be higher than that of the correlator model, i.e. disc.

  • survey_specs (dict{str: callable or None} or None, optional) – Survey specification functions to be passed as survey_specs to Couplings when couplings are compiled. Also used in shot noise calculations.

  • cosmo_specs (dict{str: callable, bool or None} or None, optional) – Baseline cosmological specification functions to be passed as cosmo_specs to Couplings when couplings are compiled. If not None (default), it must be a dictionary holding keys listed in Couplings: if callable values are passed to the keys 'chi_of_z', 'clustering_evolution', 'growth_evolution' or 'differential_AP_distortion', they should be consistent with the current cosmo; otherwise True can be passed here and their values are then derived from cosmo (which must then be set), or unspecified keys assume None values; also note some keys are linked and values must be simultaneously provided. This can be subsequently updated when calling two_point_correlator() or correlator_matrix().

  • ini_shot_noise (bool, optional) – If True (default), shot noise integrals are evaluated upon initialisation.

  • comm (mpi4py.MPI.Comm or None, optional) – MPI communicator. If None (default), no multiprocessing is invoked.

Variables:

See also

Couplings

More details related to couplings and especially the cosmo_specs parameter.

two_point_correlator(mu, nu, b_1, f_nl=None, nbar=None, contrast=None, tracer_p=1.0, update_model_kwargs=None)[source]

Compute two-point correlator for given triplet indices.

Parameters:
  • mu, nu (tuple(int, int, int)) – Coefficient triplet index.

  • b_1 (float) – Scale-independent linear bias at input redshift.

  • f_nl (float or None, optional) – Local primordial non-Gaussianity (default is None).

  • nbar (float or None, optional) – Mean particle number density (in cubic \(h\)/Mpc). If None (default), shot noise is neglected.

  • contrast (float or None, optional) – If not None (default), this adds additional shot noise 1 / (contrast * nbar) from a FKP-style random catalogue.

  • tracer_p (float, optional) – Tracer-dependent parameter for bias modulation by f_nl (default is 1.).

  • update_model_kwargs (dict or None, optional) – Parameters cosmo, power_spectrum, growth_rate and cosmo_specs passed as keyword arguments to update the baseline cosmological model. If cosmo_specs is passed (including None values), radial and RSD couplings will be updated.

Returns:

Spherical Fourier 2-point function value for given triplet indices. If cosmo_specs is passed, radial and RSD couplings will be updated.

Return type:

complex

correlator_matrix(pivot, b_1=None, f_nl=None, nbar=None, contrast=None, tracer_p=1.0, diagonal=False, shot_noise_only=False, update_model_kwargs=None, report_progress=False)[source]

Compute two-point correlator matrix for some vetorisation of all spectrum modes.

Parameters:
  • pivot ({‘natural’, ‘spectral’}) – Pivot order for vectorisation.

  • b_1 (float) – Scale-independent linear bias at input redshift.

  • f_nl (float or None, optional) – Local primordial non-Gaussianity (default is None).

  • nbar (float or None, optional) – Mean particle number density (in cubic \(h\)/Mpc). If None (default), shot noise is neglected.

  • contrast (float or None, optional) – If not None (default), this adds additional shot noise 1 / (contrast * nbar) from a FKP-style random catalogue.

  • tracer_p (float, optional) – Tracer-dependent parameter for bias modulation by f_nl (default is 1.).

  • diagonal (bool, optional) – If True (default is False), return only the diagonal matrix part.

  • shot_noise_only (bool, optional) – If True (default is False), return only the shot noise correlator matrix.

  • update_model_kwargs (dict or None, optional) – Parameters cosmo, power_spectrum, growth_rate and cosmo_specs passed as keyword arguments to update the baseline cosmological model. If cosmo_specs is passed (including None values), radial and RSD couplings will be updated.

  • report_progress (bool, optional) – If True (default is False), progress status will be reported.

Returns:

Two-point correlator matrix vectorised by the given pivot.

Return type:

complex numpy.ndarray

See also

SphericalArray

radialised_power(b_1=None, f_nl=None, nbar=None, contrast=None, tracer_p=1.0, shot_noise_only=False)[source]

Compute the radialised spherical mode power.

Notes

This relies on correlator_matrix() with diagonal=True. Results are only meaningful in the radialisation limit when all coupling coefficients are trivial (i.e. Kronecker deltas) so that spherical modes are mutually independent [3]. Mode power is averaged over equivalent spherical orders and suitably normalised so that it matches the Cartesian power spectrum for a full-sky statistically isotripoc map.

Parameters:
  • b_1 (float) – Scale-independent linear bias at input redshift.

  • f_nl (float or None, optional) – Local primordial non-Gaussianity (default is None).

  • nbar (float or None, optional) – Mean particle number density (in cubic \(h\)/Mpc). If None (default), shot noise is neglected.

  • contrast (float or None, optional) – If not None (default), this adds additional shot noise 1 / (contrast * nbar) from a FKP-style random catalogue.

  • tracer_p (float, optional) – Tracer-dependent parameter for bias modulation by f_nl (default is 1.).

  • shot_noise_only (bool, optional) – If True (default is False), return only the shot noise power.

Returns:

Radialised spherical mode powers at wavenumbers with mode indices.

Return type:

dict

See also

mode_power