Absorption Module Overview
RT pipeline uses AtmosphericAbsorption.jl (since externalAbsorption merge)
Since the externalAbsorption merge, the RT production pipeline (model_from_parameters → rt_run) computes line-by-line gas absorption via the external AtmosphericAbsorption.jl package (AtmosphericAbsorption.load_lines + LineByLineModel; uses TIPS-2021 partition functions). The internal Absorption module documented on this page remains the supported standalone API for direct cross-section work: read_hitran / make_hitran_model / absorption_cross_section (TIPS-2017), plus the CIA / MT-CKD continuum and LUT paths. Users who call rt_run do not need to interact with the internal Absorption module directly; users who need standalone σ(ν, T, p) queries should use this module.
This module enables absorption cross-section calculations of atmospheric gases at different pressures, temperatures, and broadeners (Doppler, Lorentzian, Voigt). It uses the HITRAN energy transition database for calculations.
While it enables lineshape calculations from scratch, the module also allows users to create and save an interpolator object at specified wavelength, pressure, and temperature grids.
The module also supports auto-differentiation (AD) of the profile, with respect to pressure and temperature. Calculations can be computed either on CPU or GPU (CUDA).
Users can calculate an absorption cross-section in a few simple steps:
First, obtain HITRAN line transition data. vSmartMOM supports two pathways: legacy pre-packaged HITRAN 2016 artifacts (the default) or direct download from hitran.org for the latest edition (currently HITRAN 2024). See the HITRAN Data Management page for details.
Use
read_hitranto read in the HITRAN database fileUse
make_hitran_modelormake_interpolation_modelto set up model parameters for the cross-section calculationUse
absorption_cross_sectionto perform the cross-section calculation using the defined model settings
For a full runnable walkthrough, see the absorption tutorial. Public docstrings are grouped in the Absorption API.
Architecture

The Absorption.jl architecture closely follows the user's workflow to calculate the absorption cross-section. There are functions for loading a HITRAN line-list, defining profile parameters, and performing the calculation.
Please note that calculating an absorption cross-section from scratch and creating an interpolation model relies on the same underlying compute_absorption_section function. This is where the main broadening equations are implemented. The interpolation model simply calls this function for all points on the pressure-temperature grids, and produces the interpolator object. This function was mainly designed for internal use, so users should generally use the absorption_cross_section function instead.