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
- Convert energy grid to velocity space (v = √E).
- Build extended grid including negative velocities for the FGM integral.
- Compute the integrand Y(w) = w · s(w) on the extended grid.
- For each output velocity, evaluate the Gaussian convolution integral.
- Transform back: σ_D(E) = result / √E.