Enrichment Cascade
This tutorial shows you how to solve a multicomponent enrichment cascade and
evaluate the standalone SWU and mass-ratio helpers with the Python API. The
numeric solver and closed-form helpers live in crates/enrichment. For
the MARC model and SWU derivation, see the
Enrichment cascades theory page.
Default uranium cascade
from nucleide.enrichment import Cascade
c = Cascade.default_uranium()
c.solve()
print(c.swu_per_feed, c.swu_per_prod)
Custom cascade
Custom cascades are configured on the Rust side by specifying component molecular weights, assays, and separation factors; the Python API exposes the result objects.
Standalone SWU and mass-ratio helpers
Without building a cascade, the closed-form helpers evaluate the Dirac
separation potential, SWU per unit feed/product/tails, and the six assay
mass ratios on any (x_feed, x_prod, x_tail) ladder:
from nucleide.enrichment import (
alphastar_i,
feed_per_prod,
prod_per_feed,
swu_per_feed,
swu_per_prod,
tail_per_feed,
value_func,
)
x_feed, x_prod, x_tail = 0.0072, 0.05, 0.002
print(value_func(x_prod))
print(swu_per_feed(x_feed, x_prod, x_tail))
print(swu_per_prod(x_feed, x_prod, x_tail))
print(prod_per_feed(x_feed, x_prod, x_tail)) # (xf - xt) / (xp - xt)
print(tail_per_feed(x_feed, x_prod, x_tail)) # 1 - prod_per_feed
print(feed_per_prod(x_feed, x_prod, x_tail)) # 1 / prod_per_feed
print(alphastar_i(1.05, 236.0, 235.0)) # stage factor for mass 235
tail_per_prod, feed_per_tail, and prod_per_tail complete the ratio set;
each is the quotient of the two corresponding per-feed ratios.
See also
crates/enrichment/src/lib.rsfor cascade construction details.tests/test_data_inp_enrichment.pyfor integration examples.- Cross-code validation results
for these cascades, benchmarked against PyNE 0.7.5
multicomponent.