armi.nuclearDataIO.cccc.isotxs module

This module reads and writes ISOTXS files.

ISOTXS is a binary file that contains multigroup microscopic cross sections. ISOTXS stands for Isotope Cross Sections.

ISOTXS files are often created by a lattice physics code such as MC2 or DRAGON and used as input to a global flux solver such as DIF3D.

This module implements reading and writing of the ISOTXS file format, consistent with [CCCC-IV].

Examples

>>> from armi.nuclearDataIO.cccc import isotxs
>>> myLib = isotxs.readBinary('ISOTXS-ref')
>>> nuc = myLib.getNuclide('U235','AA')
>>> fis5 = nuc.micros.fission[5]
>>> scat = nuc.micros.scatter[(0, 5, 6, 1)] # 1st order elastic scatter from group 5->6
>>> nuc.micros.fission[7] = fis5*1.01       # you can modify the isotxs too.
>>> captureEnergy = nuc.isotxsMetadata["ecapt"]
>>> isotxs.writeBinary(myLib, 'ISOTXS-modified')
armi.nuclearDataIO.cccc.isotxs.compareSet(fileNames, tolerance=0.0, verbose=False)[source]

takes a list of strings and reads all binaries with that name comparing them in all combinations.

Notes

useful for finding mcc bugs when you want to compare a series of very similar isotxs outputs Verbose gets VERY long

armi.nuclearDataIO.cccc.isotxs.compare(lib1, lib2, tolerance=0.0, verbose=False)[source]

Compare two XSLibraries, and return True if equal, or False if not.

Notes

Tolerance allows the user to ignore small changes that may be caused by small library differences or floating point cacluations the closer to zero the more differences will be shown 10**-5 is a good tolerance to use if not using default. Verbose shows the XS matrixes that are not equal

armi.nuclearDataIO.cccc.isotxs.compareNuclideXS(nuc1, nuc2, tolerance=0.0, verbose=False)[source]
armi.nuclearDataIO.cccc.isotxs.addDummyNuclidesToLibrary(lib, dummyNuclides)[source]

This method adds DUMMY nuclides to the current ISOTXS library.

Parameters:
  • lib (obj) – ISOTXS library object

  • dummyNuclides (list) – List of DUMMY nuclide objects that will be copied and added to the GAMISO file

Notes

Since MC2-3 does not write DUMMY nuclide information for GAMISO files, this is necessary to provide a consistent set of nuclide-level data across all the nuclides in a XSLibrary.

class armi.nuclearDataIO.cccc.isotxs.IsotxsIO(fileName, lib, fileMode, getNuclideFunc)[source]

Bases: Stream

A semi-abstract stream for reading and writing to a Isotxs.

Notes

This is a bit of a special case compared to most other CCCC files because of the special nuclide-level container in addition to the XSLibrary container.

The readWrite() defines the ISOTXS file structure as specified in http://t2.lanl.gov/codes/transx-hyper/isotxs.html.

readWrite()[source]

Read and write ISOTSX file.