Neutron activation¶
periodictable.activation
¶
Calculate expected neutron activation from time spent in beam line.
Notation information for activation product:
m, m1, m2: indicate metastable states. Decay may be to the ground state or to another nuclide.
+: indicates radioactive daughter production already included in daughter listing several parent t1/2’s required to acheive calculated daughter activity. All activity assigned at end of irradiation. In most cases the added activity to the daughter is small.
*: indicates radioactive daughter production NOT calculated, approximately secular equilibrium
s: indicates radioactive daughter of this nuclide in secular equilibrium after several daughter t1/2’s
t: indicates transient equilibrium via beta decay. Accumulation of that nuclide during irradiation is separately calculated.
Reaction = b indicates production via decay from an activation produced parent
Accounts for burnup and 2n, g production.
This is only a gross estimate. Many effects are not taken into account, such as self-shielding in the sample and secondary activation from the decay products.
Example:
>>> from periodictable import activation
>>> env = activation.ActivationEnvironment(fluence=1e5, Cd_ratio=70, fast_ratio=50, location="BT-2")
>>> sample = activation.Sample("Co30Fe70", 10)
>>> sample.calculate_activation(env, exposure=10, rest_times=[0, 1, 24, 360])
>>> sample.show_table()
----------------- activity (uCi) ------------------
isotope product reaction T1/2 (hrs) 0 hrs 1 hrs 24 hrs 360 hrs
-------- -------- -------- ---------- ------------ ------------ ------------ ------------
Co-59 Co-60 act 5.272 y 0.000496 0.000496 0.0004958 0.0004933
Co-59 Co-60m+ act 10.5 m 1.664 0.0317 --- ---
-------- -------- -------- ---------- ------------ ------------ ------------ ------------
total 1.665 0.03221 0.0005084 0.000505
-------- -------- -------- ---------- ------------ ------------ ------------ ------------
>>> print("%.3f"%sample.decay_time(0.001)) # number of hours to reach 1 nCi
2.053
The default rest times used above show the sample activity at the end of neutron activation and after 1 hour, 1 day, and 15 days.
Activation cross sections are mostly from IAEA-273[#IAEA1987]. See activation.dat in the package directory for details on individual isotopes.
Activation can be run from the command line using:
$ python -m periodictable.activation FORMULA
where FORMULA is the chemical formula for the material.
..[#IAEA1987] IAEA (1987) Handbook on Nuclear Activation Data. TR 273 (International Atomic Energy Agency, Vienna, Austria, 1987). https://www-nds.iaea.org/publications/tecdocs/sti%252Fdoc%252F10%252F0273/
-
class
periodictable.activation.
ActivationEnvironment
(fluence=100000.0, Cd_ratio=0.0, fast_ratio=0.0, location='')¶ Bases:
object
Neutron activation environment.
The activation environment provides details of the neutron flux at the sample position.
fluence : float | n/cm^2/s
Thermal neutron fluence on sample. For COLD neutrons enter equivalent thermal neutron fluence.Cd_ratio : float
Neutron cadmium ratio. Use 0 to suppress epithermal contribution.fast_ratio : float
Thermal/fast ratio needed for fast reactions. Use 0 to suppress fast contribution.-
epithermal_reduction_factor
¶ Used as a multiplier times the resonance cross section to add to the thermal cross section for all thermal induced reactions.
-
-
class
periodictable.activation.
ActivationResult
(**kw)¶ Bases:
object
-
class
periodictable.activation.
Sample
(formula, mass, name=None)¶ Bases:
object
Sample properties.
formula : chemical formula
Chemical formula. Any format accepted byperiodictable.formula()
can be used, including formula string.mass : float | g
Sample mass.name : string
Name of the sample (defaults to formula).-
calculate_activation
(environment, exposure=1, rest_times=(0, 1, 24, 360), abundance=<function NIST2001_isotopic_abundance>)¶ Calculate sample activation after exposure to a neutron flux.
environment is the exposure environment.
exposure is the exposure time in hours (default is 1 h).
rest_times is the list of deactivation times in hours (default is [0, 1, 24, 360]).
abundance is a function that returns the relative abundance of an isotope. By default it uses
NIST2001_isotopic_abundance()
, and there is the alternativeIAEA273_isotopic_abundance()
.
-
decay_time
(target)¶ After determining the activation, compute the number of hours required to achieve a total activation level after decay.
-
show_table
(cutoff=0.0001, format='%.4g')¶ Tabulate the daughter products.
cutoff=1 : float | uCi
The minimum activation value to show.format=”%.1f” : string
The number format to use for the activation.
-
-
periodictable.activation.
IAEA1987_isotopic_abundance
(iso)¶ Isotopic abundance in % from the IAEA, as provided in the activation.dat table.
Note: this will return an abundance of 0 if there is no neutron activation for the isotope even though for isotopes such as H[1], the natural abundance may in fact be rather large.
IAEA 273: Handbook on Nuclear Activation Data, 1987.
-
periodictable.activation.
NIST2001_isotopic_abundance
(iso)¶ Isotopic abundance in % from the periodic table package.
Böhlke, et al. Isotopic Compositions of the Elements, 2001. J. Phys. Chem. Ref. Data, Vol. 34, No. 1, 2005
-
periodictable.activation.
activity
(isotope, mass, env, exposure, rest_times)¶ Compute isotope specific daughter products after the given exposure time and rest period.
-
periodictable.activation.
demo
()¶
-
periodictable.activation.
find_root
(x, f, df, max=20, tol=1e-10)¶ Find zero of a function.
Returns when \(|f(x)| < tol\) or when max iterations have been reached, so check that \(|f(x)|\) is small enough for your purposes.
Returns x, f(x).
-
periodictable.activation.
init
(table, reload=False)¶ Add neutron activation levels to each isotope.
-
periodictable.activation.
sorted_activity
(activity_pair)¶ Interator over activity pairs sorted by isotope then daughter product.