[]Struct lumol::CosineHarmonic

pub struct CosineHarmonic { /* fields omitted */ }

Cosine harmonic potential.

$$ V(x) = \frac{1}{2} k \left[\cos(x) - \cos(x_0) \right]^2 $$

where $x_0$ is the equilibrium value, and $k$ the elastic constant.


let potential = CosineHarmonic::new(/*k*/ 100.0, /*x0*/ 2.0);
assert_eq!(potential.energy(2.0), 0.0);
assert_eq!(potential.energy(3.0), 16.464942078100552);

assert_eq!(potential.force(2.0), 0.0);


impl CosineHarmonic

pub fn new(k: f64, x0: f64) -> CosineHarmonic

Create a new CosineHarmonic potentials, with elastic constant of k and equilibrium value of x0

Trait Implementations

impl AnglePotential for CosineHarmonic

impl Clone for CosineHarmonic

impl Copy for CosineHarmonic

impl DihedralPotential for CosineHarmonic

impl FromToml for CosineHarmonic

impl Potential for CosineHarmonic

Auto Trait Implementations

impl RefUnwindSafe for CosineHarmonic

impl Send for CosineHarmonic

impl Sync for CosineHarmonic

impl Unpin for CosineHarmonic

impl UnwindSafe for CosineHarmonic

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized

impl<T> Borrow<T> for T where
    T: ?Sized

impl<T> BorrowMut<T> for T where
    T: ?Sized

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<P> Potential for P where
    P: 'static + Computation + Clone

impl<T> ToOwned for T where
    T: Clone

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,