doppler_broaden

Function doppler_broaden 

Source
pub fn doppler_broaden(
    energies: &[f64],
    cross_sections: &[f64],
    params: &DopplerParams,
) -> Result<Vec<f64>, DopplerError>
Expand description

Apply FGM Doppler broadening to cross-section data.

The cross-sections are broadened in velocity space using the exact Free Gas Model integral from SAMMY manual Eq. III B1.7.

§Arguments

  • energies — Energy grid in eV (must be positive and sorted ascending).
  • cross_sections — Unbroadened cross-sections in barns at each energy point.
  • params — Doppler broadening parameters (temperature and AWR).

§Returns

Doppler-broadened cross-sections in barns on the same energy grid.

§Algorithm

  1. Convert energy grid to velocity space (v = √E).
  2. Build extended grid including negative velocities for the FGM integral.
  3. Compute the integrand Y(w) = w · s(w) on the extended grid.
  4. For each output velocity, evaluate the Gaussian convolution integral.
  5. Transform back: σ_D(E) = result / √E.