CosmoFit.FQExponential

class CosmoFit.FQExponential(params)[source]

Bases: Cosmology

f(Q) gravity, exponential model.

f(Q) modified gravity replaces the Ricci scalar R in the Einstein-Hilbert action with an arbitrary function f of the non-metricity scalar Q (symmetric teleparallel gravity; GR is recovered exactly at f(Q)=Q). This is a genuine modification of the gravitational field equations, not a dark-energy fluid bolted onto standard GR the way LCDM/wCDM/CPL/JBP/BA/GCG all are.

This implements the specific model of Anagnostopoulos, Basilakos & Saridakis (2021):

f(Q) = Q * exp(lambda * Q0 / Q), Q = 6 H^2, Q0 = 6 H0^2

with lambda the model’s only new quantity. Crucially, lambda is not an independent free parameter: their eq. (10) fixes it from Omega_m via the Lambert W function, so this model has exactly as many free parameters as flat LCDM (H0, Omega_m) – only Omega_m needs to be given/fit; lambda is derived automatically. Flat only – Omega_k is ignored, since the Q=6H^2 identity this model is built on is itself a flat-FLRW result (see the reference below for the curved-space case, not implemented here).

The Friedmann equation (their eq. 9, radiation dropped – as with every other model in this library) is transcendental, not closed-form:

(E^2 - 2*lambda) * exp(lambda / E^2) = Omega_m * (1+z)^3

E(z) solves this via a fixed number of vectorized Newton iterations (the function is smooth and monotonic in E^2 over the physical range, so this converges to machine precision well before the iteration budget is used). dEdz comes from implicit differentiation of the same relation – closed-form, no extra root-finding – so background.q() / plots.deceleration() work exactly like every other model, not as some numerical-fallback special case.

Omega_de(z) is presented, as is standard for this model class, as an effective/geometric dark-energy density E(z)^2 - Omega_m*(1+z)^3 – there is no actual second fluid here, the accelerated expansion comes entirely from the modified gravitational sector.

Growth of structure. mu(a, k) implements the standard sub-horizon, quasi-static result for f(Q) gravity’s effective gravitational coupling, G_eff/G_N = 1/f_Q where f_Q = df/dQ (Barros, Barreiro, Koivisto & Nunes 2020, arXiv:2004.07867, “Testing F(Q) gravity with redshift space distortions” – the same growth-rate observable this feeds into here). For this model, f_Q = exp(lambda/E^2) (1 - lambda/E^2) (derived by differentiating f(Q) above and using Q0/Q = 1/E(z)^2), scale-independent (k is accepted for interface consistency with Cosmology.mu() but ignored). lambda=0 gives f_Q=1, i.e. mu=1 exactly – by this model’s own closure condition (see _lam above), that is the Omega_m -> 1 limit (matter-only, EdS), not Omega_m -> 0.

References

Anagnostopoulos, Basilakos & Saridakis (2021), “First evidence that non-metricity f(Q) gravity could challenge LCDM”, Phys. Lett. B 822, 136634, arXiv:2104.15123.

Barros, Barreiro, Koivisto & Nunes (2020), “Testing F(Q) gravity with redshift space distortions”, Phys. Dark Univ. 30, 100616, arXiv:2004.07867.

Parameters:

params (CosmologyParameters)

__init__(params)
Parameters:

params (CosmologyParameters)

Methods

E(z)

Dimensionless Hubble parameter (solves the transcendental Friedmann equation -- see the class docstring).

H(z)

Omega_de(z)

Effective/geometric dark-energy density -- see the class docstring for why this isn't a real second fluid here.

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)

Derivative of E(z), by implicit differentiation of the Friedmann relation (closed-form given E(z), no extra root-finding).

mu(a[, k])

Effective gravitational coupling G_eff/G_N = 1/f_Q -- 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.

h

Reduced Hubble constant, H0 / 100.

ln1e10As

m_nu

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