sandy.gendf module

class sandy.gendf.Gendf(data, file=None)

Bases: _FormattedFile

Container for gendf information grouped by MAT, MF and MT numbers.

Attributes:
data
is_empty
keys

List of keys (MAT, MF, MT) used to identify each tape section.

kind

Kind of ENDF-6 formatted file (‘endf6’, ‘pendf’, ‘gendf’, ‘errorr’) .

mat
mf
mt

Methods

add_section(mat, mf, mt, text)

Given MAT, MF and MT add/replace the corresponding section in the Endf6.data.

delete_section(mat, mf, mt[, raise_error])

Given MAT, MF and MT delete the corresponding section from the Endf6.data.

filter_by([listmat, listmf, listmt])

Filter dataframe based on MAT, MF, MT lists.

from_file(file)

Create dataframe by reading a file.

from_text(text)

Create dataframe from endf6 text in string.

from_url(filename, rooturl)

Given a filename and the url where the file is located, extract the ENDF6 data from the file into a sandy.Endf6 instance.

from_zipurl(filename, rooturl)

Given a filename and the url where the file is located (in zipped format), extract the ENDF6 data from the file into a sandy.Endf6 instance.

get_flux(**kwargs)

The flux of the multigroup approach

get_g_energy_grid(**kwargs)

Obtain photons energy grid.

get_n_energy_grid(**kwargs)

Obtaining neutrons energy grid.

get_xs(**kwargs)

Get multigroup neutron cross sections

merge(*iterable)

Given a single sandy.Endf6 object or an iterable of sandy.Endf6 objects as keyword arguments, add their sections to a copy of the self instance and return a new sandy.Endf6 object.

read_url(filename, rooturl)

Given a filename and the url where the file is located, extract the ENDF6 data from the file into a string.

read_zipurl(filename, rooturl)

Given a filename and the url where the file is located (in zipped format), extract the ENDF6 data from the file into a string.

to_file(filename[, mode])

Given a filename write the content of a _FormattedFile instance to disk in ASCII format.

write_string([title])

Write _FormattedFile.data content to string according to the ENDF-6 file rules.

add_sections

change_value

get_value

to_series

get_flux(**kwargs)

The flux of the multigroup approach

Returns:
fluxpd.Series

Dataframe containing the flux.

Examples

>>> endf6 = sandy.get_endf6_file("jeff_33", "xs", 10010)
>>> gendf = endf6.get_gendf(minimal_processing=True, err=1, temperature=293.6, groupr_kws=dict(ek=sandy.energy_grids.CASMO12))
>>> gendf.get_flux()
(1e-05, 0.03]             2.99900e-02
(0.03, 0.058]             2.80000e-02
(0.058, 0.14]             8.20000e-02
(0.14, 0.28]              1.40000e-01
(0.28, 0.35]              7.00000e-02
(0.35, 0.625]             2.75000e-01
(0.625, 4.0]              3.37500e+00
(4.0, 48.052]             4.40520e+01
(48.052, 5530.0]          5.48195e+03
(5530.0, 821000.0]        8.15470e+05
(821000.0, 2231000.0]     1.41000e+06
(2231000.0, 10000000.0]   7.76900e+06
Name: iwt, dtype: float64
>>> gendf.get_flux(mat=125, mt=2)
(1e-05, 0.03]             2.99900e-02
(0.03, 0.058]             2.80000e-02
(0.058, 0.14]             8.20000e-02
(0.14, 0.28]              1.40000e-01
(0.28, 0.35]              7.00000e-02
(0.35, 0.625]             2.75000e-01
(0.625, 4.0]              3.37500e+00
(4.0, 48.052]             4.40520e+01
(48.052, 5530.0]          5.48195e+03
(5530.0, 821000.0]        8.15470e+05
(821000.0, 2231000.0]     1.41000e+06
(2231000.0, 10000000.0]   7.76900e+06
Name: iwt, dtype: float64
get_g_energy_grid(**kwargs)

Obtain photons energy grid.

Returns:
np.array

The energy grid of the Gendf() object.

Examples

>>> endf6 = sandy.get_endf6_file("jeff_33", "xs", 10010)
>>> gendf = endf6.get_gendf(groupr_kws=dict(ep=sandy.energy_grids.CASMO12))
>>> np.testing.assert_allclose(gendf.get_g_energy_grid(), sandy.energy_grids.CASMO12, atol=1e-14, rtol=1e-14)
>>> np.testing.assert_allclose(gendf.get_g_energy_grid(mat=125), sandy.energy_grids.CASMO12, atol=1e-14, rtol=1e-14)
get_n_energy_grid(**kwargs)

Obtaining neutrons energy grid.

Returns:
np.array

The energy grid of the Gendf() object.

Examples

