==================== Emulator Parameters ==================== This page details the parameters used by ``Aletheia``. It is important to distinguish between the user-facing *input parameters* and the internal *emulated parameters* upon which the emulator is trained. User Input: The Cosmology Dictionary ------------------------------------ The main way to provide a cosmology is through a Python dictionary, created by the ``AletheiaEmu.create_cosmo_dict()`` static method. This method ensures all parameters are correctly formatted. **Example 1: Using Physical Densities (Default)** This is the recommended method, as it uses physical density parameters (e.g., :math:`\omega_{\mathrm{b}}`) that are independent of the dimensionless Hubble parameter :math:`h`. .. code-block:: python cosmo_params = AletheiaEmu.create_cosmo_dict( h=0.67, omega_b=0.0224, omega_c=0.120, n_s=0.96, A_s=2.1e-9, model='LCDM' ) **Example 2: Using Fractional Densities** The helper function can also accept fractional densities (e.g., :math:`\Omega_{\mathrm{b}}=\omega_{\mathrm{b}}/h^2`) by setting the ``density_type`` flag. .. code-block:: python cosmo_params = AletheiaEmu.create_cosmo_dict( h=0.7, Omega_b=0.05, Omega_c=0.267, n_s=0.97, A_s=2.1e-9, model='LCDM', density_type='fractional' ) The user provides standard cosmological parameters (like ``A_s``, ``w_0``, ``w_a``, ``omega_k``) and the ``get_pnl()`` method also takes a ``redshift``. Internal Conversion ------------------- The emulator does **not** use all of these input parameters directly. Instead, it internally calculates the specific set of parameters upon which its Gaussian Process models were trained. The primary emulated parameters are: 1. **Shape Parameters:** ``omega_b``, ``omega_c``, ``n_s`` 2. **Clustering Amplitude:** ``sigma12`` (the RMS of matter fluctuations at z=0) The user-provided values for ``A_s``, ``w_0``, ``w_a``, ``omega_DE``, ``omega_k``, and ``z`` are used by the internal ``Cosmology`` and ``GrowthCalculator`` classes to compute the correct values of ``sigma12`` and ``xtilde`` for the given cosmology at the specified redshift. This ``sigma12`` value is then passed to the emulators. Emulator Training Range ----------------------- The ``get_pnl()`` method will raise a ``ValueError`` if the input cosmology results in emulated parameters that are outside the training domain. * **Shape Parameters** :math:`(\omega_{\mathrm{b}}, \omega_{\mathrm{c}}, n_{\mathrm{s}})`: The emulator is trained on a parameter space spanning :math:`\pm 5\sigma` of the Planck 2018 constraints, projected onto the eigenvectors of the covariance matrix. The ``_validate_params`` method checks this internally. * **Clustering Amplitude** :math:`(\sigma12)`: The valid range for the clustering amplitude is: :math:`0.2 < \sigma_{12} < 1.0` * **Wavenumber** :math:`(k)`: The emulator provides predictions within the wavenumber range: :math:`0.006\, {\rm Mpc}^{-1} < k < 2.0 \, {\rm Mpc}^{-1}` This design, based on the **evolution mapping framework**, allows the emulator to robustly handle dark energy and curvature models without having been explicitly trained on them.