[−]Struct lumol::MoleculeRefMut
An analog to [&mut Molecule
] using particles stored elsewhere (in a
system or an Molecule
).
MoleculeRefMut
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()
or
Configuration::add_bond()
.
Implementations
impl<'a> MoleculeRefMut<'a>
pub fn new(
bonding: &'a Bonding,
particles: ParticleSliceMut<'a>
) -> MoleculeRefMut<'a>
bonding: &'a Bonding,
particles: ParticleSliceMut<'a>
) -> MoleculeRefMut<'a>
Create a new MoleculeRefMut
associating the given bonding
and
particles
.
Panics
If the bonding
and the particles
do not containe the same number
of particles.
pub fn as_ref(&self) -> MoleculeRef<'_>
Borrow self
as a MoleculeRef
.
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 to_owned(&self) -> Molecule
Copies self
into a new Molecule
impl<'a> MoleculeRefMut<'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.
impl<'a> MoleculeRefMut<'a>
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<'a> Debug for MoleculeRefMut<'a>
impl<'a> Deref for MoleculeRefMut<'a>
Auto Trait Implementations
impl<'a> RefUnwindSafe for MoleculeRefMut<'a>
impl<'a> Send for MoleculeRefMut<'a>
impl<'a> Sync for MoleculeRefMut<'a>
impl<'a> Unpin for MoleculeRefMut<'a>
impl<'a> !UnwindSafe for MoleculeRefMut<'a>
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>,