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
Add
add_reaction
(key, array[, qval])- Parameters:
from_file
(file)Read ALEPH-2 cross sections from file.
from_text
(text)- Parameters:
Order cross sections into a dataframe with energy as index and parent/daughter ZAM numbers as columns.
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