sandy.aleph2.xsfile module

class sandy.aleph2.xsfile.AlephFile(data)

Bases: object

Examples

>>> inp = AlephFile.from_text(test_aleph2xs)
>>> inp.data
{'nuclide': 952410,
 'energies': array([1.e-11, 1.e-05, 1.e-01, 1.e+01]),
 'fission_qvalue': 200.0,
 'capture_qvalue': 5.0,
 'reactions': {952420: {'qval': 5.0, 'xs': array([1., 2., 3., 4.])},
  18: {'qval': 200.0, 'xs': array([1., 2., 3., 4.])},
  942410: {'qval': 5.0, 'xs': array([6., 5.])},
  10010: {'qval': 0.7, 'xs': array([6., 5.])},
  4581: {'qval': 0.0, 'xs': array([200., 400., 600., 800.])},
  4582: {'qval': 0.0, 'xs': array([ 5., 10., 15., 20.])}}}
Attributes:
npoints
nuclide

Methods

add_capture_xsenergy()

Add

add_fission_xsenergy()

Add

add_reaction(key, array[, qval])

Parameters:

from_file(file)

Read ALEPH-2 cross sections from file.

from_text(text)

Parameters:

to_dataframe()

Order cross sections into a dataframe with energy as index and parent/daughter ZAM numbers as columns.

to_string()

Write file content into sting.

copy

add_capture_xsenergy()

Add

Returns:
None.
add_fission_xsenergy()

Add

Returns:
None.
add_reaction(key, array, qval=0.0)
Parameters:
keyint

reaction product ZAM identifier (daughter).

arraynumpy.ndarray

cross section values over original energy grid, or a selection for threshold reactions.

qvalfloat, optional

reaction qvalue. The default is 0..

Returns:
None.
Raises:
ValueError

If cross section array contains more entries than the energy points.

Examples

>>> inp = AlephFile.from_text(test_aleph2xs)
>>> new = [3, 4, 5]
>>> inp2 = inp.add_reaction(100, new)
>>> inp2.data
{'nuclide': 952410,
 'energies': array([1.e-11, 1.e-05, 1.e-01, 1.e+01]),
 'fission_qvalue': 200.0,
 'capture_qvalue': 5.0,
 'reactions': {952420: {'qval': 5.0, 'xs': array([1., 2., 3., 4.])},
  18: {'qval': 200.0, 'xs': array([1., 2., 3., 4.])},
  942410: {'qval': 5.0, 'xs': array([6., 5.])},
  10010: {'qval': 0.7, 'xs': array([6., 5.])},
  4581: {'qval': 0.0, 'xs': array([200., 400., 600., 800.])},
  4582: {'qval': 0.0, 'xs': array([ 5., 10., 15., 20.])},
  100: {'qval': 0.0, 'xs': array([3., 4., 5.])}}}
copy()
classmethod from_file(file)

Read ALEPH-2 cross sections from file.

Parameters:
filestr

name of the file containing ALEPH-2 cross section data.

classmethod from_text(text)
Parameters:
clsTYPE

DESCRIPTION.

textTYPE

DESCRIPTION.

Returns:
dataTYPE

DESCRIPTION.

property npoints
property nuclide
to_dataframe()

Order cross sections into a dataframe with energy as index and parent/daughter ZAM numbers as columns.

Returns:
dfpandas.DataFrame

dtaframe of energy-dependent cross sections.

Notes

Note

threshold reactions are padded with zero from the first energy point to the last before the threshold.

Examples

>>> AlephFile.from_text(test_aleph2xs).to_dataframe()
PARENT           952410
DAUGHTER         952420      18          942410      10010       4581        4582
E
1.00000e-11 1.00000e+00 1.00000e+00 0.00000e+00 0.00000e+00 2.00000e+02 5.00000e+00
1.00000e-05 2.00000e+00 2.00000e+00 0.00000e+00 0.00000e+00 4.00000e+02 1.00000e+01
1.00000e-01 3.00000e+00 3.00000e+00 6.00000e+00 6.00000e+00 6.00000e+02 1.50000e+01
1.00000e+01 4.00000e+00 4.00000e+00 5.00000e+00 5.00000e+00 8.00000e+02 2.00000e+01

PARENT 952410 … DAUGHTER 952420 18 … 4581 4582 E … 1.00000e-11 1.00000e+00 1.00000e+00 … 2.00000e+02 5.00000e+00 1.00000e-05 2.00000e+00 2.00000e+00 … 4.00000e+02 1.00000e+01 1.00000e-01 3.00000e+00 3.00000e+00 … 6.00000e+02 1.50000e+01 1.00000e+01 4.00000e+00 4.00000e+00 … 8.00000e+02 2.00000e+01

to_string()

Write file content into sting.

Returns:
str

string with file content.

Examples

>>> print(AlephFile.from_text(test_aleph2xs).to_string())
              952410                   4                   4  2.000000000000E+02
  5.000000000000E+00                                                            
  1.000000000000E-11  1.000000000000E-05  1.000000000000E-01  1.000000000000E+01
                  18                   0  2.000000000000E+02                    
  1.000000000000E+00  2.000000000000E+00  3.000000000000E+00  4.000000000000E+00
               10010                   2  7.000000000000E-01                    
  6.000000000000E+00  5.000000000000E+00                                        
              942410                   2  5.000000000000E+00                    
  6.000000000000E+00  5.000000000000E+00                                        
              952420                   0  5.000000000000E+00                    
  1.000000000000E+00  2.000000000000E+00  3.000000000000E+00  4.000000000000E+00