[]Struct lumol::MoleculeRef

pub struct MoleculeRef<'a> { /* fields omitted */ }

An analog to [&Molecule] using particles stored elsewhere (in a system or an Molecule).

MoleculeRef implement Deref to a Bonding struct, to give read access to all the bonds.

Implementations

impl<'a> MoleculeRef<'a>

pub fn new(
    bonding: &'a Bonding,
    particles: ParticleSlice<'a>
) -> MoleculeRef<'a>

Create a new MoleculeRef associating the given bonding and particles.

Panics

If the bonding and the particles do not containe the same number of particles.

pub fn particles(&self) -> ParticleSlice<'_>

Get access to the particles in this molecule

pub fn to_owned(&self) -> Molecule

Copies self into a new Molecule

impl<'a> MoleculeRef<'a>

pub fn center_of_mass(&self) -> Vector3D

Return the center-of-mass of a molecule

Warning

This function does not check for the particles' positions' nearest images. To use this function properly, make sure that all particles of the molecule are adjacent.

pub fn hash(&self) -> MoleculeHash

Get a hash of this molecule. This is a hash of the particles names (in order), and the set of bonds in the molecule. This means that two molecules will have the same type if and only if they contains the same atoms and the same bonds, in the same order.

Methods from Deref<Target = Bonding>

pub fn size(&self) -> usize

Get the number of atoms in the molecule

pub fn start(&self) -> usize

Get the first atom of this molecule

pub fn end(&self) -> usize

Get the index of the first atom after this molecule

pub fn contains(&self, i: usize) -> bool

Does this molecule contains the particle i

pub fn bonds(&self) -> &HashSet<Bond, RandomState>

Get the internal list of bonds

pub fn angles(&self) -> &HashSet<Angle, RandomState>

Get the internal list of angles

pub fn dihedrals(&self) -> &HashSet<Dihedral, RandomState>

Get the internal list of dihedrals

pub fn bond_distances(&self, i: usize, j: usize) -> BondDistances

Get the all the possible bond paths the particles i and j in this molecule

pub fn indexes(&self) -> Range<usize>

Get the indexes of the particles in this molecule. All atoms in the returned range are inside this molecule.

Trait Implementations

impl<'a> Debug for MoleculeRef<'a>

impl<'a> Deref for MoleculeRef<'a>

type Target = Bonding

The resulting type after dereferencing.

Auto Trait Implementations

impl<'a> RefUnwindSafe for MoleculeRef<'a>

impl<'a> Send for MoleculeRef<'a>

impl<'a> Sync for MoleculeRef<'a>

impl<'a> Unpin for MoleculeRef<'a>

impl<'a> UnwindSafe for MoleculeRef<'a>

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