Skip to main content

CrystalTarget

Struct CrystalTarget 

Source
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: Lattice

The lattice (cubic or hexagonal).

§orientation: Orientation

Wafer 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

Source

pub fn new(lattice: Lattice, orientation: Orientation) -> Self

A static crystal with the default search parameters.

Source

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).

Source

pub fn with_thermal(self, thermal: Thermal) -> Self

The same crystal with thermal vibration thermal.

Trait Implementations§

Source§

impl Clone for CrystalTarget

Source§

fn clone(&self) -> CrystalTarget

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CrystalTarget

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V