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§
- Cascade
Defects - Defects counted event by event in the simulated cascades.
- Damage
Report - Damage, as two separate kinds of result. See
crate::ion::damage. - Escape
Report - Particles leaving the target.
- Face
Escape - Count and spectra of particles leaving through one face.
- IonReport
- Everything an
IonTallymeasured, as plain data. - IonTally
- Range, damage and escape tally for the BCA engine. See the module docs.
- IonTally
Config - Binnings for an
IonTally. - Layer
Damage - Damage in one layer.
- Layer
Range - 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
CascadeDefectsandcrate::ion::damagefor why the two are kept apart. - Range
Report - Range distributions of beam particles that came to rest in the target.
- Species
Escape - Escapes of one species through each face.