Skip to main content

SummaryTally

Struct SummaryTally 

Source
pub struct SummaryTally {
Show 31 fields pub histories: u64, pub stopped: u64, pub escaped_front: u64, pub escaped_back: u64, pub escaped_side: u64, pub absorbed: u64, pub trapped: u64, pub event_capped: u64, pub polaron_trapped: u64, pub secondaries: u64, pub secondaries_escaped: u64, pub secondaries_event_capped: u64, pub reflections: u64, pub elastic_events: u64, pub inelastic_events: u64, pub inner_shell_events: u64, pub interface_crossings: u64, pub phonon_emissions: u64, pub phonon_absorptions: u64, pub path_m: f64, pub inelastic_loss_ev: f64, pub inner_shell_loss_ev: f64, pub escaped_energy_ev: f64, pub rest_energy_ev: f64, pub phonon_emitted_ev: f64, pub phonon_absorbed_ev: f64, pub polaron_deposited_ev: f64, pub secondary_energy_ev: f64, pub binding_ev: f64, pub deposited_ev: f64, pub barrier_ev: f64,
}
Expand description

A minimal summary tally: counts, path length and energy bookkeeping.

The fate counts (stopped to event_capped) are per history, by the primary’s fate; the event counts and energies cover every electron. With every electron ending stopped, trapped or escaped, the energies balance: incident energy plus secondary_energy_ev equals inelastic_loss_ev + escaped_energy_ev + rest_energy_ev + barrier_ev.

Fields§

§histories: u64

Histories run.

§stopped: u64

Histories whose primary stopped below the threshold.

§escaped_front: u64

Primaries that left through the front face.

§escaped_back: u64

Primaries that left through the back face.

§escaped_side: u64

Primaries that left through a lateral face of a voxel grid.

§absorbed: u64

Primaries absorbed at the back face.

§trapped: u64

Trapped primaries.

§event_capped: u64

Primaries cut off by the event cap.

§polaron_trapped: u64

Primaries trapped as polarons.

§secondaries: u64

Secondaries created (and transported).

§secondaries_escaped: u64

Secondaries that left the target through either face.

§secondaries_event_capped: u64

Secondaries cut off by the event cap (Fate::EventCap), one per capped secondary track. A numerical-truncation diagnostic: zero event_capped primaries does not mean no secondary was capped.

§reflections: u64

Face reflections (step barrier).

§elastic_events: u64

Elastic collisions.

§inelastic_events: u64

Inelastic collisions (valence and inner-shell).

§inner_shell_events: u64

Inelastic collisions in an inner-shell channel (part of inelastic_events).

§interface_crossings: u64

Layer-face crossings between layers.

§phonon_emissions: u64

LO-phonon emissions.

§phonon_absorptions: u64

LO-phonon absorptions.

§path_m: f64

Total flight path, m.

§inelastic_loss_ev: f64

Total energy lost in inelastic collisions, eV.

§inner_shell_loss_ev: f64

Energy lost in inner-shell collisions, eV (part of inelastic_loss_ev).

§escaped_energy_ev: f64

Energy carried out of the target by escaped electrons, eV.

§rest_energy_ev: f64

Energy of stopped electrons when they stopped, eV.

§phonon_emitted_ev: f64

Energy given to the lattice by phonon emission, eV.

§phonon_absorbed_ev: f64

Energy taken from the lattice by phonon absorption, eV.

§polaron_deposited_ev: f64

Energy deposited by electrons trapped as polarons, eV.

§secondary_energy_ev: f64

Kinetic energy of the secondaries created, eV.

§binding_ev: f64§deposited_ev: f64§barrier_ev: f64

Kinetic energy taken by potential steps, the sum of -ΔU over face transmissions, eV.

Trait Implementations§

Source§

impl Clone for SummaryTally

Source§

fn clone(&self) -> SummaryTally

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 SummaryTally

Source§

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

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

impl Default for SummaryTally

Source§

fn default() -> SummaryTally

Returns the “default value” for a type. Read more
Source§

impl ElectronTally for SummaryTally

Source§

fn step(&mut self, _from: [f64; 3], _end: &ElectronState, length_m: f64)

A flight segment of length_m ended at end.pos (at a collision, a layer face or the target face). It started at from with energy end.energy_ev (the energy does not change in flight).
Source§

