diff --git a/examples/jupyter/nuclear-data-resonance-covariance.ipynb b/examples/jupyter/nuclear-data-resonance-covariance.ipynb index c673dfea56..74f774f410 100644 --- a/examples/jupyter/nuclear-data-resonance-covariance.ipynb +++ b/examples/jupyter/nuclear-data-resonance-covariance.ipynb @@ -53,7 +53,7 @@ "filename, headers = urllib.request.urlretrieve(url, 'gd157.endf')\n", "\n", "# Load into memory\n", - "gd157_endf = openmc.data.IncidentNeutron.from_endf(filename, get_covariance = True)\n", + "gd157_endf = openmc.data.IncidentNeutron.from_endf(filename, covariance = True)\n", "gd157_endf" ] }, @@ -83,7 +83,7 @@ } ], "source": [ - "first_five = gd157_endf.res_covariance.ranges[0].parameters[:5]\n", + "first_five = gd157_endf.resonance_covariance.ranges[0].parameters[:5]\n", "print(first_five)" ] }, @@ -100,7 +100,7 @@ "metadata": {}, "outputs": [], "source": [ - "covariance = gd157_endf.res_covariance.ranges[0].covariance" + "covariance = gd157_endf.resonance_covariance.ranges[0].covariance" ] }, { @@ -118,7 +118,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 5, @@ -129,7 +129,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -169,8 +169,8 @@ "source": [ "lower_bound = 2; #inclusive\n", "upper_bound = 2; #inclusive\n", - "gd157_endf.res_covariance.ranges[0].res_subset('J',[lower_bound,upper_bound])\n", - "subset_first_five = gd157_endf.res_covariance.ranges[0].parameters_subset[:5]\n", + "gd157_endf.resonance_covariance.ranges[0].res_subset('J',[lower_bound,upper_bound])\n", + "subset_first_five = gd157_endf.resonance_covariance.ranges[0].parameters_subset[:5]\n", "print(subset_first_five)" ] }, @@ -204,7 +204,7 @@ } ], "source": [ - "cov_subset = gd157_endf.res_covariance.ranges[0].cov_subset\n", + "cov_subset = gd157_endf.resonance_covariance.ranges[0].cov_subset\n", "print(cov_subset[:5,:5])" ] }, @@ -212,13 +212,44 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The covariance module also has the ability to sample a new set of parameters using the covariance matrix. Currently the sampling uses np.multivariate_normal(). Because parameters are assumed to have a multivariate normal distribution this method doesn't not currently guarantee that sampled parameters will be positive. " + "The covariance module also has the ability to sample a new set of parameters using the covariance matrix. Currently the sampling uses np.multivariate_normal(). Because parameters are assumed to have a multivariate normal distribution this method doesn't not currently guarantee that sampled parameters will be positive." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "openmc.data.resonance.ReichMoore" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rm_resonance = gd157_endf.resonances.ranges[0]\n", + "n_samples = 5\n", + "gd157_endf.resonance_covariance.ranges[0].sample_resonance_parameters(n_samples, rm_resonance)\n", + "samples = gd157_endf.resonance_covariance.ranges[0].samples\n", + "type(samples[0])\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The sampling routine requires the incorpotation of the `openmc.data.ResonanceRange` for the same resonance range object. This allows each sample itself to be its own `openmc.data.ResonanceRange` with a new set of parameters. Looking at some of the sampled parameters below:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -226,27 +257,24 @@ "text": [ "Sample 1\n", " energy L J neutronWidth captureWidth fissionWidthA fissionWidthB\n", - "0 0.035303 0 2.0 0.000482 0.100681 0.0 0.0\n", - "1 2.831054 0 2.0 0.000357 0.094362 0.0 0.0\n", - "2 16.244335 0 1.0 0.000400 0.049005 0.0 0.0\n", - "3 16.772396 0 2.0 0.012005 0.085736 0.0 0.0\n", - "4 20.560952 0 2.0 0.010648 0.098282 0.0 0.0\n", + "0 0.032307 0 2.0 0.000477 0.105887 0.0 0.0\n", + "1 2.827218 0 2.0 0.000349 0.094165 0.0 0.0\n", + "2 16.298283 0 1.0 0.000519 0.183407 0.0 0.0\n", + "3 16.771312 0 2.0 0.012540 0.078625 0.0 0.0\n", + "4 20.558190 0 2.0 0.011813 0.085244 0.0 0.0\n", "Sample 2\n", " energy L J neutronWidth captureWidth fissionWidthA fissionWidthB\n", - "0 0.032481 0 2.0 0.000477 0.105662 0.0 0.0\n", - "1 2.825417 0 2.0 0.000338 0.099793 0.0 0.0\n", - "2 16.248565 0 1.0 0.000465 0.118105 0.0 0.0\n", - "3 16.767121 0 2.0 0.012827 0.072236 0.0 0.0\n", - "4 20.559938 0 2.0 0.011424 0.085309 0.0 0.0\n" + "0 0.033027 0 2.0 0.000476 0.104104 0.0 0.0\n", + "1 2.825226 0 2.0 0.000344 0.098390 0.0 0.0\n", + "2 16.245609 0 1.0 0.000353 0.095063 0.0 0.0\n", + "3 16.764396 0 2.0 0.013475 0.075175 0.0 0.0\n", + "4 20.560505 0 2.0 0.011994 0.081186 0.0 0.0\n" ] } ], "source": [ - "n_samples = 5\n", - "gd157_endf.res_covariance.ranges[0].sample_resonance_parameters(n_samples)\n", - "samples = gd157_endf.res_covariance.ranges[0].samples\n", - "first_five_sample_1 = samples[0][:5]\n", - "first_five_sample_2 = samples[1][:5]\n", + "first_five_sample_1 = samples[0].parameters[:5]\n", + "first_five_sample_2 = samples[1].parameters[:5]\n", "print('Sample 1')\n", "print(first_five_sample_1)\n", "print('Sample 2')\n", @@ -257,35 +285,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We can reconstruct the cross section from the sampled parameters using the reconstruct method. This method also required the equivalent openmc.data.IncidentNeutron.resonance.ResonanceRange object. " - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[,\n", - " ]" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "gd157_endf.resonances.ranges" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Reconstructing in the ReichMoore region using our previously generated samples. " + "We can reconstruct the cross section from the sampled parameters using the reconstruct method of `openmc.data.ResonanceRange`. For more on reconstruction see the Nuclear Data example notebook. " ] }, { @@ -296,18 +296,39 @@ { "data": { "text/plain": [ - "Text(0,0.5,'Cross section (b)')" + "[,\n", + " ]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" + } + ], + "source": [ + "gd157_endf.resonances.ranges" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0,0.5,'Cross section (b)')" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" }, { "data": { - "image/png": "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\nJk0qPG8AAAAASUVORK5CYII=\n", + "image/png": "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\nYBtKl8mxDQAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -315,12 +336,11 @@ } ], "source": [ - "rm_resonance = gd157_endf.resonances.ranges[0]\n", "energy_range = [rm_resonance.energy_min, rm_resonance.energy_max]\n", "energies = np.logspace(np.log10(energy_range[0]),\n", " np.log10(energy_range[1]), 10000)\n", - "for sample in range(n_samples):\n", - " xs = gd157_endf.res_covariance.ranges[0].reconstruct(energies, rm_resonance, sample)\n", + "for sample in gd157_endf.resonance_covariance.ranges[0].samples:\n", + " xs = sample.reconstruct(energies)\n", " elastic_xs = xs[2]\n", " plt.loglog(energies, elastic_xs)\n", "plt.xlabel('Energy (eV)')\n", diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 10705985ab..3b98e00a21 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -233,7 +233,7 @@ class IncidentNeutron(EqualityMixin): @property def resonance_covariance(self): - return self._resoncance_covariance + return self._resonance_covariance @property def summed_reactions(self): @@ -298,8 +298,9 @@ class IncidentNeutron(EqualityMixin): @resonance_covariance.setter def resonance_covariance(self, resonance_covariance): - cv.check_type('resonances', resonances, res_cov.ResonanceCovariance) - self._resonacne_covariance = resonance_covariance + cv.check_type('resonance covariance', resonance_covariance, + res_cov.ResonanceCovariances) + self._resonance_covariance = resonance_covariance @summed_reactions.setter def summed_reactions(self, summed_reactions): diff --git a/openmc/data/resonance_covariance.py b/openmc/data/resonance_covariance.py index abc6747764..714d87234d 100644 --- a/openmc/data/resonance_covariance.py +++ b/openmc/data/resonance_covariance.py @@ -1,6 +1,7 @@ from collections import defaultdict, MutableSequence, Iterable import warnings import io +import copy import numpy as np import pandas as pd @@ -55,13 +56,6 @@ class ResonanceCovariances(Resonances): Distinct energy ranges for resonance data """ - def __init__(self, ranges): - self.ranges = ranges - - def __iter__(self): - for r in self.ranges: - yield r - @property def ranges(self): return self._ranges @@ -204,13 +198,16 @@ class ResonanceCovarianceRange: self.parameters_subset = parameters_subset self.cov_subset = cov_subset - def sample_resonance_parameters(self, n_samples, use_subset=False): - """Return a IncidentNeutron object with n_samples of xs + def sample_resonance_parameters(self, n_samples, resonances, use_subset=False): + """Return a list size 'n_samples' of openmc.data.ResonanceRange objects. + Each with an indepentenly sampled set of parameters Parameters ---------- n_samples : int The number of samples to produce + resonances : openmc.data.ResonanceRange object + Corresponding resonance range with File 2 data. use_subset : bool, optional Flag on whether to sample from an already produced subset @@ -236,7 +233,6 @@ class ResonanceCovarianceRange: mpar = self.mpar samples = [] - # Handling MLBW sampling if formalism == 'mlbw' or formalism == 'slbw': if mpar == 3: @@ -258,9 +254,11 @@ class ResonanceCovarianceRange: records.append([energy[j], l_value[j], spin[j], gt[j], gn[j], gg[j], gf[j], gx[j]]) columns = ['energy', 'L', 'J', 'totalWidth', 'neutronWidth', - 'captureWidth', 'fissionWidth', 'competitiveWidth'] + 'captureWidth', 'fissionWidth', 'competitiveWidth'] sample_params = pd.DataFrame.from_records(records, columns=columns) - samples.append(sample_params) + res_range = copy.copy(resonances) + res_range.parameters = sample_params + samples.append(res_range) elif mpar == 4: param_list = ['energy', 'neutronWidth', 'captureWidth', 'fissionWidth'] @@ -281,9 +279,11 @@ class ResonanceCovarianceRange: records.append([energy[j], l_value[j], spin[j], gt[j], gn[j], gg[j], gf[j], gx[j]]) columns = ['energy', 'L', 'J', 'totalWidth', 'neutronWidth', - 'captureWidth', 'fissionWidth', 'competitiveWidth'] + 'captureWidth', 'fissionWidth', 'competitiveWidth'] sample_params = pd.DataFrame.from_records(records, columns=columns) - samples.append(sample_params) + res_range = copy.copy(resonances) + res_range.parameters = sample_params + samples.append(res_range) elif mpar == 5: param_list = ['energy', 'neutronWidth', 'captureWidth', @@ -305,9 +305,11 @@ class ResonanceCovarianceRange: records.append([energy[j], l_value[j], spin[j], gt[j], gn[j], gg[j], gf[j], gx[j]]) columns = ['energy', 'L', 'J', 'totalWidth', 'neutronWidth', - 'captureWidth', 'fissionWidth', 'competitveWidth'] + 'captureWidth', 'fissionWidth', 'competitveWidth'] sample_params = pd.DataFrame.from_records(records, columns=columns) - samples.append(sample_params) + res_range = copy.copy(resonances) + res_range.parameters = sample_params + samples.append(res_range) # Handling RM Sampling if formalism == 'rm': @@ -331,7 +333,9 @@ class ResonanceCovarianceRange: columns = ['energy', 'L', 'J', 'neutronWidth', 'captureWidth', 'fissionWidthA', 'fissionWidthB'] sample_params = pd.DataFrame.from_records(records, columns=columns) - samples.append(sample_params) + res_range = copy.copy(resonances) + res_range.parameters = sample_params + samples.append(res_range) elif mpar == 5: param_list = ['energy', 'neutronWidth', 'captureWidth', @@ -354,38 +358,12 @@ class ResonanceCovarianceRange: columns = ['energy', 'L', 'J', 'neutronWidth', 'captureWidth', 'fissionWidthA', 'fissionWidthB'] sample_params = pd.DataFrame.from_records(records, columns=columns) - samples.append(sample_params) + res_range = copy.copy(resonances) + res_range.parameters = sample_params + samples.append(res_range) self.samples = samples - def reconstruct(self, energies, resonances, sampleN): - """Evaluate the cross section at specified energies for an already - sampled set of resonance parameters. - - Parameters - ---------- - energies : float or Iterable of float - Energies at which the cross section should be evaluated - resonances : openmc.data.Resonance object - Corresponding resonance range with File 2 data. Used for - reconstruction method - sampleN : int - Index of sample of resonance parameters to be used - - Returns - ------- - 3-tuple of float or numpy.ndarray - Elastic, capture, and fission cross sections at the specified - energies - - """ - if self.samples[sampleN] is None: - raise ValueError("Sample of resonance parameters has not been set.") - sample_parameters = self.samples[sampleN] - xs_array = resonances.reconstruct(energies, use_sample = True, - sample_parameters = sample_parameters) - return xs_array - class MultiLevelBreitWignerCovariance(ResonanceCovarianceRange): """Multi-level Breit-Wigner resolved resonance formalism covariance data. @@ -436,7 +414,9 @@ class MultiLevelBreitWignerCovariance(ResonanceCovarianceRange): items : list Items from the CONT record at the start of the resonance range subsection - resonances : openmc.data.IncidentNeutron.Resonance object + file2params : openmc.data.ResonanceRange object + Corresponding resonance range with File 2 data. Used for + reconstruction method Returns ------- diff --git a/tests/unit_tests/test_data_neutron.py b/tests/unit_tests/test_data_neutron.py index 90d2799455..54d815eb66 100644 --- a/tests/unit_tests/test_data_neutron.py +++ b/tests/unit_tests/test_data_neutron.py @@ -39,7 +39,7 @@ def sm150(): def gd154(): """Gd154 ENDF data (contains Reich Moore resonance range)""" filename = os.path.join(_ENDF_DATA, 'neutrons', 'n-064_Gd_154.endf') - return openmc.data.IncidentNeutron.from_endf(filename, get_covariance = True) + return openmc.data.IncidentNeutron.from_endf(filename, covariance = True) @pytest.fixture(scope='module') @@ -96,11 +96,12 @@ def am244(): endf_file = os.path.join(_ENDF_DATA, 'neutrons', 'n-095_Am_244.endf') return openmc.data.IncidentNeutron.from_njoy(endf_file) + @pytest.fixture(scope='module') def ti50(): """Ti50 ENDF data (contains Multi-level Breit-Wigner resonance range)""" filename = os.path.join(_ENDF_DATA, 'neutrons', 'n-022_Ti_050.endf') - return openmc.data.IncidentNeutron.from_endf(filename, get_covariance=True) + return openmc.data.IncidentNeutron.from_endf(filename, covariance=True) def test_attributes(pu239):