[−]Struct lumol::Molecule
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()
.
Implementations
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 Clone for Molecule
pub fn clone(&self) -> Molecule
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for Molecule
impl Deref for Molecule
Auto Trait Implementations
impl RefUnwindSafe for Molecule
impl Send for Molecule
impl Sync for Molecule
impl Unpin for Molecule
impl UnwindSafe for Molecule
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> 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>,