armi.physics.neutronics.isotopicDepletion.crossSectionTable module

Module containing the CrossSectionTable class.

The CrossSectionTable is useful for performing isotopic depletion analysis by storing one-group cross sections of interest to such an analysis. This used to live alongside the isotopicDepletionInterface, but that proved to be an unpleasant coupling between the ARMI composite model and the physics code contained therein. Separating it out at least means that the composite model doesn’t need to import the isotopicDepletionInterface to function.

class armi.physics.neutronics.isotopicDepletion.crossSectionTable.CrossSectionTable(*args, **kwargs)[source]

Bases: collections.OrderedDict

This is a set of one group cross sections for use with isotopicDepletion analysis.

Really it’s a reaction rate table.

XStable is indexed by nucNames (nG), (nF), (n2n), (nA), (nP) and (n3n) are expected the cross sections are returned in barns

rateTypes = ('nG', 'nF', 'n2n', 'nA', 'nP', 'n3n')
setName(name)[source]
getName()[source]
add(nucName, nG=0.0, nF=0.0, n2n=0.0, nA=0.0, nP=0.0, n3n=0.0)[source]

Add one group cross sections to the table.

Parameters
  • str (nucName -) – nuclide name – e.g. ‘U235’

  • float (n3n -) – (n,gamma) cross section in barns

  • float – (n,fission) cross section in barns

  • float – (n,2n) cross section in barns

  • float – (n,alpha) cross section in barns

  • float – (n,proton) cross section in barns

  • float – (n,3n) cross section in barns

addMultiGroupXS(nucName, microMultiGroupXS, mgFlux, totalFlux=None)[source]

Perform group collapse to one group cross sections and add to table.

Parameters
  • str (nucName -) – nuclide name – e.g. ‘U235’

  • XSCollection (microMultiGroupXS -) – micro cross sections, typically a XSCollection from an ISOTXS

  • like (mgFlux - list) – The flux in each energy group

  • float (totalFlux -) – The total flux. Optional argument for increased speed if already available.

hasValues()[source]

determines if there are non-zero values in this cross section table.

getXsecTable(headerFormat='$ xsecs for {}', tableFormat='\n{{mcnpId}} {nG:.5e} {nF:.5e} {n2n:.5e} {n3n:.5e} {nA:.5e} {nP:.5e}')[source]

make a cross section table for external depletion physics code input decks.

Parameters
  • headerFormat (string (optional)) – this is the format in which the elements of the header with be returned – i.e. if you use a .format() call with the case name you’ll return a formatted list of string elements

  • tableFormat (string (optional)) – this is the format in which the elements of the table with be returned – i.e. if you use a .format() call with mcnpId, nG, nF, n2n, n3n, nA, and nP you’ll get the format you want. If you use a .format() call with the case name you’ll return a formatted list of string elements

  • Results

  • -------

  • output (list) – a list of string elements that together make a xsec card

armi.physics.neutronics.isotopicDepletion.crossSectionTable.makeReactionRateTable(obj, nuclides: Optional[List] = None)[source]

Generate a reaction rate table for given nuclides.

Often useful in support of depletion.

Parameters

nuclides (list, optional) – list of nuclide names for which to generate the cross-section table. If absent, use all nuclides obtained by self.getNuclides().

Notes

This also used to do some caching on the block level but that has been removed and the calls to this may therefore need to be re-optimized.

See also

armi.physics.neutronics.isotopicDepletion.isotopicDepletionInterface.CrossSectionTable