HajimeKawahara/exojax

View on GitHub
documents/userguide/rayleigh.rst

Summary

Maintainability
Test Coverage
Rayleigh scattering
========================

The cross section of Rayleigh scattering of gas from polarizability is expressed as 

:math:`\sigma(\nu) = \frac{ 128 \pi^5 }{3} \nu^4 \alpha^2 F_k`

where 
:math:`\alpha`
is polarizability and 
:math:`F_k`
is the King factor.


In ExoJAX, the cross section can be computed using `spec.rayleigh.xsvector_rayleigh_gas <../exojax/exojax.spec.html#exojax.spec.rayleigh.xsvector_rayleigh_gas>`_ .

.. code:: ipython3
    
    from exojax.atm.polarizability import polarizability
    from exojax.atm.polarizability import king_correction_factor
    from exojax.utils.grids import wavenumber_grid

    nus, wav, res = wavenumber_grid(
        3000.0, 3100.0, 128, xsmode="premodit", wavelength_order="descending", unit="nm"
    )
    sigma = xsvector_rayleigh_gas(nus, polarizability["CO"], king_correction_factor["CO"])




Lorentz - Lorenz relation
----------------------------

When you need the refractive index, the Lorentz-Lorenz relation `exojax.atm.lorentz_lorenz.refractive_index_Lorentz_Lorenz <../exojax/exojax.atm.html#exojax.atm.lorentz_lorenz.refractive_index_Lorentz_Lorenz>`_ is available. This formulae converts polarizability to refractive index.


Uses OpaRayleigh
-----------------------------

``OpaRayleigh`` is ``opa`` for Rayleigh scattering. It's easy to use.


.. code:: ipython3
    
    N=1000
    nu_grid, wav, res = wavenumber_grid(300, 40000.0, N, xsmode="premodit", unit="nm")
    opa = OpaRayleigh(nu_grid,"N2")
    xs = opa.xsvector()