Skip to main content

Module ion

Module ion 

Source
Expand description

The full ion tally: ranges, damage and escapes, wired to the BCA engine.

IonTally implements BcaTally. Build one prototype with IonTally::new and hand clones to crate::ion::bca::Bca::run; the merged tally turns into a plain-data IonReport with IonTally::report.

Units: positions and lengths in metres, energies in eV, angles in radians. Totals are summed over all histories; divide by IonReport::histories for per-ion values (the escape coefficients are already per ion).

§Determinism

Counts are integers, moments use the mergeable accumulator of super::moments, and energy sums are plain f64 sums; all are merged field by field in the order crate::rng::run_particles calls merge (chunk order). For a fixed chunk_size the result is bit-identical at any thread count (lindhard/tests/tally.rs). Nothing is stored in a hash map.

Structs§

CascadeDefects
Defects counted event by event in the simulated cascades.
DamageReport
Damage, as two separate kinds of result. See crate::ion::damage.
EscapeReport
Particles leaving the target.
FaceEscape
Count and spectra of particles leaving through one face.
IonReport
Everything an IonTally measured, as plain data.
IonTally
Range, damage and escape tally for the BCA engine. See the module docs.
IonTallyConfig
Binnings for an IonTally.
LayerDamage
Damage in one layer.
LayerRange
Depth statistics of the beam particles that stopped in one layer.
NrtDamage
Displacement-model estimates (NRT and Kinchin-Pease) from the PKA damage energies. Not a count of simulated defects: see CascadeDefects and crate::ion::damage for why the two are kept apart.
RangeReport
Range distributions of beam particles that came to rest in the target.
SpeciesEscape
Escapes of one species through each face.