GrowthModel

class hmf.core.growth_models.GrowthModel[source]

The kind of growth-factor models.

Subclasses implement solve(), and may check that they apply to a cosmology in check_cosmology().

Attributes

alias: ClassVar[str | None] = None

The short name the model is registered under, if any. Set by the alias class keyword; never inherited.

backend: ClassVar[str | None] = None

The Boltzmann code that computes the model ("camb" or "class"), if any.

calibration

Where this model was calibrated, with its source (None if it was not).

The class’s calibration_domain, unless it depends on the instance’s parameters.

calibration_domain: ClassVar[Domain | None] = None

The calibration domain of the class, with its source (None if it was not calibrated): that of its default parameters. Ask an instance for calibration.

parameter_source: ClassVar[str] = ''

The exact source (paper, version, table or equation) of the parameter defaults, e.g. “Tinker et al. 2008, ApJ 688, 709 (published), Table 2”.

references: ClassVar[tuple[str, ...]] = ()

References to cite when the model is used, each a formatted citation.

valid_domain: ClassVar[Domain] = Domain(bounds=(('z', Interval(lower=0.0, upper=inf, unit=None, lower_open=False, upper_open=True)),), source='z >= 0.')

z >= 0. The Growth stage checks z against the model’s class’s domain (so a model can narrow it), and also against the redshifts its solution covers (up to GrowthSolution.z_max, e.g. a table’s largest redshift): growth is never extrapolated.

Type:

Where the model can be evaluated

Methods

check_cosmology(cosmology: FLRW) → None

Raise if the model does not apply to cosmology (by default it does).

Raises:

ValueError – If it does not apply: a model that does not apply to a cosmology is a configuration error.

classmethod coerce(value: object) → Self

Convert a value to a model of this kind: the converter of a model field.

Parameters:

value – An instance of cls, which is returned as it is; or a name, import path or class that get() accepts, which is looked up and instantiated with its default parameters.

Returns:

An instance of cls.

Return type:

Model

Raises:
  • ModelNotFoundError – If value is a name that no model of this kind is known by.

  • TypeError – If value is of any other type, or names a class that is not a concrete subclass of cls.

Examples

>>> from hmf.core.filters import Filter, TopHat
>>> Filter.coerce("TopHat") == TopHat()
True
classmethod fields_info() → tuple[FieldInfo, ...]

Describe this class’s fields, without creating an instance.

Returns:

The name, type, default and documentation of each field.

Return type:

tuple of FieldInfo

classmethod get(name: str | type[Model]) → type[Self]

Look up a model of this kind.

Parameters:

name – An alias ("Tinker08"), a qualified name ("hmf.core.fits:Tinker08"), an import path to a class not yet imported ("pkg.mod:Cls" or "pkg.mod.Cls"), or a class.

Returns:

The model class (not an instance). It is always a subclass of cls.

Return type:

type

Raises:
  • ModelNotFoundError – If no model of this kind is known by name, even after loading the hmf.models entry points and trying name as an import path.

  • TypeError – If name resolves to something that is not a concrete subclass of cls.

classmethod get_aliases() → Mapping[str, str]

Return a read-only mapping from alias to qualified name, for this kind.

classmethod get_models() → Mapping[str, type[Self]]

Return the registered models of this kind, by qualified name.

Plugins advertised in the hmf.models entry-point group are loaded first.

Returns:

A read-only mapping from qualified name to class. Called on a kind, it is a live view of the registry. Called on a non-kind subclass, it holds only the models that subclass it.

Return type:

Mapping

classmethod qualified_name() → str

Return this class’s qualified name, package.module:Class.

abstractmethod solve(cosmology: FLRW, *, run: BoltzmannRun | None = None, disk_cache: DiskCache | None = None, k_accuracy: KAccuracy = KAccuracy(dln_k=0.02, ln_k_min=-18.420680743952367, k_max_r_min=20.0)) → GrowthSolution[source]

Compute the growth of every species for a cosmology.

Parameters:
  • cosmology – The cosmology.

  • run – A run of this model’s Boltzmann code (from a transfer stage) to take the growth from, if it covers the model’s redshifts. Ignored by models without a backend.

  • disk_cache – Where to cache Boltzmann-code output on disk, if anywhere.

  • k_accuracy – The wavenumber accuracy of a Boltzmann run the model makes itself (when run is not given or does not cover its redshifts): it sets the code’s precision, as for Transfer. Ignored by models without a backend.

Return type:

GrowthSolution