pub enum Screening {
ZblUniversal,
KrC,
Moliere,
LenzJensen,
}Expand description
Screening function phi(x), x = r / a.
Variants§
ZblUniversal
ZBL “universal” screening: four exponentials fitted to Hartree-Fock-Slater solid-state pair potentials. J. F. Ziegler, J. P. Biersack, U. Littmark, The Stopping and Range of Ions in Solids (Pergamon, 1985), Ch. 2.
KrC
Kr-C potential: three exponentials fitted to Hartree-Fock Kr-Kr pair interaction. W. D. Wilson, L. G. Haggmark, J. P. Biersack, Phys. Rev. B 15, 2458 (1977).
Moliere
Moliere’s approximation to the Thomas-Fermi function: three exponentials. G. Moliere, Z. Naturforsch. A 2, 133 (1947).
LenzJensen
Lenz-Jensen screening, a polynomial-times-exponential approximation of
the Thomas-Fermi-Jensen statistical model. W. Lenz, Z. Phys. 77, 713
(1932), doi:10.1007/BF01342150; H. Jensen, Z. Phys. 77, 722 (1932),
doi:10.1007/BF01342151. Polynomial form and argument scale as tabulated
in W. Moller, Fundamentals of Ion-Solid Interaction, HZDR-073
(Helmholtz-Zentrum Dresden-Rossendorf, 2017), p. 11, eq. (28); see
LJ_P (private; see its comment in the source) for the verification status.
Implementations§
Source§impl Screening
impl Screening
Sourcepub fn exponential_terms(self) -> Option<&'static [(f64, f64)]>
pub fn exponential_terms(self) -> Option<&'static [(f64, f64)]>
The (c_i, b_i) terms of a sum-of-exponentials screening function
phi(x) = Sum_i c_i exp(-b_i x), or None for Lenz-Jensen. Used by the
analytic stopping asymptote in the scattering tests and the validation
harness (lindhard/tests/validation).
Sourcepub fn default_length(self) -> ScreeningLength
pub fn default_length(self) -> ScreeningLength
The screening length conventionally paired with this function (the pairing used where the function was introduced or fitted): ZBL universal with the universal length, Kr-C and Moliere with the Firsov length, Lenz-Jensen with the Lindhard (Thomas-Fermi) length.
Trait Implementations§
impl Copy for Screening
impl Eq for Screening
impl StructuralPartialEq for Screening
Auto Trait Implementations§
impl Freeze for Screening
impl RefUnwindSafe for Screening
impl Send for Screening
impl Sync for Screening
impl Unpin for Screening
impl UnsafeUnpin for Screening
impl UnwindSafe for Screening
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