petitRADTRANS.temperature_profiles.guillot
==========================================

.. py:module:: petitRADTRANS.temperature_profiles.guillot


Functions
---------

.. autoapisummary::

   petitRADTRANS.temperature_profiles.guillot.guillot_temperature_profile
   petitRADTRANS.temperature_profiles.guillot.guillot_dayside_temperature_profile
   petitRADTRANS.temperature_profiles.guillot.guillot_global_temperature_profile
   petitRADTRANS.temperature_profiles.guillot.guillot_global_ret_temperature_profile
   petitRADTRANS.temperature_profiles.guillot.guillot_metallic_temperature_profile
   petitRADTRANS.temperature_profiles.guillot.guillot_modif_temperature_profile


Module Contents
---------------

.. py:function:: guillot_temperature_profile(pressures: jax.typing.ArrayLike, infrared_mean_opacity: float, gamma: float, gravities: jax.typing.ArrayLike, intrinsic_temperature: float, equilibrium_temperature: float, redistribution_coefficient: float = 0.25) -> jax.Array

   Returns a temperature array, in units of K, of the same dimensions as the pressure P (in bar).

   For this the temperature model of Guillot (2010) is used (his Equation 29).
   Source: https://doi.org/10.1051/0004-6361/200913396

   Args:
       pressures: Array of pressures in bar.
       infrared_mean_opacity: The infrared mean opacity in units of cm^2/g.
       gamma: The ratio between the visual and infrared mean opacities.
       gravities: The planetary gravity at the given pressures in units of cm/s^2.
       intrinsic_temperature: The planetary intrinsic temperature in K.
       equilibrium_temperature: The planetary equilibrium temperature in K.
       redistribution_coefficient: The redistribution coefficient of the irradiance. A value of 1 corresponds to the
           substellar point, 1/2 for the day-side average and 1/4 for the global average.
   Returns:
       The temperature profile in K.


.. py:function:: guillot_dayside_temperature_profile(pressures: jax.typing.ArrayLike, infrared_mean_opacity: float, gamma: float, gravities: jax.typing.ArrayLike, intrinsic_temperature: float, equilibrium_temperature: float) -> jax.Array

   Returns a dayside temperature array, in units of K, using the Guillot (2010) model.

   This is a wrapper for `guillot_temperature_profile` with `redistribution_coefficient` set to 0.5,
   which corresponds to an average over the day side of the planet.

   Args:
       pressures: Array of pressures in bar.
       infrared_mean_opacity: The infrared mean opacity in units of cm^2/g.
       gamma: The ratio between the visual and infrared mean opacities.
       gravities: The planetary gravity at the given pressures in units of cm/s^2.
       intrinsic_temperature: The planetary intrinsic temperature in K.
       equilibrium_temperature: The planetary equilibrium temperature in K.
   Returns:
       The temperature profile in K.


.. py:function:: guillot_global_temperature_profile(pressures: jax.typing.ArrayLike, infrared_mean_opacity: float, gamma: float, gravities: jax.typing.ArrayLike, intrinsic_temperature: float, equilibrium_temperature: float) -> jax.Array

   Returns a global average temperature array, in units of K, using the Guillot (2010) model.

   This is a wrapper for `guillot_temperature_profile` with `redistribution_coefficient` set to 0.25,
   which corresponds to an average over the whole planetary surface.

   Args:
       pressures: Array of pressures in bar.
       infrared_mean_opacity: The infrared mean opacity in units of cm^2/g.
       gamma: The ratio between the visual and infrared mean opacities.
       gravities: The planetary gravity at the given pressures in units of cm/s^2.
       intrinsic_temperature: The planetary intrinsic temperature in K.
       equilibrium_temperature: The planetary equilibrium temperature in K.
   Returns:
       The temperature profile in K.


.. py:function:: guillot_global_ret_temperature_profile(pressures: jax.typing.ArrayLike, delta: float, gamma: float, intrinsic_temperature: float, equilibrium_temperature: float) -> jax.Array

   Global Guillot P-T formula for retrievals, with kappa/gravity replaced by delta.

   This function is a variation of the Guillot (2010) temperature profile, where the ratio of the
   mean infrared opacity to gravity (kappa/g) is replaced by a single parameter, delta.
   This is useful for retrieval applications where gravity is fixed and opacity is a parameter.

   Args:
       pressures: Array of pressures in bar.
       delta: Proportionality factor for optical depth, equal to kappa_ir / g, where kappa_ir is the
              infrared mean opacity (cm^2/g) and g is the gravity (cm/s^2).
       gamma: The ratio between the visual and infrared mean opacities.
       intrinsic_temperature: The planetary intrinsic temperature in K.
       equilibrium_temperature: The planetary equilibrium temperature in K.
   Returns:
       The temperature profile in K.


.. py:function:: guillot_metallic_temperature_profile(pressures: jax.typing.ArrayLike, gamma: float, reference_gravity: jax.typing.ArrayLike, intrinsic_temperature: float, equilibrium_temperature: float, infrared_mean_opacity_solar_metallicity: float, metallicity: Optional[float] = None) -> jax.Array

   Get a Guillot temperature profile depending on metallicity.

   This function calculates a global average Guillot temperature profile, where the infrared mean
   opacity is scaled with metallicity.

   Args:
       pressures: Array of pressures in bar.
       gamma: Ratio between visual and infrared opacity.
       reference_gravity: Surface gravity in cm/s^2.
       intrinsic_temperature: Intrinsic temperature in K.
       equilibrium_temperature: Equilibrium temperature in K.
       infrared_mean_opacity_solar_metallicity: Infrared mean opacity for a solar metallicity (Z=1)
           atmosphere, in cm^2/g.
       metallicity: Ratio of heavy elements abundance over H abundance with respect to the solar ratio.
           If None, solar metallicity is assumed.
   Returns:
       The temperature profile in K.


.. py:function:: guillot_modif_temperature_profile(pressures: jax.typing.ArrayLike, delta: float, gamma: float, intrinsic_temperature: float, equilibrium_temperature: float, ptrans: float, alpha: float) -> jax.Array

   Modified Guillot P-T formula for retrievals.

   This function uses the `guillot_global_ret_temperature_profile` and applies a
   modifying factor to the temperature profile. The modification is controlled by `alpha`
   and `ptrans`, which can shape the profile around a transition pressure.

   Args:
       pressures: Array of pressures in bar.
       delta: Proportionality factor for optical depth, equal to kappa_ir / g.
       gamma: The ratio between the visual and infrared mean opacities.
       intrinsic_temperature: The planetary intrinsic temperature in K.
       equilibrium_temperature: The planetary equilibrium temperature in K.
       ptrans: Transition pressure in bar, where the modification is centered.
       alpha: A parameter controlling the strength and shape of the temperature modification.
   Returns:
       The modified temperature profile in K.


