Beispiel #1
0
def test_cross_sections_read():
    sample_xs.seek(0)
    xs = openmc.CrossSections(sample_xs)
    assert_equal('ascii', xs.filetype)
    assert_true(xs.path is None)

    exp = [
        openmc.AceTable(alias='H-1.71c',
                        awr='0.999167',
                        location='1',
                        name='1001.71c',
                        path='293.6K/H_001_293.6K.ace',
                        temperature='2.53e-08',
                        zaid='1001'),
        openmc.AceTable(alias='Am-242m.73c',
                        awr='239.9801',
                        location='1',
                        metastable='1',
                        name='95242.73c',
                        path='900K/Am_242_900K.ace',
                        temperature='7.756e-08',
                        zaid='95242'),
        openmc.AceTable(awr='89.1324',
                        location='1',
                        name='ZrZrH.71t',
                        path='tsl/zrzrh.acer',
                        temperature='2.551e-08',
                        zaid='0')
    ]
    assert_equal(exp, xs.ace_tables)
Beispiel #2
0
def test_cross_sections_roundtrip():
    sample_xs.seek(0)
    xs = openmc.CrossSections(sample_xs)
    sample_xs.seek(0)
    exp = sample_xs.read()
    obs = xs.xml()
    assert_equal(exp, obs)
Beispiel #3
0
def test_cross_sections_abspath_with_dir():
    xs = openmc.CrossSections(sample_xs_with_dir)
    assert_equal('ascii', xs.filetype)
    assert_equal(xs.path, "/")

    exp_abspaths = [
        "/293.6K/H_001_293.6K.ace", "/900K/Am_242_900K.ace", "/tsl/zrzrh.acer"
    ]
    obs_abspaths = [table.abspath for table in xs.ace_tables]
    assert_equal(exp_abspaths, obs_abspaths)
Beispiel #4
0
def test_cross_sections_mcnp_id():
    xstables = openmc.CrossSections(sample_xs_with_mcnp_id).ace_tables
    mcnp_obs = [
        table.nucid for table in xstables if table.alias == "Co-58m.70c"
    ][0]
    assert_equal(mcnp_obs, 270580001)
    nucid_obs = [
        table.nucid for table in xstables if table.alias == "Co-58.70c"
    ][0]
    assert_equal(nucid_obs, 270580000)
Beispiel #5
0
    def __init__(self, cross_sections=None, src_group_struct=None, **kwargs):
        """Parameters
        ----------
        cross_sections : openmc.CrossSections or string or file-like, optional
            Path or file to OpenMC cross_sections.xml
        src_group_struct : array-like, optional
            The group structure to discretize the ACE data to, defaults to 
            ``np.logspace(1, -9, 101)``.
        kwargs : optional
            Keyword arguments to be sent to DataSource base class.

        """
        if not isinstance(cross_sections, openmc.CrossSections):
            cross_sections = cross_sections or os.getenv('CROSS_SECTIONS')
            cross_sections = openmc.CrossSections(f=cross_sections)
        self.cross_sections = cross_sections
        self._src_group_struct = src_group_struct
        super(OpenMCDataSource, self).__init__(**kwargs)
        self.libs = {}  # cross section libraries, index by openmc.AceTables