pub struct BehlerParrinelloDescriptor {
pub eta: Vec<f64>,
pub rs: Vec<f64>,
pub cutoff: f64,
}Expand description
Behler-Parrinello symmetry functions for constructing atomic descriptors.
Reference: J. Behler and M. Parrinello, PRL 98, 146401 (2007).
Fields§
§eta: Vec<f64>Radial decay parameters η for G2 functions.
rs: Vec<f64>Shift parameters R_s for G2 functions.
cutoff: f64Cutoff radius R_c in Ångström (or same units as positions).
Implementations§
Source§impl BehlerParrinelloDescriptor
impl BehlerParrinelloDescriptor
Sourcepub fn cutoff_fn(r: f64, rc: f64) -> f64
pub fn cutoff_fn(r: f64, rc: f64) -> f64
Smooth cutoff function.
f_c(r) = 0.5 * (cos(π r / R_c) + 1) for r < R_c, else 0.
Sourcepub fn radial_g2(r: f64, eta: f64, rs: f64, rc: f64) -> f64
pub fn radial_g2(r: f64, eta: f64, rs: f64, rc: f64) -> f64
G2 radial symmetry function: G2 = exp(-η (r - R_s)²) * f_c(r).
Sourcepub fn angular_g4(
r_ij: f64,
r_ik: f64,
r_jk: f64,
cos_theta: f64,
eta: f64,
zeta: f64,
lambda: f64,
rc: f64,
) -> f64
pub fn angular_g4( r_ij: f64, r_ik: f64, r_jk: f64, cos_theta: f64, eta: f64, zeta: f64, lambda: f64, rc: f64, ) -> f64
G4 angular symmetry function (two-body factor for a triplet i-j-k).
G4 = 2^(1-ζ) * (1 + λ cos θ)^ζ * exp(-η (r_ij² + r_ik² + r_jk²)) * f_c(r_ij) f_c(r_ik) f_c(r_jk)
Trait Implementations§
Source§impl Clone for BehlerParrinelloDescriptor
impl Clone for BehlerParrinelloDescriptor
Source§fn clone(&self) -> BehlerParrinelloDescriptor
fn clone(&self) -> BehlerParrinelloDescriptor
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for BehlerParrinelloDescriptor
impl RefUnwindSafe for BehlerParrinelloDescriptor
impl Send for BehlerParrinelloDescriptor
impl Sync for BehlerParrinelloDescriptor
impl Unpin for BehlerParrinelloDescriptor
impl UnsafeUnpin for BehlerParrinelloDescriptor
impl UnwindSafe for BehlerParrinelloDescriptor
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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