Skip to main content

InventoryTally

Struct InventoryTally 

Source
pub struct InventoryTally { /* private fields */ }
Expand description

A BcaTally that records the net atom count change per (slab, Z) and the Yields of a step.

Implementations§

Source§

impl InventoryTally

Source

pub fn new(n_slabs: usize) -> Self

An empty tally for a grid of n_slabs finite slabs (layer indices at or above n_slabs are the substrate).

Source

pub fn counts(&self) -> impl Iterator<Item = ((usize, u8), i64)> + '_

Net atom count change per (slab, Z), in (slab, Z) order. Zero entries are omitted.

Source

pub fn sputtered_from(&self) -> impl Iterator<Item = ((usize, u8), u64)> + '_

Recoils that left through the front face, per (origin slab, Z), in that order. Only origins in a finite slab are listed (an atom from the substrate was never part of the inventory), so for each Z the sum is at most the Z entry of Yields::sputtered. Each of these atoms is also in counts as a loss in its origin slab.

Source

pub fn yields(&self) -> &Yields

The event counts.

Trait Implementations§

Source§

impl BcaTally for InventoryTally

Source§

fn begin_history(&mut self, _index: u64)

A primary history starts.
Source§

fn recoil(&mut self, recoil: &Particle)

A target atom was displaced (transfer above E_d); recoil is its state at creation, before it is followed (or stopped, if below the recoil cutoff or if cascades are off).
Source§

fn stopped(&mut self, p: &Particle)

A particle came to rest at p.pos with kinetic energy p.energy_ev.
Source§

fn escaped(&mut self, p: &Particle, face: Face)

A particle left the target through face; p is its state outside (after refraction by the surface barrier).
Source§

fn merge(&mut self, other: Self)

Fold other (a later chunk) into self.
Source§

fn electronic( &mut self, _p: &Particle, _from: [f64; 3], _channel: ElectronicChannel, _energy_ev: f64, )

Electronic loss of energy_ev. For ElectronicChannel::NonLocal it was spread along the straight segment from from to p.pos; for ElectronicChannel::Local it was deposited at p.pos.
Source§

fn partner(&mut self, _p: &Particle, _impact_parameter_m: f64, _partners: usize)

A collision partner of p, reported before the collision changes p (so p is the incoming state, unlike in the other hooks): impact_parameter_m is the distance from the partner to the incoming straight path, and partners the number of partners of this collision step, each of which is reported by its own call. The amorphous model reports its hard collision and each weak collision as a step of one partner; the crystal flight model reports every simultaneous partner of a step with the same partners.
Source§

fn lattice( &mut self, _at: [f64; 3], _layer: usize, _kind: LatticeDeposit, _energy_ev: f64, )

Nuclear energy energy_ev left in the lattice at at in region layer (the layer index of a stack, the flat voxel index of a voxel grid).
Source§

fn end_history(&mut self, _index: u64, _budget: &EnergyBudget)

A primary history ended; budget is its energy bookkeeping.
Source§

impl Clone for InventoryTally

Source§

fn clone(&self) -> InventoryTally

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 InventoryTally

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Eq for InventoryTally

Source§

impl PartialEq for InventoryTally

Source§

fn eq(&self, other: &InventoryTally) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for InventoryTally

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