The SKIRT project
advanced radiative transfer for astrophysics
NebularLineEmission Class Referencefinal

#include <NebularLineEmission.hpp>

Public Types

enum  LineIndex {
  Lya , Ha , Hb , Hg ,
  Hd , HeBalmer , Paa , Pab ,
  Bra , NII6548 , NII6583 , OI6300 ,
  OI6364 , OII3729 , OII3726 , OIII4363 ,
  OIII4959 , OIII5007 , SII6716 , SII6731
}

Static Public Member Functions

static double hydrogenLineLuminosity (int lineIdx, double T, double ne, double gammaHI, double nHI, double V_cm3)
static double metalLineLuminosity (int lineIdx, double T, double ne, double nIon, double V_cm3)

Static Public Attributes

static constexpr int lineCarrierIonIndex [numLines]
static constexpr int lineElementIndex [numLines]
static constexpr double lineMasses [numLines]
static constexpr double lineWavelengths [numLines]
static constexpr int numLines

Detailed Description

The NebularLineEmission class provides static data tables and functions for computing nebular emission from photoionized gas:

  • H recombination lines (Case B): Storey & Hummer (1995) P_B tables with Hui & Gnedin (1997) alpha_B. Lines: Lyman-alpha, Balmer (alpha through epsilon), Paschen (alpha, beta), Brackett alpha.
  • Metal forbidden lines: pre-tabulated collisional excitation rate coefficients q_col(T, n_e) from CHIANTI statistical equilibrium. Lines: [NII] 6548/6583, [OI] 6300/6364, [OII] 3727/3729, [OIII] 4363/4959/5007, [SII] 6716/6731.

Implementation follows McClymont, Smith & Tacchella (2025).

All internal component functions, coefficient tables, and helper constants are file-local to the implementation translation unit; only the public entry points are exposed.

Member Function Documentation

◆ hydrogenLineLuminosity()

double NebularLineEmission::hydrogenLineLuminosity ( int lineIdx,
double T,
double ne,
double gammaHI,
double nHI,
double V_cm3 )
static

Compute H recombination line luminosity [W] in the photon-conserving form L = P_B(T, ne) * Gamma_HI * n_HI * V * h*nu_line. Assumes photoionization balance: each H-I photoionization eventually produces one Case B recombination, of which a fraction P_B emits in the requested line. lineIdx: LineIndex::Lya through LineIndex::Bra T: temperature [K] ne: electron density [cm^-3] gammaHI: H I photoionization rate per H atom [s^-1] nHI: neutral hydrogen number density [cm^-3] V_cm3: cell volume [cm^3] Returns luminosity in [W] (SI).

◆ metalLineLuminosity()

double NebularLineEmission::metalLineLuminosity ( int lineIdx,
double T,
double ne,
double nIon,
double V_cm3 )
static

Compute metal forbidden line luminosity [W] for a given cell. lineIdx: LineIndex::NII6548 through LineIndex::SII6731 T: temperature [K] ne: electron density [cm^-3] nIon: carrier ion number density [cm^-3] V_cm3: cell volume [cm^3] Returns luminosity in [W] (SI).


The documentation for this class was generated from the following file: