Single-material emission to legacy transport-code cards.
[emit_all] renders one [Material] through five code dialects — MCNP,
Serpent, FLUKA, ALARA, PARTISN — and [drift_table] reports how much mass
survives each translation. Every emitter is pure glue over the workspace
*-io crates plus [nucleide_nuclei::dialects]; no new physics lives here.
Drift semantics
Each emitter returns the mass it could represent per nuclide
([Emitted::accounted]) plus what it had to drop ([Emitted::dropped],
e.g. a nuclide with no FLUKA name). [DriftRow::rel_drift] is
(mass_in - mass_out) / mass_in. [Emitted::reparsed] tells whether the
emitted text was machine-verified by feeding it back through that code's
reader (MCNP and ALARA only — Serpent, FLUKA, and PARTISN have no material
readers in this workspace, so their drift is analytic).
Example
use ;
use Material;
use NuclideId;
let mut mat = new;
mat.add_nuclide;
mat.add_nuclide;
let opts = new.with_density;
let = emit_drift.unwrap;
assert_eq!;
assert!;