pub struct SplinedAngle { /* private fields */ }Expand description
A splined version of any threebody angle potential.
Provides O(1) evaluation via cubic Hermite interpolation over [0, π].
Implements ThreebodyAngleEnergy as a drop-in replacement.
Implementations§
Source§impl SplinedAngle
impl SplinedAngle
Sourcepub fn new(potential: &dyn ThreebodyAngleEnergy, n_points: usize) -> Self
pub fn new(potential: &dyn ThreebodyAngleEnergy, n_points: usize) -> Self
Sourcepub fn coefficients(&self) -> &[SplineCoeffs]
pub fn coefficients(&self) -> &[SplineCoeffs]
Returns a reference to the spline coefficients.
Sourcepub fn energy_and_force(&self, angle: f64) -> (f64, f64)
pub fn energy_and_force(&self, angle: f64) -> (f64, f64)
Evaluate both energy and force in a single lookup.
Trait Implementations§
Source§impl Clone for SplinedAngle
impl Clone for SplinedAngle
Source§fn clone(&self) -> SplinedAngle
fn clone(&self) -> SplinedAngle
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 moreSource§impl Debug for SplinedAngle
impl Debug for SplinedAngle
Source§impl ThreebodyAngleEnergy for SplinedAngle
impl ThreebodyAngleEnergy for SplinedAngle
Source§fn threebody_angle_energy(&self, angle: f64) -> f64
fn threebody_angle_energy(&self, angle: f64) -> f64
Interaction energy between three particles.
Source§fn threebody_angle_force(&self, angle: f64) -> f64
fn threebody_angle_force(&self, angle: f64) -> f64
Torque: -dU/dθ. Default uses central difference.
Auto Trait Implementations§
impl Freeze for SplinedAngle
impl RefUnwindSafe for SplinedAngle
impl Send for SplinedAngle
impl Sync for SplinedAngle
impl Unpin for SplinedAngle
impl UnsafeUnpin for SplinedAngle
impl UnwindSafe for SplinedAngle
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.