>>> endf6 = sandy.get_endf6_file("jeff_33", "xs", 10010)
>>> gendf = endf6.get_gendf(verborse=True)
>>> assert len(gendf.get_n_energy_grid()) == 241
>>> endf6 = sandy.get_endf6_file("jeff_33", "xs", 10010)
>>> gendf = endf6.get_gendf(groupr_kws=dict(ek=sandy.energy_grids.CASMO12))
>>> np.testing.assert_allclose(gendf.get_n_energy_grid(), sandy.energy_grids.CASMO12, atol=1e-14, rtol=1e-14)
>>> np.testing.assert_allclose(gendf.get_n_energy_grid(mat=125), sandy.energy_grids.CASMO12, atol=1e-14, rtol=1e-14)
get_xs(**kwargs)

Get multigroup neutron cross sections

Returns:
xsXs()

multigroup cross sections

Examples

>>> endf6 = sandy.get_endf6_file("jeff_33", "xs", 10010)
>>> gendf = endf6.get_gendf(minimal_processing=True, err=0.005, temperature=293.6, groupr_kws=dict(ek=sandy.energy_grids.CASMO12))
>>> gendf.get_xs()
MAT                             125
MT                              1           2           102         251
E
(1e-05, 0.03]           4.74500e+01 4.68507e+01 5.99276e-01 6.67348e-01
(0.03, 0.058]           2.66592e+01 2.64039e+01 2.55277e-01 6.67289e-01
(0.058, 0.14]           2.33852e+01 2.32133e+01 1.71860e-01 6.67323e-01
(0.14, 0.28]            2.18356e+01 2.17186e+01 1.17013e-01 6.67259e-01
(0.28, 0.35]            2.13559e+01 2.12616e+01 9.43025e-02 6.67231e-01
(0.35, 0.625]           2.10611e+01 2.09845e+01 7.66054e-02 6.67220e-01
(0.625, 4.0]            2.06169e+01 2.05790e+01 3.79424e-02 6.67215e-01
(4.0, 48.052]           2.04594e+01 2.04475e+01 1.18527e-02 6.67220e-01
(48.052, 5530.0]        2.00729e+01 2.00716e+01 1.28270e-03 6.67237e-01
(5530.0, 821000.0]      8.05819e+00 8.05812e+00 6.41591e-05 6.67120e-01
(821000.0, 2231000.0]   3.48869e+00 3.48866e+00 3.54245e-05 6.66838e-01
(2231000.0, 10000000.0] 1.52409e+00 1.52406e+00 3.44005e-05 6.65044e-01
>>> gendf.get_xs(mt=1)
MAT                             125
MT                                1
E                                  
(1e-05, 0.03]           4.74500e+01
(0.03, 0.058]           2.66592e+01
(0.058, 0.14]           2.33852e+01
(0.14, 0.28]            2.18356e+01
(0.28, 0.35]            2.13559e+01
(0.35, 0.625]           2.10611e+01
(0.625, 4.0]            2.06169e+01
(4.0, 48.052]           2.04594e+01
(48.052, 5530.0]        2.00729e+01
(5530.0, 821000.0]      8.05819e+00
(821000.0, 2231000.0]   3.48869e+00
(2231000.0, 10000000.0] 1.52409e+00
>>> gendf.get_xs(mt=[1, 2])
MAT                             125            
MT                                1           2
E                                              
(1e-05, 0.03]           4.74500e+01 4.68507e+01
(0.03, 0.058]           2.66592e+01 2.64039e+01
(0.058, 0.14]           2.33852e+01 2.32133e+01
(0.14, 0.28]            2.18356e+01 2.17186e+01
(0.28, 0.35]            2.13559e+01 2.12616e+01
(0.35, 0.625]           2.10611e+01 2.09845e+01
(0.625, 4.0]            2.06169e+01 2.05790e+01
(4.0, 48.052]           2.04594e+01 2.04475e+01
(48.052, 5530.0]        2.00729e+01 2.00716e+01
(5530.0, 821000.0]      8.05819e+00 8.05812e+00
(821000.0, 2231000.0]   3.48869e+00 3.48866e+00
(2231000.0, 10000000.0] 1.52409e+00 1.52406e+00

err=1 or else it takes too long >>> endf6 = sandy.get_endf6_file(‘jeff_33’,’xs’, 922350) >>> gendf = endf6.get_gendf(minimal_processing=True, err=1, groupr_kws=dict(ek=sandy.energy_grids.CASMO12)) >>> gendf.get_xs(mt=[4, 5]) MAT 9228 MT 4 5 E (1e-05, 0.03] 0.00000e+00 0.00000e+00 (0.03, 0.058] 0.00000e+00 0.00000e+00 (0.058, 0.14] 0.00000e+00 0.00000e+00 (0.14, 0.28] 0.00000e+00 0.00000e+00 (0.28, 0.35] 0.00000e+00 0.00000e+00 (0.35, 0.625] 0.00000e+00 0.00000e+00 (0.625, 4.0] 0.00000e+00 0.00000e+00 (4.0, 48.052] 0.00000e+00 0.00000e+00 (48.052, 5530.0] 8.60022e-07 3.41812e-08 (5530.0, 821000.0] 1.22176e+00 7.72174e-04 (821000.0, 2231000.0] 1.94841e+00 1.17248e-02 (2231000.0, 10000000.0] 1.40637e+00 7.49994e-03