pub struct CrystalTarget {
pub lattice: Lattice,
pub orientation: Orientation,
pub p_max_m: Option<f64>,
pub q_max_m: Option<f64>,
pub search_length_m: Option<f64>,
pub thermal: Option<Thermal>,
}Expand description
A crystal for Bca::with_crystal: the lattice, the orientation of the
target in the lab frame and the three search parameters.
Fields§
§lattice: LatticeThe lattice (cubic or hexagonal).
orientation: OrientationWafer cut and angles. Only its lab-to-crystal rotation is used.
p_max_m: Option<f64>Largest impact parameter of a partner, m. Default None: the
nearest-neighbour distance of the lattice. Steering by the atoms of a
channel wall needs partners out to about that distance; smaller radii
(DISPLATH’s examples use a/3 and the amorphous constant-path radius
(π N^(2/3))^(-1/2), a/2/π^0.5 for silicon) leave the channeled
fraction too small. See the module docs, “Choice of the search
parameters”.
q_max_m: Option<f64>Largest path distance between simultaneous partners, m. Default
None: DEFAULT_Q_MAX_FRACTION of the nearest-neighbour distance.
search_length_m: Option<f64>Length of one search segment, m. Default None: the lattice
constant. Affects speed only (a segment with no partner is followed by
another), never the result.
thermal: Option<Thermal>Thermal vibration of the lattice atoms. Default None: a static,
perfect lattice (the 20b model, unchanged bit for bit).
Implementations§
Source§impl CrystalTarget
impl CrystalTarget
Sourcepub fn new(lattice: Lattice, orientation: Orientation) -> Self
pub fn new(lattice: Lattice, orientation: Orientation) -> Self
A static crystal with the default search parameters.
Sourcepub fn check_material(&self, material: &Material) -> Result<(), String>
pub fn check_material(&self, material: &Material) -> Result<(), String>
Whether material can fill a crystal region of this lattice: it must
contain every element of the lattice and its atom density must agree
with the lattice’s to 5 %. The same rule Bca::with_crystal applies
to each region, available before an engine exists (input checking).
Sourcepub fn with_thermal(self, thermal: Thermal) -> Self
pub fn with_thermal(self, thermal: Thermal) -> Self
The same crystal with thermal vibration thermal.
Trait Implementations§
Source§impl Clone for CrystalTarget
impl Clone for CrystalTarget
Source§fn clone(&self) -> CrystalTarget
fn clone(&self) -> CrystalTarget
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for CrystalTarget
impl RefUnwindSafe for CrystalTarget
impl Send for CrystalTarget
impl Sync for CrystalTarget
impl Unpin for CrystalTarget
impl UnsafeUnpin for CrystalTarget
impl UnwindSafe for CrystalTarget
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 more