pub struct Lattice { /* private fields */ }
Expand description
Periodic 3D lattice
Implementations§
Source§impl Lattice
impl Lattice
Sourcepub fn new<T: Into<Vector3f> + Copy>(tvs: [T; 3]) -> Self
pub fn new<T: Into<Vector3f> + Copy>(tvs: [T; 3]) -> Self
Construct Lattice
from three lattice vectors.
Sourcepub fn from_matrix<T: Into<Matrix3f>>(tvs: T) -> Self
pub fn from_matrix<T: Into<Matrix3f>>(tvs: T) -> Self
Construct Lattice
from lattice matrix (3x3).
Sourcepub fn from_params(
a: f64,
b: f64,
c: f64,
alpha: f64,
beta: f64,
gamma: f64,
) -> Self
pub fn from_params( a: f64, b: f64, c: f64, alpha: f64, beta: f64, gamma: f64, ) -> Self
Construct lattice from lattice parameters Unit cell angles in degrees, lengths in Angstrom
Sourcepub fn widths(&self) -> [f64; 3]
pub fn widths(&self) -> [f64; 3]
Return the perpendicular widths of the cell along three directions. i.e. the distance between opposite faces of the unit cell
Sourcepub fn volume(&self) -> f64
pub fn volume(&self) -> f64
Return the volume of the unit cell the cache will be updated if necessary
Sourcepub fn set_origin<T: Into<Vector3f>>(&mut self, loc: T)
pub fn set_origin<T: Into<Vector3f>>(&mut self, loc: T)
Set cell origin in Cartesian coordinates
Sourcepub fn scale_by_a(&mut self, v: f64)
pub fn scale_by_a(&mut self, v: f64)
Scale Lattice in a
direction by a positive constant v
Sourcepub fn scale_by_b(&mut self, v: f64)
pub fn scale_by_b(&mut self, v: f64)
Scale Lattice in b
direction by a positive constant v
Sourcepub fn scale_by_c(&mut self, v: f64)
pub fn scale_by_c(&mut self, v: f64)
Scale Lattice in c
direction by a positive constant v
Sourcepub fn to_frac<T: Into<Vector3f>>(&self, p: T) -> Vector3f
pub fn to_frac<T: Into<Vector3f>>(&self, p: T) -> Vector3f
Returns the fractional coordinates given cartesian coordinates.
Sourcepub fn to_cart<T: Into<Vector3f>>(&self, p: T) -> Vector3f
pub fn to_cart<T: Into<Vector3f>>(&self, p: T) -> Vector3f
Returns the cartesian coordinates given fractional coordinates.
Sourcepub fn inv_matrix(&self) -> Matrix3f
pub fn inv_matrix(&self) -> Matrix3f
inverse of lattice matrix
Sourcepub fn is_orthorhombic(&self) -> bool
pub fn is_orthorhombic(&self) -> bool
Check if lattice is orthorhombic
Sourcepub fn wrap<T: Into<Vector3f>>(&self, vec: T) -> Vector3f
pub fn wrap<T: Into<Vector3f>>(&self, vec: T) -> Vector3f
Wrap a point in cartesian coordinates into unit cell, obeying the periodic boundary conditions. Returns cartesian coordinates.
Sourcepub fn wrap_frac<T: Into<Vector3f>>(&self, f: T) -> Vector3f
pub fn wrap_frac<T: Into<Vector3f>>(&self, f: T) -> Vector3f
Wrap a point in fractional coordinates into unit cell, obeying the periodic boundary conditions. Returns fractional coordinates.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Lattice
impl<'de> Deserialize<'de> for Lattice
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Copy for Lattice
Auto Trait Implementations§
impl Freeze for Lattice
impl RefUnwindSafe for Lattice
impl Send for Lattice
impl Sync for Lattice
impl Unpin for Lattice
impl UnwindSafe for Lattice
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Configure for T
impl<T> Configure for T
Source§fn print_toml(&self)
fn print_toml(&self)
Source§fn from_json(s: &str) -> Result<Self, Error>
fn from_json(s: &str) -> Result<Self, Error>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
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>
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.