Inelastic Scattering API
InelasticScattering defines Raman/Cabannes mode types and helper routines used by the inelastic source paths in CoreRT.
Mode Types
vSmartMOM.InelasticScattering.AbstractRamanType Type
type AbstractRamanTypeAbstract Raman type
sourcevSmartMOM.InelasticScattering.noRS Type
noRS(; kwargs...)
noRS{FT}(; kwargs...)Pure elastic-scattering mode. This mode carries no inelastic redistribution state and is the default Raman type used by rt_run(model). The untyped keyword constructor infers FT from supplied floating-point arrays and falls back to Float64 when no typed arrays are provided.
vSmartMOM.InelasticScattering.noRS_plus Type
noRS_plus(; kwargs...)
noRS_plus{FT}(; kwargs...)Concatenated-grid pure elastic-scattering mode used by plus-mode code paths that share the Raman interface but do not include inelastic redistribution. The untyped keyword constructor infers FT from supplied floating-point inputs and falls back to Float64 when no typed inputs are provided.
vSmartMOM.InelasticScattering.RRS Type
struct RRS{FT<:AbstractFloat}A struct which defines Rotational Raman Scattering parameters
Fields
n2: Molecular Constants for N2o2: Molecular Constants for O2greek_raman: Greek coeffs in Raman calculationsfscattRayl: Pre-computed optical propertiesϖ_Cabannesϖ_λ₁λ₀i_λ₁λ₀Z⁻⁺_λ₁λ₀Z⁺⁺_λ₁λ₀i_refn_RamanbandSpecLimiBandF₀SIF₀
vSmartMOM.InelasticScattering.VS_0to1 Type
struct RRS{FT<:AbstractFloat}A struct which defines Rotational Raman Scattering parameters
Fields
n2: Molecular Constant for N2o2: Molecular Constant for O2greek_raman: Greek coefs in Raman calculationsfscattRayl: Pre-computed optical propertiesϖ_Cabannesϖ_λ₁λ₀i_λ₁λ₀Z⁻⁺_λ₁λ₀Z⁺⁺_λ₁λ₀dτ₀dτ₀_λk_Rayl_scattn_RamanF₀SIF₀
vSmartMOM.InelasticScattering.VS_1to0 Type
struct RRS{FT<:AbstractFloat}A struct which defines Rotational Raman Scattering parameters
Fields
n2: Molecular Constant for N2o2: Molecular Constant for O2greek_raman: Greek coefs in Raman calculationsfscattRayl: Pre-computed optical propertiesϖ_Cabannesϖ_λ₁λ₀i_λ₁λ₀Z⁻⁺_λ₁λ₀Z⁺⁺_λ₁λ₀dτ₀dτ₀_λk_Rayl_scattn_RamanF₀SIF₀
vSmartMOM.InelasticScattering.VS_0to1_plus Type
struct RRS{FT<:AbstractFloat}A struct which defines Rotational Raman Scattering parameters
Fields
bandSpecLim: Concatenated indices of band limitsiBandgrid_inn2: Molecular Constant for N2o2: Molecular Constant for O2greek_raman: Greek coefs in Raman calculationsgreek_raman_VS_n2greek_raman_VS_o2fscattRayl: Pre-computed optical propertiesϖ_Cabannesϖ_λ₁λ₀i_λ₁λ₀Z⁻⁺_λ₁λ₀Z⁺⁺_λ₁λ₀ϖ_λ₁λ₀_VS_n2i_λ₁λ₀_VS_n2Z⁻⁺_λ₁λ₀_VS_n2Z⁺⁺_λ₁λ₀_VS_n2ϖ_λ₁λ₀_VS_o2i_λ₁λ₀_VS_o2Z⁻⁺_λ₁λ₀_VS_o2Z⁺⁺_λ₁λ₀_VS_o2i_λ₁λ₀_alli_refn_RamanF₀SIF₀
vSmartMOM.InelasticScattering.VS_1to0_plus Type
struct RRS{FT<:AbstractFloat}A struct which defines Rotational Raman Scattering parameters
Fields
bandSpecLim: Concatenated indices of band limitsiBandgrid_inn2: Molecular Constant for N2o2: Molecular Constant for O2greek_raman: Greek coefs in Raman calculationsgreek_raman_VS_n2greek_raman_VS_o2fscattRayl: Pre-computed optical propertiesϖ_Cabannesϖ_λ₁λ₀i_λ₁λ₀Z⁻⁺_λ₁λ₀Z⁺⁺_λ₁λ₀ϖ_λ₁λ₀_VS_n2i_λ₁λ₀_VS_n2Z⁻⁺_λ₁λ₀_VS_n2Z⁺⁺_λ₁λ₀_VS_n2ϖ_λ₁λ₀_VS_o2i_λ₁λ₀_VS_o2Z⁻⁺_λ₁λ₀_VS_o2Z⁺⁺_λ₁λ₀_VS_o2i_λ₁λ₀_alli_refn_RamanF₀SIF₀
Molecular and Source Helpers
vSmartMOM.InelasticScattering.compute_γ_air_Cabannes! Function
compute_γ_air_Cabannes!(λ₀, rs_or_n2, [o2])Compute the effective Cabannes Greek coefficient γ and elastic Cabannes fraction for an air mixture at wavelength λ₀ in nm.
vSmartMOM.InelasticScattering.compute_γ_air_Rayleigh! Function
compute_γ_air_Rayleigh!(λ₀, rs_or_n2, [o2])Compute the effective Rayleigh Greek coefficient γ and Rayleigh cross section for an air mixture at wavelength λ₀ in nm.
vSmartMOM.InelasticScattering.compute_σ_Rayl_coeff! Function
compute_σ_Rayl_coeff!(mol)Update the molecular Rayleigh cross-section prefactor stored on mol.
vSmartMOM.InelasticScattering.compute_σ_Rayl_VibRaman_coeff_hires! Function
compute_σ_Rayl_VibRaman_coeff_hires!(T, mol; Jmax=30)Update high-resolution Rayleigh and vibrational Raman transition prefactors over rotational levels up to Jmax.
vSmartMOM.InelasticScattering.compute_σ_VibRaman_coeff! Function
compute_σ_VibRaman_coeff!(T, mol; vmax=2, Jmax=30)Update Stokes and anti-Stokes vibrational Raman cross-section prefactors for mol at temperature T.
vSmartMOM.InelasticScattering.apply_lineshape! Function
apply_lineshape!(Δνᵢ, σᵢ, λ₀, Δν_out, σ_out, pressure, temperature, molMass; wavelength_flag=false)Broaden discrete Raman transitions onto Δν_out, writing cross sections into σ_out for incident wavelength λ₀.
vSmartMOM.InelasticScattering.compute_energy_levels! Function
compute_energy_levels!(mol; vmax=2, Jmax=30)Populate molecular vibrational/rotational energy levels in cm⁻¹ for v = 0:vmax and J = 0:Jmax.
vSmartMOM.InelasticScattering.compute_stellar_Rayl Function
compute_stellar_Rayl(λ₀, h2)Return the H₂ Rayleigh cross section at stellar/solar wavelength λ₀.
vSmartMOM.InelasticScattering.get_greek_raman Function
get_greek_raman(rs, n2, o2)Return Raman phase-function Greek coefficients for rotational or rovibrational Raman scattering in an N₂/O₂ atmosphere.
source