CO2
NTECARS.CO2Species — Type
CO2Species(; molar_fraction, distribution, v_max=(1,2,1), J_max=100,
chi_non_resonant=4.5e-51, use_collisional_narrowing=true) -> CO2SpeciesGenerates the transition database and then constructs a CO2Species and returns it.
Constructor Arguments
molar_fraction::Float64: Molar fraction of CO₂ in the gas mixture.distribution::CO2Distribution: Rovibrational population distribution, e.g.CO2.MultiTemperatureDistribution.v_max::Tuple{Int64,Int64,Int64}: Maximum vibrational quantum numbers(v1_max, v2_max, v3_max)used to truncate the transition database. Higher. values increase accuracy at high temperatures at the cost of computation time.J_max::Int: Maximum rotational quantum number in the transition database.chi_non_resonant: Non-resonant susceptibility in m²V²/m³.use_collisional_narrowing::Bool: Whether to apply collisional narrowing.
Fields of returned type
molar_fraction::Float64: Molar fraction of CO₂ in the gas mixture.χ_non_resonant::Float64: Non-resonant susceptibility in m²V²/m³.transitions::Dict{String, Vector{CO2Transition}}: Transition database generated fromv_maxandJ_maxat construction time.distribution::CO2Distribution: Rovibrational population distribution.use_collisional_narrowing::Bool: Whether collisional narrowing is applied.name::String: Species identifier, always"CO2". Required internally for constructing molar fraction dictionaries.
Notes
- The transition database is computed once at construction via
CO2.get_transition_database_CO2and stored intransitions. Increasingv_maxcan cause significant comuptation times since large hamiltonians have to be solved. nameis always set to"CO2"and cannot be changed.
Examples
co2 = CO2Species(
molar_fraction = 0.1,
distribution = CO2.MultiTemperatureDistribution(T_12 = 300.0, T_3 = 1800.0, T_rot = 300.0),
v_max = (1, 2, 1),
)NTECARS.CO2.MultiTemperatureDistribution — Type
CO2.MultiTemperatureDistribution(; T_12, T_3, T_rot, iso_ID=:O16C12O16) -> dfConstructs a MultiTemperatureDistribution and returns it.
Constructor Arguments
T_12::AbstractFloat: Temperature of the v₁/v₂ vibrational modes in K.T_3::AbstractFloat: Temperature of the v₃ vibrational mode in K.T_rot::AbstractFloat: Rotational temperature in K.iso_ID::Symbol: Isotopologue identifier. Defaults to:O16C12O16which is the only one supported.
Fields of returned type
T_12::AbstractFloat: Temperature of the v₁/v₂ (symmetric stretch / bending)vibrational modes in KT_3::AbstractFloat: Temperature of the v₃ (asymmetric stretch) vibrationalmode in K.T_rot::AbstractFloat: Rotational temperature in K.Q::AbstractFloat: Partition sum, computed from the other fields at construction. Should not be set manually.iso_ID::Symbol: Isotopologue identifier. Defaults to:O16C12O16which is the only one supported.
Notes
- For a system in full thermal equilibrium, set all three temperatures equal to the gas temperature.
Qis computed viapartition_sumand stored in the struct. It is recomputed automatically if you reconstruct the object with new temperatures.
Examples
# Thermal equilibrium
dist = CO2.MultiTemperatureDistribution(T_12=1500.0, T_3=1500.0, T_rot=1500.0)
# Non-equilibrium: vibrationally excited ν₃ mode
dist = CO2.MultiTemperatureDistribution(T_12=300.0, T_3=1800.0, T_rot=300.0)