Skip to contents

Implements the CF-LIBS method for semi-quantitative analysis without reference standards. Uses the Boltzmann plot method to estimate plasma temperature and then relative elemental concentrations from line intensities. Electron density is provided as an input or assumed.

Usage

ls_saha_boltzmann(
  x,
  elements,
  lines_nm,
  electron_density = 1e+17,
  window_nm = 0.5,
  verbose = TRUE
)

Arguments

x

A ls_spectrum() object (ideally baseline-corrected).

elements

Character vector. Elements to quantify.

lines_nm

Named list. Emission lines per element for the Boltzmann plot, e.g. list(Ca = c(393.37, 396.85, 422.67)).

electron_density

Numeric. Assumed electron density (cm^-3). Default 1e17.

window_nm

Numeric. Integration window per line. Default 0.5.

verbose

Logical. Default TRUE.

Value

A tibble::tibble() with columns element, temperature_k, concentration_rel (relative mole fraction, sum normalized to 1), electron_density, n_lines (lines used), r_squared (Boltzmann fit).

Examples

spec <- ls_simulate_spectrum(
  elements = c(Ca = 5000, Fe = 200, Na = 1000), seed = 2)
spec <- ls_baseline(spec)
ls_saha_boltzmann(spec,
  elements = c("Ca", "Fe"),
  lines_nm = list(Ca = c(422.673, 445.478, 487.813),
                  Fe = c(371.994, 404.581, 438.354)))
#> # A tibble: 2 × 6
#>   element temperature_k concentration_rel electron_density n_lines r_squared
#>   <chr>           <dbl>             <dbl>            <dbl>   <int>     <dbl>
#> 1 Ca            -65656.         0.0000425             1e17       3     0.449
#> 2 Fe              4378.         1.000                 1e17       3     0.907