[]Struct lumol::Wolf

pub struct Wolf { /* fields omitted */ }

Wolf summation for coulombic interactions.

This is a fast, direct, pairwise summation for coulombic potential [Wolf1999].

Examples


// A relatively large cutoff is needed for Wolf summation
let wolf = Wolf::new(12.0);

// Setup a system containing a NaCl pair
let mut system = System::with_cell(UnitCell::cubic(30.0));

let mut na = Particle::new("Na");
na.charge = 1.0;
na.position = Vector3D::new(0.0, 0.0, 0.0);

let mut cl = Particle::new("Cl");
cl.charge = -1.0;
cl.position = Vector3D::new(2.0, 0.0, 0.0);

system.add_molecule(Molecule::new(na));
system.add_molecule(Molecule::new(cl));

// Use Wolf summation for electrostatic interactions
system.set_coulomb_potential(Box::new(wolf));

assert_eq!(system.potential_energy(), -0.0729290269539354);

[Wolf1999]: Wolf, D. et al. J. Chem. Phys. 110, 8254 (1999).

Implementations

impl Wolf

pub fn new(cutoff: f64) -> Wolf

Create a new Wolf summation, using a real-space cutoff of cutoff.

Trait Implementations

impl Clone for Wolf

impl CoulombicPotential for Wolf

impl FromToml for Wolf

impl GlobalCache for Wolf

impl GlobalPotential for Wolf

Auto Trait Implementations

impl RefUnwindSafe for Wolf

impl Send for Wolf

impl Sync for Wolf

impl Unpin for Wolf

impl UnwindSafe for Wolf

Blanket Implementations

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

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

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

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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