fn elastic(&mut self, _after: &ElectronState, _theta: f64)

An elastic collision deflected the electron by theta rad.
Source§

fn inelastic(&mut self, _after: &ElectronState, w_ev: f64)

An inelastic collision took w_ev from the electron. after carries the new direction if the secondary model deflected it.
Source§

fn inner_shell( &mut self, _after: &ElectronState, _shell: &InnerShell, w_ev: f64, )

Called right after ElectronTally::inelastic for every inelastic event drawn from an inner-shell channel (Transport::with_inner_shells), with or without a secondary model: the shell (its element, subshell and binding energy) and the loss w_ev (the same as passed to ElectronTally::inelastic). Not called for valence events. Comes before ElectronTally::secondary.
Source§

fn secondary( &mut self, _p: &ElectronState, e: &SecondaryEvent, c: Option<&ElectronState>, )

Called right after ElectronTally::inelastic (and ElectronTally::inner_shell, for a shell event) for every inelastic event when a SecondaryModel is on: the event’s energy bookkeeping, and the secondary that was created (None if none was). The secondary is transported later, between ElectronTally::begin_secondary and ElectronTally::end_secondary.
Source§

fn phonon( &mut self, _after: &ElectronState, kind: PhononEvent, hbar_omega_ev: f64, _theta: f64, )

A Fröhlich LO-phonon event changed the energy by -ħω (emission) or +ħω (absorption), hbar_omega_ev given, and deflected the electron by theta rad. after is the state after the event.
Source§

fn polaron_trapped(&mut self, at: &ElectronState)

The electron was trapped as a polaron at at and deposits its whole remaining energy at.energy_ev there. The history (or the secondary) then ends with Fate::PolaronTrapped (no ElectronTally::stopped call).
Source§

fn interface(&mut self, _at: &ElectronState, _from: usize, _to: usize)

The electron crossed from layer from_layer into to_layer; at is its state on the face, inside the new layer (after refraction, with BoundaryModel::StepBarrier).
Source§

fn barrier(&mut self, _at: &ElectronState, _b: Boundary, delta_u_ev: f64)

With BoundaryModel::StepBarrier: the electron got through the face boundary, and its kinetic energy changed by delta_u_ev (the step U' - U). at is its state just past the face (in vacuum, for a surface). Comes before ElectronTally::interface or ElectronTally::escaped.
Source§

fn reflected(&mut self, _at: &ElectronState, _b: Boundary)

With BoundaryModel::StepBarrier: the electron was reflected at the face boundary; at is its state after the reflection. At the primary’s entry this is followed by ElectronTally::escaped.
Source§

fn end_secondary(&mut self, fate: Fate)

The current secondary ended with fate.
Source§

fn stopped(&mut self, at: &ElectronState)

The electron fell below the stopping threshold (or was trapped) at at. A stop has at.energy_ev below the threshold of at.layer, a trapped electron at least that energy (Transport::stopping_thresholds_ev).
Source§

fn escaped(&mut self, at: &ElectronState, _face: Face)

The electron left the target through face; at.energy_ev is the energy it leaves with (its vacuum energy, with the step barrier).
Source§

fn end_history(&mut self, _index: u64, fate: Fate)

The history ended (its last secondary included); fate is the primary’s.
Source§

fn merge(&mut self, o: Self)

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

fn begin_history(&mut self, _index: u64, _start: &ElectronState)

A primary history starts. With BoundaryModel::StepBarrier, start is the primary in vacuum, before it meets the front face.
Source§

fn table_lookup( &mut self, _at: &ElectronState, _channel: TableChannel, _coverage: GridCoverage, )

The rate of channel’s table in layer at.layer was evaluated at at.energy_ev, which lies coverage against that table’s grid. Read more
Source§

fn begin_secondary(&mut self, _start: &ElectronState, _generation: u32)

A secondary of the given generation (1 for a secondary of the primary, 2 for one of a secondary, …) starts at start.
Source§

fn absorbed(&mut self, _at: &ElectronState)

The electron was absorbed at the back face (EscapeRule::FrontOnly).
Source§

impl PartialEq for SummaryTally

Source§

fn eq(&self, other: &SummaryTally) -> 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 SummaryTally

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