[]Struct lumol::Torsion

pub struct Torsion {
    pub k: f64,
    pub delta: f64,
    pub n: usize,

Torsion potential.

This potential is intended for use with dihedral angles, using a custom periodicity and multiple minima.

$$ V(x) = k (1 + \cos(n x - \delta))$$

where $k$ is the force constant, $n$ the periodicity of the potential, and $\delta$ the equilibrium angle.


let potential = Torsion { delta: PI / 2.0, k: 10.0, n: 3 };
assert_eq!(potential.energy(PI / 2.0), 0.0);
assert_eq!(potential.energy(PI / 3.0), 10.0);

assert!(potential.force(PI / 2.0).abs() < 1e-12);


k: f64

Force constant

delta: f64

Equilibrium value

n: usize

Multiplicity of the potential

Trait Implementations

impl Clone for Torsion

impl Copy for Torsion

impl DihedralPotential for Torsion

impl FromToml for Torsion

impl Potential for Torsion

Auto Trait Implementations

impl RefUnwindSafe for Torsion

impl Send for Torsion

impl Sync for Torsion

impl Unpin for Torsion

impl UnwindSafe for Torsion

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>,