.. _absorption: Absorption of the solar flux ======================================= Theory -------------------------- Before reaching the D-region, the solar fluxes are absorbed by the neutral constituent of the atmosphere at higher altitudes. Thus, the flux at an altitude :math:`z` is written .. math:: F(\lambda, z) &= F(\lambda, \infty) \times \exp\left(-\sum_i \sigma_i^a \int n_i ds \right) \\ &= F(\lambda, \infty) \times \exp(-\tau) where the sum on :math:`i` is a sum over all neutral species, :math:`ds` is the infinetisimal distance travelled by the flux, and :math:`\sigma_i^a` is the absorption cross-section of species :math:`i` at wavelength :math:`\lambda`. :math:`F(z)` is the absorbed flux while :math:`F(\infty)` is the solar flux (e.g. [singer1961]_ ). Instead of computing the integral on :math:`ds`, the use of the Chapman function allows it to be computed on :math:`dz`: .. math:: \tau &= Ch(X, \chi) \sum_i \int_z^\infty \sigma_i^a n_i dz \\ &= Ch(X, \chi) H \sigma_i^a n_i(z) where :math:`\chi` is the solar zenith angle, :math:`Ch` is the Chapman function and :math:`X` is the ratio of the Earth radius and the altitude with respect to the atmosphere scale height :math:`H` (e.g. [brasseur2005]_ ) The values of :math:`\sigma^a` comes from [siskind2022]_ for the HXR flux, [solomon2005]_ for the SXR flux and [reddmann2003]_ for the absorption of Lyman-a flux. Practice ------------------------- In practice, the first thing that needs to be computed is the ionosphere scale height :math:`H`. It is simply given by .. math:: H = \frac{k T_n}{g M} where :math:`T_n` is the neutral temperature and :math:`M` is the average particule mass. This computation is done through the :py:func:`~compute_source.compute_H` function. .. code-block:: H = compute_H(neutrals_here) Then, the Chapman function for solar zenith angle :math:`\chi` is evaluated, following the approximation by [smith1972]_ . .. code-block:: Ch, H = chapman(chi, neutrals_here) .. note:: :math:`H` is actually computed inside the :py:func:`~compute_source.chapman` function, and returned by this function :math:`\tau` is computed through the :py:func:`~compute_source.get_tau` function (which also calls :py:func:`~compute_source.chapman`). To perform this, the absorption cross-sections of the main neutral species are needed. Those are taken from Table 1 of [pavlov2014]_ and references therein. This function returns :math:`\tau` at altitude :math:`z` specified as input. :math:`\tau` over all altitudes in the D-region is computed by the :py:func:`~compute_source.compute_tau`. This is done during the initialisation of the :py:class:`~class_definition.radiation` class, since this may be done as soon as the solar fluxes are known and the neutral densities initialised. .. code-block:: tau_EUV, tau_SXR, tau_HXR = cs.compute_tau(self, neutrals_here, chi) We only consider three radiations wavelengths here, the soft solar X-rays, the hard X-rays and the Lyman-:math:`\alpha` radiation. Results ---------------------------- Here are an example of results for a quiet period, over the NSY transmitter in November 2023 (:math:`\chi = 58°`). .. image:: ../Figures/Absorption_fluxes.png Another way to look at this is to plot the transmittion factor, which is the term :math:`\exp(-\tau)`. .. image:: ../Figures/Transmittion_factor.png This matches Figure 25 (p 186) of *Physics of the Upper Atmosphere* by Ratcliffe (1960) HXR ----------------------------- On the figure above, it is visible that the SXR do not reach the D-region altitudes. Similarly, the HXR only reach to an altitude of 70 km. Though the fact that the SXR do not participate in the D-region was already noted ([ratcliffe1960]_, [barta2019]_), the HXR do impact the D-region. However, to see their effect on the lower altitudes, it is necessary to discretise the HXR band as given by GOES: .. image:: ../Figures/Full_absorption_fluxes.png Taking this ionisation into account thus requires discretising the HXR band. We bin it in 0.05 nm wide windows, following [siskind2022]_ . To do this, full codes such as NRLFLARES or FISM may be used. However, in the interest of speed and to provide a full code, we here suppose that the HXR bands are divided into two regions: 1. 0.05-0.15 nm, during which the flux linearly increases by a factor 100 2. 0.15-0.4 nm during which it linearly increases by a factor 5 This is very approximate, but may be corrected in the future..