[−]Struct lumol::Mie
Mie potential.
This is a generalization of the Lennard-Jones potential with arbitrary (floating point) exponents.
$$ V(r) = \epsilon \frac{n}{n - m} \frac{n}{m}^\frac{m}{n - m} \left[\left(\frac \sigma r \right)^n - \left(\frac \sigma r \right)^m \right] $$
where $\epsilon$ is an energetic constant, $\sigma$ is a distance constant, and $n$, $m$ are the repulsive and attractive exponents, respectively.
Restrictions
$n$ has to be larger than $m$
For $m$ smaller than 3.0, there is no analytic tail correction and the energy and force contributions will be set to zero.
Examples
let potential = Mie::new(/*sigma*/ 2.0, /*epsilon*/ 10.0, /*n*/ 12.0, /*m*/ 6.0); assert_eq!(potential.energy(2.0), 0.0); assert!(f64::abs(potential.energy(3.0) + 3.203365942785746) < 1e-8); assert_eq!(potential.force(2.0), 120.0);
Implementations
impl Mie
Trait Implementations
impl Clone for Mie
pub fn clone(&self) -> Mie
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Copy for Mie
impl FromToml for Mie
impl PairPotential for Mie
pub fn tail_energy(&self, cutoff: f64) -> f64
pub fn tail_virial(&self, cutoff: f64) -> f64
fn virial(&self, r: &Vector3D) -> Matrix3
impl Potential for Mie
Auto Trait Implementations
impl RefUnwindSafe for Mie
impl Send for Mie
impl Sync for Mie
impl Unpin for Mie
impl UnwindSafe for Mie
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<P> Potential for P where
P: 'static + Computation + Clone,
P: 'static + Computation + Clone,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,