pub struct FrohlichPhonon { /* private fields */ }Expand description
One Fröhlich LO-phonon mode of a polar material at a temperature: the parameters of the emission and absorption channels. See the module docs for the equations and their sources.
Implementations§
Source§impl FrohlichPhonon
impl FrohlichPhonon
Sourcepub fn new(
hbar_omega_ev: f64,
eps_static: f64,
eps_high_frequency: f64,
temperature_k: f64,
provenance: impl Into<String>,
) -> Result<Self, PhononError>
pub fn new( hbar_omega_ev: f64, eps_static: f64, eps_high_frequency: f64, temperature_k: f64, provenance: impl Into<String>, ) -> Result<Self, PhononError>
Check and build. hbar_omega_ev is the LO-phonon energy ħω (eV,
finite and positive), eps_static and eps_high_frequency the static
and high-frequency relative permittivities ε₀ > ε∞ > 0 (finite), and
temperature_k the lattice temperature (K, finite, >= 0; at 0 there
is no absorption). provenance names the source of the values and must
not be blank.
Sourcepub fn sio2(mode: Sio2LoMode, temperature_k: f64) -> Result<Self, PhononError>
pub fn sio2(mode: Sio2LoMode, temperature_k: f64) -> Result<Self, PhononError>
One LO mode of SiO₂ at temperature_k, with ε₀ = 3.9 and
ε∞ = 2.25 and the mode energies of Sio2LoMode, all as quoted in
Ding, Li, Da, Liu, Sci. Technol. Adv. Mater. 22, 932 (2021),
doi:10.1080/14686996.2021.1976597, Section 2.3 (the text after
Eq. (14) for ε₀, ε∞; the text before it for the modes). The review
treats the two modes one at a time; this model has one mode per layer,
and how to combine both modes is not modelled here.
Sourcepub fn hbar_omega_ev(&self) -> f64
pub fn hbar_omega_ev(&self) -> f64
LO-phonon energy ħω, eV.
Sourcepub fn eps_static(&self) -> f64
pub fn eps_static(&self) -> f64
Static relative permittivity ε₀.
Sourcepub fn eps_high_frequency(&self) -> f64
pub fn eps_high_frequency(&self) -> f64
High-frequency relative permittivity ε∞.
Sourcepub fn temperature_k(&self) -> f64
pub fn temperature_k(&self) -> f64
Lattice temperature, K.
Sourcepub fn provenance(&self) -> &str
pub fn provenance(&self) -> &str
Source of the parameter values.
Sourcepub fn occupation(&self) -> f64
pub fn occupation(&self) -> f64
Bose occupation n(T) = 1/(exp(ħω/k_B T) - 1) of the mode (Ding et al. (2021)
text after Eq. (14); Taioli & Dapor Eq. (34)); 0 at T = 0.
Sourcepub fn emission_inverse_mfp_per_m(&self, e_ev: f64) -> f64
pub fn emission_inverse_mfp_per_m(&self, e_ev: f64) -> f64
Inverse mean free path for emitting one phonon at energy e_ev, m⁻¹
(Taioli & Dapor Eq. (33); Ding et al. (2021) Eq. (14) divided by the speed). Zero for
e_ev <= ħω. The logarithm is evaluated as
ln[(1 + √(1 - x))² / x], the same quantity without the cancellation
in 1 - √(1 - x) at small x.
Sourcepub fn absorption_inverse_mfp_per_m(&self, e_ev: f64) -> f64
pub fn absorption_inverse_mfp_per_m(&self, e_ev: f64) -> f64
Inverse mean free path for absorbing one phonon at energy e_ev, m⁻¹
(Ding et al. (2021) Eq. (15) divided by the speed). Zero at T = 0 or for
e_ev <= 0. The logarithm is evaluated as ln[(√(1 + x) + 1)² / x].
Trait Implementations§
Source§impl Clone for FrohlichPhonon
impl Clone for FrohlichPhonon
Source§fn clone(&self) -> FrohlichPhonon
fn clone(&self) -> FrohlichPhonon
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FrohlichPhonon
impl Debug for FrohlichPhonon
Source§impl PartialEq for FrohlichPhonon
impl PartialEq for FrohlichPhonon
Source§impl Serialize for FrohlichPhonon
impl Serialize for FrohlichPhonon
impl StructuralPartialEq for FrohlichPhonon
Auto Trait Implementations§
impl Freeze for FrohlichPhonon
impl RefUnwindSafe for FrohlichPhonon
impl Send for FrohlichPhonon
impl Sync for FrohlichPhonon
impl Unpin for FrohlichPhonon
impl UnsafeUnpin for FrohlichPhonon
impl UnwindSafe for FrohlichPhonon
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more