pub struct SimpleDcdWriter {
pub header: DcdHeader,
pub frames: Vec<DcdFrame>,
}Expand description
In-memory DCD writer.
Fields§
§header: DcdHeaderFile header.
frames: Vec<DcdFrame>Accumulated frames.
Implementations§
Source§impl SimpleDcdWriter
impl SimpleDcdWriter
Sourcepub fn new(n_atoms: u32, timestep: f32) -> Self
pub fn new(n_atoms: u32, timestep: f32) -> Self
Create a new writer. n_atoms is fixed for the entire trajectory.
Sourcepub fn with_title(n_atoms: u32, timestep: f32, title: &str) -> Self
pub fn with_title(n_atoms: u32, timestep: f32, title: &str) -> Self
Create a writer with a custom title.
Sourcepub fn add_frame(&mut self, positions: &[[f32; 3]])
pub fn add_frame(&mut self, positions: &[[f32; 3]])
Append a frame from interleaved [x, y, z] positions.
Sourcepub fn add_frame_xyz(&mut self, x: Vec<f32>, y: Vec<f32>, z: Vec<f32>)
pub fn add_frame_xyz(&mut self, x: Vec<f32>, y: Vec<f32>, z: Vec<f32>)
Append a frame from separate x, y, z arrays.
Sourcepub fn frame_count(&self) -> usize
pub fn frame_count(&self) -> usize
Number of frames.
Sourcepub fn to_bytes(&self) -> Vec<u8> ⓘ
pub fn to_bytes(&self) -> Vec<u8> ⓘ
Serialise to a simplified DCD byte stream.
Each Fortran record is wrapped with a 4-byte integer giving the byte length of the payload (written before and after the block).
Layout:
HEADER BLOCK:
[4] block_len
[4] "CORD" signature
[4] n_frames (u32 LE)
[4] n_atoms (u32 LE)
[4] timestep (f32 LE)
[80] title (padded with spaces)
[4] block_len (repeated)
per frame:
X block: [4] len_x | x[0..n] as f32 LE | [4] len_x
Y block: [4] len_y | y[0..n] as f32 LE | [4] len_y
Z block: [4] len_z | z[0..n] as f32 LE | [4] len_zAuto Trait Implementations§
impl Freeze for SimpleDcdWriter
impl RefUnwindSafe for SimpleDcdWriter
impl Send for SimpleDcdWriter
impl Sync for SimpleDcdWriter
impl Unpin for SimpleDcdWriter
impl UnsafeUnpin for SimpleDcdWriter
impl UnwindSafe for SimpleDcdWriter
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<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.