[−]Struct lumol::sys::compute::MolecularVirial
Compute the virial tensor of the system using the molecular definition
This differs from the AtomicVirial
when using
rigid molecules, as it will contains the right contributions of the forces
maintaining the molecules rigid without needing to compute them.
$$ \underline{W} = \sum_i \vec r_i \otimes \vec f_i - \underline H \frac{\partial U}{\partial \underline H} $$
where $\underline{H}$ is the unit cell matrix, $\vec f_i$ the force acting on the atom $i$ (comprising the force needed to keep the molecules rigid) and $\vec r_i$ the position of the atom $i$
If all the interactions are pair interaction, this definition reduces to
$$ \underline{W} = \sum_i \sum_{j > i} \sum_{a \in i} \sum_{b \in i} \frac{\vec r_{ab} \otimes \vec f_{ab}}{r_{ab}^2} \vec r_{ab} \cdot \vec r_{ij} $$
where $i$ and $j$ run over all the molecules in the system, while $a$ and $b$ run over all the particles in these molecules
Trait Implementations
impl Compute for MolecularVirial
Auto Trait Implementations
impl RefUnwindSafe for MolecularVirial
impl Send for MolecularVirial
impl Sync for MolecularVirial
impl Unpin for MolecularVirial
impl UnwindSafe for MolecularVirial
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<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>,