[]Struct lumol::sys::Molecule

pub struct Molecule { /* fields omitted */ }

A Molecule associate some particles bonded together.

Molecule implement Deref to a Bonding struct, to give read access to all the bonds. It does not implement DerefMut, adding new bonds should be done through Molecule::add_bond().

Methods

impl Molecule

pub fn new(particle: Particle) -> Molecule

Create a new Molecule containing a single particle

pub fn as_ref(&self) -> MoleculeRef

Borrow self as a MoleculeRef.

pub fn as_mut(&mut self) -> MoleculeRefMut

Mutablely borrow self as a MoleculeRefMut.

pub fn particles(&self) -> ParticleSlice

Get access to the particles in this molecule

pub fn particles_mut(&mut self) -> ParticleSliceMut

Get mutable access to the particles in this molecule

pub fn add_particle_bonded_to(&mut self, other: usize, particle: Particle)

Add a new particle in this molecule, bonded to an other particle in the molecule.

pub fn add_bond(&mut self, i: usize, j: usize)

Add bond between particles at indexes i and j in this molecule.

Panics

If i or j are not in this molecule.

impl<'a> Molecule

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.

impl<'a> Molecule

pub fn wrap(&mut self, cell: &UnitCell)

Move all particles of a molecule such that the molecules center-of-mass position resides inside the simulation cell.

Note

If the CellShape is Infinite there are no changes to the positions.

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 Deref for Molecule

type Target = Bonding

The resulting type after dereferencing.

impl Clone for Molecule

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for Molecule

Auto Trait Implementations

impl Send for Molecule

impl Sync for Molecule

Blanket Implementations

impl<T> From for T[src]

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

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

type Owned = T

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

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

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

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

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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