pub struct IonTally { /* private fields */ }Expand description
Range, damage and escape tally for the BCA engine. See the module docs.
Implementations§
Source§impl IonTally
impl IonTally
Sourcepub fn new(
stack: &Stack,
species_z: &[u8],
config: IonTallyConfig,
) -> Result<Self, MaterialError>
pub fn new( stack: &Stack, species_z: &[u8], config: IonTallyConfig, ) -> Result<Self, MaterialError>
Empty tally for stack, with the particle species of the engine
(species_z, as returned by crate::ion::bca::Bca::species_z:
index 0 is the beam).
Every element of every layer must have E_d and E_b set (the engine
requires the same).
Sourcepub fn report(&self, fit_dual_pearson: bool) -> IonReport
pub fn report(&self, fit_dual_pearson: bool) -> IonReport
The plain-data result. With fit_dual_pearson the depth histogram is
also fitted with DualPearson::fit (slower: a few thousand
evaluations over the histogram).
Trait Implementations§
Source§impl BcaTally for IonTally
impl BcaTally for IonTally
Source§fn begin_history(&mut self, _index: u64)
fn begin_history(&mut self, _index: u64)
A primary history starts.
Source§fn lattice(
&mut self,
_at: [f64; 3],
_layer: usize,
kind: LatticeDeposit,
_energy_ev: f64,
)
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 recoil(&mut self, r: &Particle)
fn recoil(&mut self, r: &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)
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)
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 end_history(&mut self, _index: u64, budget: &EnergyBudget)
fn end_history(&mut self, _index: u64, budget: &EnergyBudget)
A primary history ended;
budget is its energy bookkeeping.Source§fn electronic(
&mut self,
_p: &Particle,
_from: [f64; 3],
_channel: ElectronicChannel,
_energy_ev: f64,
)
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)
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.impl StructuralPartialEq for IonTally
Auto Trait Implementations§
impl Freeze for IonTally
impl RefUnwindSafe for IonTally
impl Send for IonTally
impl Sync for IonTally
impl Unpin for IonTally
impl UnsafeUnpin for IonTally
impl UnwindSafe for IonTally
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
Mutably borrows from an owned value. Read more
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> ⓘ
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 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> ⓘ
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