CosmoFit.FRHuSawicki

class CosmoFit.FRHuSawicki(params)[source]

Bases: LCDM

f(R) gravity, Hu & Sawicki (2007) model.

f(R) gravity replaces the Ricci scalar R in the Einstein-Hilbert action with an arbitrary function f(R). The Hu-Sawicki form,

f(R) = -m^2 c1 (R/m^2)^n / (c2 (R/m^2)^n + 1),

is the standard benchmark model in the literature, tuned (via n and the present-day scalaron value f_R0) to satisfy Solar System tests through chameleon screening while still producing cosmic acceleration.

This class subclasses :class:`~cosmology.models.lcdm.LCDM` directly and does not override ``E``/``dEdz``/``Omega_de`` – its background expansion history *is* LCDM’s, unchanged. This is not a simplification or a placeholder bug: it is the actual physics of the standard “designer f(R)” construction, which builds f(R) to reproduce an assumed target background (usually LCDM’s) essentially exactly. ``f_R0``/``n`` are therefore invisible to any background/expansion-history probe (CC, BAO, SNe, Planck distance priors) – fitting them against those alone cannot meaningfully constrain them.

Growth of structure is where this model actually differs from LCDM, and is implemented here via mu(a, k): the standard chameleon-screened, scale- and time-dependent effective gravitational coupling for designer f(R) (Hu & Sawicki 2007; the general parametrized-mu framework of Pogosian & Silvestri 2008, arXiv:0709.0296),

mu(a,k) = 1 + (1/3) * Y^2 / (Y^2 + Mhat^2(a))

where Y = k * (c/100) / a is the wavenumber (k in h/Mpc) in units of H0/c, and Mhat^2(a) = M^2(a)/(H0/c)^2 is the scalaron’s (Hubble-units) mass-squared,

Mhat^2(a) = -u(a)^(n+2) / [(n+1) f_R0 u0^(n+1)]

with u(a) = Omega_m a^-3 + 4 Omega_de0, u0 = u(a=1), obtained from M^2 = 1/(3 f_RR) and this model’s own (LCDM) R(a) = 3 H0^2 u(a) and f_R(a) = f_R0 (u0/u(a))^(n+1) (the standard designer-f(R) closure, chosen so that f_R(a=1) = f_R0 exactly) – derived here by direct analytic differentiation rather than transcribed from a secondary source, and numerically self-consistent: k -> 0 gives mu -> 1 (no force on super-horizon scales), k -> infinity gives mu -> 4/3 (the well-known maximal f(R) enhancement), and f_R0 -> 0 gives mu -> 1 at any k (GR recovered as the scalaron mass diverges).

k is held at a fixed, documented fiducial pivot (GrowthCalculator defaults to k = 0.1 h/Mpc, a representative galaxy-survey RSD scale) rather than a free parameter – CosmoFit’s fsigma8 data here are single per-redshift points, not a P(k) shape, so a fixed representative scale is the honest ceiling of what a single-number-per-z comparison can use; a real k-by-k P(k) analysis would need the full scale dependence above, which mu(a,k) does provide if called directly at other k.

What this means in practice: f_R0/n are still inert for background-only fits (CC/BAO/SNe/Planck alone), but now genuinely shape the "fsigma8"/"s8" predictions – fit those datasets (alongside or instead of the background ones) to actually constrain them.

Notes

Adds f_R0 (present-day scalaron value, default -1e-6, typically negative and small – see the reference for viability bounds) and n (default 1) via EXTRA_PARAMS. Neither affects E(z) – see above; both now shape mu(a,k) and therefore growth-of-structure predictions.

References

Hu & Sawicki (2007), “Models of f(R) Cosmic Acceleration that Evade Solar-System Tests”, Phys. Rev. D 76, 064004, arXiv:0705.1158.

Pogosian & Silvestri (2008), “The pattern of growth in viable f(R) cosmologies”, Phys. Rev. D 77, 023503, arXiv:0709.0296.

Parameters:

params (CosmologyParameters)

__init__(params)
Parameters:

params (CosmologyParameters)

Methods

E(z)

H(z)

Omega_de(z)

Omega_matter(z)

Matter density at redshift z, in units of today's critical density -- i.e. the Omega_m (1+z)^3 term as it appears inside E(z)^2, before dividing by E(z)^2.

__init__(params)

dEdz(z)

mu(a[, k])

Chameleon-screened effective gravitational coupling G_eff(a,k)/G_N -- see the class docstring for the derivation.

plain_name()

This model's name as plain text: MODEL_NAME if it declares one, else the class name.

plot_label()

This model's name as it should appear in a figure legend or title -- MODEL_LABEL (LaTeX) if it declares one, else plain_name().

refresh()

Rebuild internal numerical tables after the underlying params object has been mutated in place (e.g. by params.update(theta) during an MCMC step).

Attributes

A_planck

A_s

EXTRA_PARAMS

Extra parameters this model adds beyond CosmologyParameters.

H0

MB

MODEL_LABEL

a LaTeX math string where the plain name is really a set of symbols (LCDM -> $\Lambda$CDM), None where the plain name is already what a reader should see (an acronym like CPL).

MODEL_NAME

Plain-text name for this model, for tables, JSON and log lines.

N_eff

Omega_b

Omega_de0

Omega_k

Omega_m

alpha

compute_rd

Whether rd is computed from the physical densities (rd_computed()) rather than read from the free rd parameter.

derive_sigma8

Whether sigma8 is derived from the Boltzmann code rather than read from the free sigma8 parameter.

f_R0

h

Reduced Hubble constant, H0 / 100.

ln1e10As

m_nu

n

n_s

omega_b_h2

Physical baryon density, Omega_b h^2 -- the combination BBN and the CMB actually constrain.

omega_cdm_h2

Physical cold dark matter density, Omega_c h^2 -- matter less baryons.

omega_m_h2

Physical matter density, Omega_m h^2.

rd

The sound horizon at the drag epoch [Mpc] that the BAO likelihoods divide by.

sigma8

Present-day sigma_8, the normalization every growth prediction is built on.

tau_reio

w0

wa