| ```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.""" | |