Skip to content

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
julia
type AbstractRamanType

Abstract Raman type

source
vSmartMOM.InelasticScattering.noRS Type
julia
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.

source
vSmartMOM.InelasticScattering.noRS_plus Type
julia
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.

source
vSmartMOM.InelasticScattering.RRS Type
julia
struct RRS{FT<:AbstractFloat}

A struct which defines Rotational Raman Scattering parameters

Fields

  • n2: Molecular Constants for N2

  • o2: Molecular Constants for O2

  • greek_raman: Greek coeffs in Raman calculations

  • fscattRayl: Pre-computed optical properties

  • ϖ_Cabannes

  • ϖ_λ₁λ₀

  • i_λ₁λ₀

  • Z⁻⁺_λ₁λ₀

  • Z⁺⁺_λ₁λ₀

  • i_ref

  • n_Raman

  • bandSpecLim

  • iBand

  • F₀

  • SIF₀

source
vSmartMOM.InelasticScattering.VS_0to1 Type
julia
struct RRS{FT<:AbstractFloat}

A struct which defines Rotational Raman Scattering parameters

Fields

  • n2: Molecular Constant for N2

  • o2: Molecular Constant for O2

  • greek_raman: Greek coefs in Raman calculations

  • fscattRayl: Pre-computed optical properties

  • ϖ_Cabannes

  • ϖ_λ₁λ₀

  • i_λ₁λ₀

  • Z⁻⁺_λ₁λ₀

  • Z⁺⁺_λ₁λ₀

  • dτ₀

  • dτ₀_λ

  • k_Rayl_scatt

  • n_Raman

  • F₀

  • SIF₀

source
vSmartMOM.InelasticScattering.VS_1to0 Type
julia
struct RRS{FT<:AbstractFloat}

A struct which defines Rotational Raman Scattering parameters

Fields

  • n2: Molecular Constant for N2

  • o2: Molecular Constant for O2

  • greek_raman: Greek coefs in Raman calculations

  • fscattRayl: Pre-computed optical properties

  • ϖ_Cabannes

  • ϖ_λ₁λ₀

  • i_λ₁λ₀

  • Z⁻⁺_λ₁λ₀

  • Z⁺⁺_λ₁λ₀

  • dτ₀

  • dτ₀_λ

  • k_Rayl_scatt

  • n_Raman

  • F₀

  • SIF₀

source
vSmartMOM.InelasticScattering.VS_0to1_plus Type
julia
struct RRS{FT<:AbstractFloat}

A struct which defines Rotational Raman Scattering parameters

Fields

  • bandSpecLim: Concatenated indices of band limits

  • iBand

  • grid_in

  • n2: Molecular Constant for N2

  • o2: Molecular Constant for O2

  • greek_raman: Greek coefs in Raman calculations

  • greek_raman_VS_n2

  • greek_raman_VS_o2

  • fscattRayl: Pre-computed optical properties

  • ϖ_Cabannes

  • ϖ_λ₁λ₀

  • i_λ₁λ₀

  • Z⁻⁺_λ₁λ₀

  • Z⁺⁺_λ₁λ₀

  • ϖ_λ₁λ₀_VS_n2

  • i_λ₁λ₀_VS_n2

  • Z⁻⁺_λ₁λ₀_VS_n2

  • Z⁺⁺_λ₁λ₀_VS_n2

  • ϖ_λ₁λ₀_VS_o2

  • i_λ₁λ₀_VS_o2

  • Z⁻⁺_λ₁λ₀_VS_o2

  • Z⁺⁺_λ₁λ₀_VS_o2

  • i_λ₁λ₀_all

  • i_ref

  • n_Raman

  • F₀

  • SIF₀

source
vSmartMOM.InelasticScattering.VS_1to0_plus Type
julia
struct RRS{FT<:AbstractFloat}

A struct which defines Rotational Raman Scattering parameters

Fields

  • bandSpecLim: Concatenated indices of band limits

  • iBand

  • grid_in

  • n2: Molecular Constant for N2

  • o2: Molecular Constant for O2

  • greek_raman: Greek coefs in Raman calculations

  • greek_raman_VS_n2

  • greek_raman_VS_o2

  • fscattRayl: Pre-computed optical properties

  • ϖ_Cabannes

  • ϖ_λ₁λ₀

  • i_λ₁λ₀

  • Z⁻⁺_λ₁λ₀

  • Z⁺⁺_λ₁λ₀

  • ϖ_λ₁λ₀_VS_n2

  • i_λ₁λ₀_VS_n2

  • Z⁻⁺_λ₁λ₀_VS_n2

  • Z⁺⁺_λ₁λ₀_VS_n2

  • ϖ_λ₁λ₀_VS_o2

  • i_λ₁λ₀_VS_o2

  • Z⁻⁺_λ₁λ₀_VS_o2

  • Z⁺⁺_λ₁λ₀_VS_o2

  • i_λ₁λ₀_all

  • i_ref

  • n_Raman

  • F₀

  • SIF₀

source

Molecular and Source Helpers

vSmartMOM.InelasticScattering.compute_γ_air_Cabannes! Function
julia
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.

source
vSmartMOM.InelasticScattering.compute_γ_air_Rayleigh! Function
julia
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.

source
vSmartMOM.InelasticScattering.compute_σ_Rayl_coeff! Function
julia
compute_σ_Rayl_coeff!(mol)

Update the molecular Rayleigh cross-section prefactor stored on mol.

source
vSmartMOM.InelasticScattering.compute_σ_Rayl_VibRaman_coeff_hires! Function
julia
compute_σ_Rayl_VibRaman_coeff_hires!(T, mol; Jmax=30)

Update high-resolution Rayleigh and vibrational Raman transition prefactors over rotational levels up to Jmax.

source
vSmartMOM.InelasticScattering.compute_σ_VibRaman_coeff! Function
julia
compute_σ_VibRaman_coeff!(T, mol; vmax=2, Jmax=30)

Update Stokes and anti-Stokes vibrational Raman cross-section prefactors for mol at temperature T.

source
vSmartMOM.InelasticScattering.apply_lineshape! Function
julia
apply_lineshape!(Δνᵢ, σᵢ, λ₀, Δν_out, σ_out, pressure, temperature, molMass; wavelength_flag=false)

Broaden discrete Raman transitions onto Δν_out, writing cross sections into σ_out for incident wavelength λ₀.

source
vSmartMOM.InelasticScattering.compute_energy_levels! Function
julia
compute_energy_levels!(mol; vmax=2, Jmax=30)

Populate molecular vibrational/rotational energy levels in cm⁻¹ for v = 0:vmax and J = 0:Jmax.

source
vSmartMOM.InelasticScattering.compute_stellar_Rayl Function
julia
compute_stellar_Rayl(λ₀, h2)

Return the H₂ Rayleigh cross section at stellar/solar wavelength λ₀.

source
vSmartMOM.InelasticScattering.get_greek_raman Function
julia
get_greek_raman(rs, n2, o2)

Return Raman phase-function Greek coefficients for rotational or rovibrational Raman scattering in an N₂/O₂ atmosphere.

source