Library

class curie.Library(name)[source]

Library of nuclear reaction data

Provides a means of searching and retrieving data from various nuclear reaction libraries. The currently available libraries are ENDF/B-VII.1, TENDL-2015, IRDFF-II, and the IAEA Medical Monitor reaction library. For neutrons, the libraries are categorized by either the exlusive reaction, as in ENDF, TENDL, and partially IRDFF, or by the residual product (rp), in TENDL and partially IRDFF. For charged particles, all libraries (TENDL, IAEA) are categorized by the residual product. As such, TENDL is split into separate libraries based on incident particle, and by exclusive reaction type or residual product.

Parameters:
namestr

The name of the library. For exclusive neutron reactions, use ‘endf’, ‘tendl’, or ‘irdff’. For residual product neutron reactions, use ‘tendl_n’ or ‘irdff’. Use ‘tendl_p’ for proton reactions, ‘tendl_d’ for deuteron reactions, or ‘iaea’ for either.

Examples

>>> lb = ci.Library('tendl_n')
>>> print(lb.name)
TENDL-2015
>>> lb = ci.Library('endf')
>>> print(lb.name)
ENDF/B-VII.1

Methods

retrieve([target, incident, outgoing, product])

Pull reaction data from the library

search([target, incident, outgoing, ...])

Searches the library for reactions

retrieve(target=None, incident=None, outgoing=None, product=None)[source]

Pull reaction data from the library

Returns a numpy ndarray containing the reaction energy grid (in MeV), the cross section (in mb), and for IRDFF and IAEA, the uncertainty in the cross section (mb). The arguments are the same as for Library.search().

Parameters:
targetstr, optional

The target nucleus. Some libraries support natural elements, e.g. ‘natEl’.

incidentstr, optional

Incident particle. Must be one of ‘n’, ‘p’ or ‘d’. Only needed for IAEA library with multiple incident projectiles optional.

outgoingstr, optional

Outgoing particle, or reaction shorthand. E.g. ‘2n’, ‘d’, ‘f’, ‘inl’, ‘x’. Does not need to be specified for TENDL residual product libraries.

productstr, optional

The product isotope. Not required for some exclusive reactions, e.g. ‘115IN(n,g)116IN’ is the same as ‘115IN(n,g)’, but not the same as ‘115IN(n,g)116INm1’.

Returns:
reactionnp.ndarray

Numpy ndarray containing the reaction data. Energy is in MeV, cross section is in mb. The first column is energy, the second column is cross section, and if the library provides uncertainties in cross section this will be in the third column.

Examples

>>> lb = ci.Library('endf')
>>> print(lb.retrieve(target='226RA', product='225RA')[-8:])
[[18.5      11.97908 ]
 [18.75     10.30011 ]
 [19.        8.62115 ]
 [19.25      6.942188]
 [19.5       5.263225]
 [19.75      3.584263]
 [19.875     2.744781]
 [20.        1.9053  ]]
search(target=None, incident=None, outgoing=None, product=None, _label=False)[source]

Searches the library for reactions

Returns a list of reactions that match the specified target, incident or outgoing projectile, or product. Any combination of arguments can be specified, but at least one must be specified. Note that if the library is a TENDL residual-product library, outgoing does not need to be specified.

Parameters:
targetstr, optional

The target nucleus. Some libraries support natural elements, e.g. ‘natEl’.

incidentstr, optional

Incident particle. Must be one of ‘n’, ‘p’ or ‘d’. Only needed for IAEA library with multiple incident projectiles optional.

outgoingstr, optional

Outgoing particle, or reaction shorthand. E.g. ‘2n’, ‘d’, ‘f’, ‘inl’, ‘x’. Does not need to be specified for TENDL residual product libraries.

productstr, optional

The product isotope. Not required for some exclusive reactions, e.g. ‘115IN(n,g)116IN’ is the same as ‘115IN(n,g)’, but not the same as ‘115IN(n,g)116INm1’.

Returns:
available_reactionslist of str (reaction names)

Reactions that were found in the libary matching the search criteria.

Examples

>>> lb = ci.Library('tendl_p')
>>> print(lb.search(target='Sr-86', product='Y-86g'))
['86SR(p,x)86Yg']
>>> lb = ci.Library('endf')
>>> print(lb.search(target='226RA', product='225RA'))
['226RA(n,2n)225RA']