\(\renewcommand\AA{\text{Å}}\)

# 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  half-life        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.

The neutron activation table, activation.dat,1 contains details about the individual isotopes, with interaction cross sections taken from from IAEA-2732.

Activation can be run from the command line using:

    $ python -m periodictable.activation FORMULA

where FORMULA is the chemical formula for the material.

1

  Shleien, B., Slaback, L.A., Birky, B.K., 1998. Handbook of health physics and radiological health. Williams & Wilkins, Baltimore.

2

  IAEA (1987) Handbook on Nuclear Activation Data. TR 273 (International Atomic Energy Agency, Vienna, Austria, 1987). http://cds.cern.ch/record/111089/files/IAEA-TR-273.pdf

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.

  property 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 by `formulas.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 alternative `IAEA1987_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.