Class

NumCosmoBBN

Description [src]

abstract class NumCosmo.BBN : NumCosmoMath.Model
{
  /* No available fields */
}

Abstract class for primordial nucleosynthesis models.

A NcBBN answers what Big Bang Nucleosynthesis predicts for a cosmology, given the two quantities BBN actually depends on: the baryon density $\omega_b = \Omega_{b0}h^2$ and the extra relativistic degrees of freedom $\Delta N_\mathrm{eff} = N_\mathrm{eff} - 3.046$. Both are read from the NcHICosmo passed to each method, never stored: a NcBBN is a submodel of NcHICosmo and holding a reference back to its parent would be a cycle.

The only prediction every implementation must provide is the Helium-4 mass fraction $Y_p$, nc_bbn_Yp_4He(). The tables shipped with NumCosmo tabulate $Y_p$ alone, so nc_bbn_DH(), nc_bbn_He3H() and nc_bbn_Li7H() are optional — check ncm_model_check_impl_opt() against NcBBNImpl before calling them.

Implementations that interpolate a table are valid only inside it. nc_bbn_get_domain() reports that range and nc_bbn_check_domain() turns a cosmology outside it into an error: a table asked about a baryon density it never covered has no answer, and returning an extrapolated one silently is how a chain ends up converged on invented helium.

Ancestors

Functions

nc_bbn_clear

If bbn is different from NULL, decreases the reference count of bbn by one and sets *bbn to NULL.

nc_bbn_id
No description available.

Instance methods

nc_bbn_DH

Computes the primordial Deuterium abundance $\mathrm{D}/\mathrm{H}$ predicted for cosmo. Optional: check ncm_model_check_impl_opt() for NC_BBN_IMPL_DH first.

nc_bbn_He3H

Computes the primordial Helium-3 abundance ${}^3\mathrm{He}/\mathrm{H}$ predicted for cosmo. Optional: check ncm_model_check_impl_opt() for %NC_BBN_IMPL_He3H first.

nc_bbn_Li7H

Computes the primordial Lithium-7 abundance ${}^7\mathrm{Li}/\mathrm{H}$ predicted for cosmo. Optional: check ncm_model_check_impl_opt() for %NC_BBN_IMPL_Li7H first.

nc_bbn_Yp_4He

Computes the primordial Helium-4 mass fraction $Y_p$ predicted for cosmo.

nc_bbn_check_domain

Errors out unless $(wb, DNeff)$ lies inside the domain bbn reports through nc_bbn_get_domain(). Implementations that interpolate a table call this before evaluating: outside the table there is no prediction to give, and an extrapolated value would be indistinguishable from a real one.

nc_bbn_free

Decreases the reference count of bbn by one.

nc_bbn_get_domain

Gets the range of $(\omega_b, \Delta N_\mathrm{eff})$ over which bbn is defined. A model with no intrinsic range reports the widest one it accepts.

nc_bbn_ref

Increases the reference count of bbn by one.

Methods inherited from NcmModel (91)

Please see NcmModel for a full list of methods.

Methods inherited from GObject (43)

Please see GObject for a full list of methods.

Properties

Properties inherited from NcmModel (9)
NumCosmoMath.Model:implementation

The implementation flags of the model class, see ncm_model_check_impl_flag().

NumCosmoMath.Model:name

The name of the model class.

NumCosmoMath.Model:nick

The nickname of the model class.

NumCosmoMath.Model:params-types

The NcmParamType of each parameter.

NumCosmoMath.Model:reparam

The reparametrization, see ncm_model_set_reparam().

NumCosmoMath.Model:scalar-params-len

The number of scalar parameters.

NumCosmoMath.Model:sparam-array

The parameter descriptions that differ from the class ones, NcmSParam keyed by parameter index. Each one is placed by its parameter name: a description of a parameter declared with ncm_model_class_add_removed_param() is skipped, and one of any other unknown parameter aborts.

NumCosmoMath.Model:submodel-array

The submodels, attached at construction.

NumCosmoMath.Model:vector-params-len

The number of vector parameters (not their lengths).

Signals

Signals inherited from GObject (1)
GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

Class structure

struct NumCosmoBBNClass {
  gdouble (* Yp_4He) (
    NcBBN* bbn,
    NcHICosmo* cosmo
  );
  void (* get_domain) (
    NcBBN* bbn,
    gdouble* wb_lb,
    gdouble* wb_ub,
    gdouble* DNeff_lb,
    gdouble* DNeff_ub
  );
  gdouble (* DH) (
    NcBBN* bbn,
    NcHICosmo* cosmo
  );
  gdouble (* He3H) (
    NcBBN* bbn,
    NcHICosmo* cosmo
  );
  gdouble (* Li7H) (
    NcBBN* bbn,
    NcHICosmo* cosmo
  );
  
}

No description available.

Class members
Yp_4He: gdouble (* Yp_4He) ( NcBBN* bbn, NcHICosmo* cosmo )

No description available.

get_domain: void (* get_domain) ( NcBBN* bbn, gdouble* wb_lb, gdouble* wb_ub, gdouble* DNeff_lb, gdouble* DNeff_ub )

No description available.

DH: gdouble (* DH) ( NcBBN* bbn, NcHICosmo* cosmo )

No description available.

He3H: gdouble (* He3H) ( NcBBN* bbn, NcHICosmo* cosmo )

No description available.

Li7H: gdouble (* Li7H) ( NcBBN* bbn, NcHICosmo* cosmo )

No description available.

Virtual methods

NumCosmo.BBNClass.DH

Computes the primordial Deuterium abundance $\mathrm{D}/\mathrm{H}$ predicted for cosmo. Optional: check ncm_model_check_impl_opt() for NC_BBN_IMPL_DH first.

NumCosmo.BBNClass.He3H

Computes the primordial Helium-3 abundance ${}^3\mathrm{He}/\mathrm{H}$ predicted for cosmo. Optional: check ncm_model_check_impl_opt() for %NC_BBN_IMPL_He3H first.

NumCosmo.BBNClass.Li7H

Computes the primordial Lithium-7 abundance ${}^7\mathrm{Li}/\mathrm{H}$ predicted for cosmo. Optional: check ncm_model_check_impl_opt() for %NC_BBN_IMPL_Li7H first.

NumCosmo.BBNClass.Yp_4He

Computes the primordial Helium-4 mass fraction $Y_p$ predicted for cosmo.

NumCosmo.BBNClass.get_domain

Gets the range of $(\omega_b, \Delta N_\mathrm{eff})$ over which bbn is defined. A model with no intrinsic range reports the widest one it accepts.