pub struct SpectralEmissivityModel {
pub wavelengths: Vec<f64>,
pub emissivities: Vec<f64>,
}Expand description
Spectrally resolved emissivity model using piecewise linear interpolation.
Allows emissivity to vary with wavelength, which is important for selective emitters/absorbers in solar thermal and thermophotovoltaic systems.
Fields§
§wavelengths: Vec<f64>Wavelengths [m] at which emissivity is specified (sorted ascending).
emissivities: Vec<f64>Emissivity values (0–1) at each wavelength knot.
Implementations§
Source§impl SpectralEmissivityModel
impl SpectralEmissivityModel
Sourcepub fn new(wavelengths: Vec<f64>, emissivities: Vec<f64>) -> Self
pub fn new(wavelengths: Vec<f64>, emissivities: Vec<f64>) -> Self
Create from matched wavelength and emissivity vectors.
Wavelengths must be sorted in ascending order.
Sourcepub fn emissivity_at(&self, lambda: f64) -> f64
pub fn emissivity_at(&self, lambda: f64) -> f64
Linearly interpolate emissivity at wavelength lambda [m].
Clamps to the first/last value outside the defined range.
Sourcepub fn effective_total_emissivity(&self, temp_k: f64, n_steps: usize) -> f64
pub fn effective_total_emissivity(&self, temp_k: f64, n_steps: usize) -> f64
Compute the total (hemispherical) emissivity at temperature temp_k
by integrating ε(λ) * E_b(λ, T) over all wavelengths.
Uses simple trapezoidal rule with n_steps intervals over the range
[100 nm, 100 µm].
Trait Implementations§
Source§impl Clone for SpectralEmissivityModel
impl Clone for SpectralEmissivityModel
Source§fn clone(&self) -> SpectralEmissivityModel
fn clone(&self) -> SpectralEmissivityModel
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more