| ```python |
| """ |
| The following docstrings were extracted from classy-py.py |
| """ |
| def viewdictitems(d): |
| """Return items from a dictionary for Python 2 and 3 compatibility. |
|
|
| Args: |
| d (dict): The dictionary to retrieve items from. |
|
|
| Returns: |
| A view of the dictionary's items. |
| """ |
| def _check_task_dependency(self, level): |
| """Fill the level list with all the needed modules. |
|
|
| Warning: |
| The ordering of modules is obviously dependent on CLASS module order |
| in the main.c file. This has to be updated in case of a change to |
| this file. |
|
|
| Args: |
| level (list): List of strings, containing initially only the last module required. |
| For instance, to recover all the modules, the input should be |
| ['lensing']. |
| """ |
| def _pars_check(self, key, value, contains=False, add=""): |
| """Check parameters (implementation detail, no docstring provided).""" |
| def compute(self, level=["distortions"]): |
| """Compute the CLASS cosmology. |
|
|
| Main function, execute all the _init methods for all desired modules. |
| This is called in MontePython, and this ensures that the Class instance |
| of this class contains all the relevant quantities. Then, one can deduce |
| Pk, Cl, etc... |
|
|
| Args: |
| level (list, optional): List of the last module desired. The internal function |
| _check_task_dependency will then add to this list all the |
| necessary modules to compute in order to initialize this last |
| one. The default last module is "lensing". Defaults to ["distortions"]. |
|
|
| Warning: |
| level default value should be left as an array (it was creating |
| problem when casting as a set later on, in _check_task_dependency) |
| """ |
| def raw_cl(self, lmax=-1, nofail=False): |
| """Return a dictionary of the primary C_l. |
|
|
| Args: |
| lmax (int, optional): Define the maximum l for which the C_l will be returned |
| (inclusively). This number will be checked against the maximum l |
| at which they were actually computed by CLASS, and an error will |
| be raised if the desired lmax is bigger than what CLASS can |
| give. Defaults to -1. |
| nofail (bool, optional): Check and enforce the computation of the harmonic module |
| beforehand, with the desired lmax. Defaults to False. |
|
|
| Returns: |
| dict: Dictionary that contains the power spectrum for 'tt', 'te', etc... The |
| index associated with each is defined wrt. Class convention, and are non |
| important from the python point of view. It also returns now the |
| ell array. |
| """ |
| def lensed_cl(self, lmax=-1,nofail=False): |
| """Return a dictionary of the lensed C_l. |
|
|
| Return a dictionary of the lensed C_l, computed by CLASS, without the |
| density C_ls. They must be asked separately with the function aptly |
| named density_cl |
|
|
| Args: |
| lmax (int, optional): Define the maximum l for which the C_l will be returned (inclusively). Defaults to -1. |
| nofail (bool, optional): Check and enforce the computation of the lensing module beforehand. Defaults to False. |
|
|
| Returns: |
| dict: Dictionary that contains the power spectrum for 'tt', 'te', etc... The |
| index associated with each is defined wrt. Class convention, and are non |
| important from the python point of view. |
| """ |
| def density_cl(self, lmax=-1, nofail=False): |
| """Return a dictionary of the primary C_l for the matter. |
|
|
| Args: |
| lmax (int, optional): Define the maximum l for which the C_l will be returned (inclusively). Defaults to -1. |
| nofail (bool, optional): Check and enforce the computation of the lensing module beforehand. Defaults to False. |
|
|
| Returns: |
| numpy array of numpy.ndarrays: Array that contains the list (in this order) of self correlation of |
| 1st bin, then successive correlations (set by non_diagonal) to the |
| following bins, then self correlation of 2nd bin, etc. The array |
| starts at index_ct_dd. |
| """ |
| def sigma(self,R,z, h_units = False): |
| """Give sigma (total matter) for a given R and z. |
|
|
| (R is the radius in units of Mpc, so if R=8/h this will be the usual sigma8(z). |
| This is unless h_units is set to true, in which case R is the radius in units of Mpc/h, |
| and R=8 corresponds to sigma8(z)) |
|
|
| Note: |
| there is an additional check to verify whether output contains `mPk`, |
| and whether k_max > ... |
| because otherwise a segfault will occur |
|
|
| Args: |
| R: |
| z: |
| h_units: |
| """ |
| def sigma_cb(self,double R,double z, h_units = False): |
| """Give sigma (cdm+b) for a given R and z. |
|
|
| (R is the radius in units of Mpc, so if R=8/h this will be the usual sigma8(z) |
| This is unless h_units is set to true, in which case R is the radius in units of Mpc/h, |
| and R=8 corresponds to sigma8(z)) |
|
|
| Note: |
| there is an additional check to verify whether output contains `mPk`, |
| because otherwise a segfault will occur |
|
|
| Args: |
| R: |
| z: |
| h_units: |
| """ |
| def pk_tilt(self,double k,double z): |
| """Give effective logarithmic slope of P_L(k,z) (total matter) for a given k and z. |
|
|
| (k is the wavenumber in units of 1/Mpc, z is the redshift, the output is dimensionless) |
|
|
| Note: |
| there is an additional check that output contains `mPk` and whether k is in the right range |
|
|
| Args: |
| k: |
| z: |
| """ |
| def age(self): |
| """Return the age of the Universe (implementation detail, no docstring provided).""" |
| def h(self): |
| """Return the Hubble parameter (implementation detail, no docstring provided).""" |
| def n_s(self): |
| """Return the scalar spectral index (implementation detail, no docstring provided).""" |
| def tau_reio(self): |
| """Return the reionization optical depth (implementation detail, no docstring provided).""" |
| def Omega_m(self): |
| """Return the matter density parameter (implementation detail, no docstring provided).""" |
| def Omega_r(self): |
| """Return the radiation density parameter (implementation detail, no docstring provided).""" |
| def theta_s_100(self): |
| """Return the sound horizon angle (implementation detail, no docstring provided).""" |
| def theta_star_100(self): |
| """Return the sound horizon angle at decoupling (implementation detail, no docstring provided).""" |
| def Omega_Lambda(self): |
| """Return the cosmological constant density parameter (implementation detail, no docstring provided).""" |
| def Omega_g(self): |
| """Return the photon density parameter (implementation detail, no docstring provided).""" |
| def r(self): |
| """Return the tensor-to-scalar ratio (implementation detail, no docstring provided).""" |
| def A_s(self): |
| """Return the primordial power spectrum amplitude (implementation detail, no docstring provided).""" |
| def ln_A_s_1e10(self): |
| """Return the natural logarithm of 10^10 times the primordial power spectrum amplitude (implementation detail, no docstring provided).""" |
| def lnAs_1e10(self): |
| """Return the natural logarithm of 10^10 times the primordial power spectrum amplitude (implementation detail, no docstring provided).""" |
| def Neff(self): |
| """Return the effective number of neutrino species (implementation detail, no docstring provided).""" |
| def get_transfer(self, z=0., output_format='class'): |
| """Return the density and/or velocity transfer functions. |
|
|
| Return the density and/or velocity transfer functions for all initial |
| conditions, at a given value of z. |
| By default, all transfer functions will be normalised to 'curvature R=1' |
| at initial time (and not 'curvature R = -1/k^2' like in CAMB). |
| You may switch to output_format='camb' for the CAMB definition and normalisation |
| of transfer functions. |
| When setting CLASS input parameters, include at least one of 'dTk' (for density transfer functions) |
| or 'vTk' (for velocity transfer functions). |
| For more details, see section II of the CLASS notebook. |
|
|
| Args: |
| z (float, optional): Redshift. Defaults to 0.. |
| output_format (str, optional): Format transfer functions according to CLASS (default) or CAMB. Defaults to 'class'. |
|
|
| Returns: |
| dict: Dictionary containing an entry for each transfer function. For a |
| given transfer function, say, delta_tot, transfers['d_tot'] will be |
| an array containing delta_tot(k) at the k values defined in the |
| 'k_output_values' list. When there are non-adiabatic conditions, |
| the transfer dictionary will have keys like transfers['d_tot[name]'], where |
| name is the name of the isocurvature mode. |
| """ |
| def get_current_derived_parameters(self, names): |
| """Return a dictionary containing an entry for all the names defined in the input list. |
|
|
| Args: |
| names (list): Derived parameters that can be asked from Monte Python, or |
| elsewhere. |
|
|
| Returns: |
| dict: A dictionary of derived parameters. |
|
|
| Raises: |
| TypeError: If `names` is not a list. |
| """ |
| def get_perturbations(self, return_copy=True): |
| """Return scalar, vector and/or tensor perturbations as arrays for requested k-values. |
|
|
| Note: |
| you need to specify both 'k_output_values', and have some |
| perturbations computed, for instance by setting 'output' to 'tCl'. |
| Do not enable 'return_copy=False' unless you know exactly what you are doing. |
| This will mean that you get access to the direct C pointers inside CLASS. |
| That also means that if class is deallocated, |
| your perturbations array will become invalid. Beware! |
|
|
| Args: |
| return_copy (bool, optional): Whether to return a copy of the data. Defaults to True. |
|
|
| Returns: |
| dict of array of dicts: perturbations['scalar'] is an array of length 'k_output_values' of |
| dictionary containing scalar perturbations. |
| Similar for perturbations['vector'] and perturbations['tensor']. |
| """ |
| def scale_dependent_growth_factor_f(self, k, z, Nz=50, h_units = False, evolution=False): |
| """Return the scale-dependent growth factor, f(k,z) = d ln delta(k,z) / d ln a, at a given k and z, for total matter fluctuations. |
|
|
| Args: |
| k (float or array): wavenumber in units of 1/Mpc |
| z (float or array): redshift |
| Nz (int, optional): number of points for computing sigma(R,z) splines, default to 50. Defaults to 50. |
| h_units (bool, optional): If true, returns k in h/Mpc. Defaults to False. |
| evolution (bool, optional): . Defaults to False. |
| """ |
| def pk(self, k, z, lAccuracy=10): |
| """Return the total matter power spectrum for a given k and z. |
|
|
| Return the total matter power spectrum for a given k and z (will be |
| non linear if requested to Class, linear otherwise) |
|
|
| Args: |
| k (float): wavenumber in units of 1/Mpc |
| z (float): redshift |
| lAccuracy (int, optional): Level of accuracy of the integration. Defaults to 10. |
| """ |
| def pk_cb(self,double k,double z): |
| """Give the cdm+b pk (in Mpc**3) for a given k (in 1/Mpc) and z (will be non linear if requested to Class, linear otherwise). |
|
|
| Note: |
| there is an additional check that output contains `mPk`, |
| because otherwise a segfault will occur |
|
|
| Args: |
| k: |
| z: |
| """ |
| def pk_lin(self, k, z, lAccuracy=10): |
| """Return the LINEAR total matter power spectrum for a given k and z. |
|
|
| Args: |
| k (float): wavenumber in units of 1/Mpc |
| z (float): redshift |
| lAccuracy (int, optional): Level of accuracy of the integration. Defaults to 10. |
| """ |
| def pk_cb_lin(self,double k,double z): |
| """Give the LINEAR cdm+b pk (in Mpc**3) for a given k (in 1/Mpc) and z. |
|
|
| Note: |
| there is an additional check that output contains `mPk`, |
| because otherwise a segfault will occur |
|
|
| Args: |
| k: |
| z: |
| """ |
| def log_pk(self, k, z, lAccuracy=10): |
| """Return the log of the total matter power spectrum for a given k and z. |
|
|
| Args: |
| k (float): wavenumber in units of 1/Mpc |
| z (float): redshift |
| lAccuracy (int, optional): Level of accuracy of the integration. Defaults to 10. |
| """ |
| def transfer(self, k, z, idx_T=1, lAccuracy=10): |
| """Return a transfer function for a given k and z. |
|
|
| Args: |
| k (float): wavenumber in units of 1/Mpc |
| z (float): redshift |
| idx_T (int, optional): index of transfer function to return, with 0=delta_g, 1=delta_b, |
| 2=delta_cdm, 3=delta_ncdm[0], etc.... Defaults to 1. |
| lAccuracy (int, optional): Level of accuracy of the integration. Defaults to 10. |
| """ |
| def rho_crit(self, z, lAccuracy=10): |
| """Return the critical density at redshift z. |
|
|
| Args: |
| z (float): redshift |
| lAccuracy (int, optional): Level of accuracy of the integration. Defaults to 10. |
| """ |
| def scale_independent_f_sigma8(self, z, Nz=50): |
| """Return an interpolator for f \\sigma_8 (scale-INdependent), as a function of z. |
|
|
| This will compute f(z) = d ln delta / d ln a, |
| approximating this quantity with the scale-INdependent growth rate. |
| For the scale-dependent one, use the proper function. |
|
|
| Args: |
| z (array): Redshift |
| """ |
| def scale_independent_growth_factor(self, z, Nz=50): |
| """Return the linear growth factor by taking the ratio of Delta(z)/Delta(z=0). |
|
|
| Args: |
| z (array): Redshift |
| """ |
| def has_idr(self): |
| """Check for interacting dark radiation (implementation detail, no docstring provided).""" |
| def has_dr(self): |
| """Check for dark radiation (implementation detail, no docstring provided).""" |
| def spectral_distortion_amplitudes(self): |
| """Distortion amplitudes (implementation detail, no docstring provided).""" |
| def get_transfer_functions_at_z(self, z, k_values, output_format='class'): |
| """Return the density and velocity transfer functions. |
|
|
| Return the density and velocity transfer functions for all initial |
| conditions, at a given value of z. |
| For more details, see section II of the CLASS notebook. |
| By default, all transfer functions will be normalised to 'curvature R=1' at initial time |
| (and not 'curvature R = -1/k^2' like in CAMB). |
| You may switch to output_format='camb' for the CAMB definition and normalisation of transfer functions. |
| When setting CLASS input parameters, include at least one of 'dTk' (for density transfer functions) |
| or 'vTk' (for velocity transfer functions). |
|
|
| Args: |
| z (float): Redshift |
| k_values: |
| output_format (str, optional): Format transfer functions according to CLASS (default) or CAMB. Defaults to 'class'. |
| """ |
| def primordial_spec(self, k, return_power=True, lAccuracy=10): |
| """Return the primordial power spectrum. |
|
|
| This function switches between the scalar and tensor primordial power |
| spectrum, and accepts as an argument a scale k. |
|
|
| Args: |
| k (float): wavenumber in units of 1/Mpc |
| return_power (bool, optional): default value is true, which returns the power spectrum, otherwise the value of the scale is returned. Defaults to True. |
| lAccuracy (int, optional): Level of accuracy of the integration. Defaults to 10. |
| """ |
| def primordial_scalar_pk(self, k, lAccuracy=10): |
| """Return the primordial SCALAR power spectrum for a given k. |
|
|
| Args: |
| k (float): wavenumber in units of 1/Mpc |
| lAccuracy (int, optional): Level of accuracy of the integration. Defaults to 10. |
| """ |
| def primordial_tensor_pk(self, k, lAccuracy=10): |
| """Return the primordial TENSOR power spectrum for a given k. |
|
|
| Args: |
| k (float): wavenumber in units of 1/Mpc |
| lAccuracy (int, optional): Level of accuracy of the integration. Defaults to 10. |
| """ |
| def angular_diamater_distance(self,z): |
| """Return the angular diameter distance.""" |
| def tangential_critical_density(self,z_l,z_s): |
| """Returnthe critical density for tangential shear.""" |
|
|
|
|