a0 = np.exp(self.lna[0]) Om = self.Om(a0) D1i = np.log(a0 / a_H) # radiation dominated initial conditions y0 = [ D1i, 1.0, -1.5 * Om * (D1i ** 2 - 4 * D1i + 6), -1.5 * Om * (D1i ** 2 - 2 * D1i + 2)] return y0 def efunc(self, a): z = 1. / a - 1.0 return self._cosmo.efunc(z) def efunc_prime(self, a): z = 1. / a - 1.0 return self._cosmo.efunc_prime(z) def Om(self, a): z = 1./a-1 return self._cosmo.Omega_b(z) + self._cosmo.Omega_cdm(z) # non-relativistic from nbodykit.utils import deprecate PerturbationGrowth = deprecate("PerturbationGrowth", RadiationDominated)
redshift : float compute the density threshold which determines the R(M) relation at this redshift mdef : str, optional string specifying the halo mass definition to use; should be 'vir' or 'XXXc' or 'XXXm' where 'XXX' is an int specifying the overdensity Returns ------- radius : :class:`dask.array.Array` a dask array holding the halo radius in 'physical Mpc/h [sic]'. This is proper Mpc/h, to convert to comoving, divide this by scaling factor. """ from halotools.empirical_models import halo_mass_to_halo_radius mass, redshift = da.broadcast_arrays(mass, redshift) kws = {'cosmology':cosmo.to_astropy(), 'mdef':mdef} def mass_to_radius(mass, redshift): return halo_mass_to_halo_radius(mass=mass, redshift=redshift, **kws) return da.map_blocks(mass_to_radius, mass, redshift, dtype=mass.dtype) # deprecated functions vstack = deprecate("nbodykit.transform.vstack", StackColumns, "nbodykit.transform.StackColumns") concatenate = deprecate("nbodykit.transform.concatenate", ConcatenateSources, "nbodykit.transform.ConcatenateSources") SkyToCartesion = deprecate("nbodykit.transform.SkyToCartesion", SkyToCartesian, "nbodykit.transform.SkyToCartesian")
mass : array_like either a numpy or dask array specifying the halo mass; units assumed to be :math:`M_{\odot}/h` cosmo : :class:`~nbodykit.cosmology.cosmology.Cosmology` the cosmology instance redshift : float compute the density threshold which determines the R(M) relation at this redshift mdef : str, optional string specifying the halo mass definition to use; should be 'vir' or 'XXXc' or 'XXXm' where 'XXX' is an int specifying the overdensity Returns ------- radius : :class:`dask.array.Array` a dask array holding the halo radius """ from halotools.empirical_models import halo_mass_to_halo_radius if not isinstance(mass, da.Array): mass = da.from_array(mass, chunks=100000) kws = {'cosmology':cosmo.to_astropy(), 'mdef':mdef, 'redshift':redshift} return mass.map_blocks(lambda mass: halo_mass_to_halo_radius(mass=mass, **kws), dtype=mass.dtype) # deprecated functions vstack = deprecate("nbodykit.transform.vstack", StackColumns, "nbodykit.transform.StackColumns") concatenate = deprecate("nbodykit.transform.concatenate", ConcatenateSources, "nbodykit.transform.ConcatenateSources") SkyToCartesion = deprecate("nbodykit.transform.SkyToCartesion", SkyToCartesian, "nbodykit.transform.SkyToCartesian")
a_H = 5.22281250e-05 a0 = np.exp(self.lna[0]) Om = self.Om(a0) D1i = np.log(a0 / a_H) # radiation dominated initial conditions y0 = [ D1i, 1.0, -1.5 * Om * (D1i**2 - 4 * D1i + 6), -1.5 * Om * (D1i**2 - 2 * D1i + 2) ] return y0 def efunc(self, a): z = 1. / a - 1.0 return self._cosmo.efunc(z) def efunc_prime(self, a): z = 1. / a - 1.0 return self._cosmo.efunc_prime(z) def Om(self, a): z = 1. / a - 1 return self._cosmo.Omega_b(z) + self._cosmo.Omega_cdm( z) # non-relativistic from nbodykit.utils import deprecate PerturbationGrowth = deprecate("PerturbationGrowth", RadiationDominated)