pub struct LammpsDumpFrame {
pub timestep: u64,
pub n_atoms: usize,
pub box_bounds: [[f64; 2]; 3],
pub atom_ids: Vec<u32>,
pub types: Vec<u32>,
pub positions: Vec<[f64; 3]>,
pub velocities: Option<Vec<[f64; 3]>>,
pub tilt_factors: Option<[f64; 3]>,
pub custom_properties: Vec<(String, Vec<f64>)>,
}Expand description
A single simulation frame from a LAMMPS dump file.
Fields§
§timestep: u64Simulation timestep.
n_atoms: usizeNumber of atoms in this frame.
box_bounds: [[f64; 2]; 3]Box bounds: [[xlo, xhi\], [ylo, yhi], [zlo, zhi]].
atom_ids: Vec<u32>Atom IDs.
types: Vec<u32>Atom type IDs.
positions: Vec<[f64; 3]>Atom positions.
velocities: Option<Vec<[f64; 3]>>Atom velocities (present when the dump includes vx vy vz columns).
tilt_factors: Option<[f64; 3]>Triclinic tilt factors [xy, xz, yz], if present.
custom_properties: Vec<(String, Vec<f64>)>Custom per-atom properties (name -> values).
Implementations§
Source§impl LammpsDumpFrame
impl LammpsDumpFrame
Sourcepub fn positions_by_type(&self, atom_type: u32) -> Vec<[f64; 3]>
pub fn positions_by_type(&self, atom_type: u32) -> Vec<[f64; 3]>
Extract positions for atoms of a given type.
Sourcepub fn count_by_type(&self, atom_type: u32) -> usize
pub fn count_by_type(&self, atom_type: u32) -> usize
Count atoms of a given type.
Sourcepub fn box_dimensions(&self) -> [f64; 3]
pub fn box_dimensions(&self) -> [f64; 3]
Get the box dimensions [lx, ly, lz].
Sourcepub fn box_center(&self) -> [f64; 3]
pub fn box_center(&self) -> [f64; 3]
Get the box center [cx, cy, cz].
Sourcepub fn box_volume(&self) -> f64
pub fn box_volume(&self) -> f64
Get box volume (orthogonal case).
Sourcepub fn center_of_mass(&self) -> [f64; 3]
pub fn center_of_mass(&self) -> [f64; 3]
Compute the center of mass (equal-mass atoms).
Sourcepub fn get_custom_property(&self, name: &str) -> Option<&[f64]>
pub fn get_custom_property(&self, name: &str) -> Option<&[f64]>
Get a custom property by name.
Sourcepub fn atom_types(&self) -> Vec<u32>
pub fn atom_types(&self) -> Vec<u32>
Get all distinct atom types in this frame.
Trait Implementations§
Source§impl Clone for LammpsDumpFrame
impl Clone for LammpsDumpFrame
Source§fn clone(&self) -> LammpsDumpFrame
fn clone(&self) -> LammpsDumpFrame
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for LammpsDumpFrame
impl RefUnwindSafe for LammpsDumpFrame
impl Send for LammpsDumpFrame
impl Sync for LammpsDumpFrame
impl Unpin for LammpsDumpFrame
impl UnsafeUnpin for LammpsDumpFrame
impl UnwindSafe for LammpsDumpFrame
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.