diff --git a/openmc/filter.py b/openmc/filter.py index f44ac99f82..f5268ad816 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -1894,11 +1894,11 @@ class EnergyFunctionFilter(Filter): """ - def __init__(self, energy, y, filter_id=None): + def __init__(self, energy, y, interpolation='linear-linear', filter_id=None): self.energy = energy self.y = y self.id = filter_id - self.interpolation = 'linear-linear' + self.interpolation = interpolation def __eq__(self, other): if type(self) is not type(other): @@ -1936,12 +1936,14 @@ class EnergyFunctionFilter(Filter): string = type(self).__name__ + '\n' string += '{: <16}=\t{}\n'.format('\tEnergy', self.energy) string += '{: <16}=\t{}\n'.format('\tInterpolant', self.y) + string += '{: <16}=\t{}\n'.format('\tInterpolation', self.interpolation) return hash(string) def __repr__(self): string = type(self).__name__ + '\n' string += '{: <16}=\t{}\n'.format('\tEnergy', self.energy) string += '{: <16}=\t{}\n'.format('\tInterpolant', self.y) + string += '{: <16}=\t{}\n'.format('\tInterpolation', self.interpolation) string += '{: <16}=\t{}\n'.format('\tID', self.id) return string diff --git a/tests/regression_tests/filter_energyfun/inputs_true.dat b/tests/regression_tests/filter_energyfun/inputs_true.dat index 15de0f0277..35d15d61c0 100644 --- a/tests/regression_tests/filter_energyfun/inputs_true.dat +++ b/tests/regression_tests/filter_energyfun/inputs_true.dat @@ -24,6 +24,11 @@ 0.1 0.1 0.1333 0.158 0.18467 0.25618 0.4297 0.48 0.48 linear-linear + + 1e-05 0.369 1000.0 100000.0 600000.0 1000000.0 2000000.0 4000000.0 30000000.0 + 0.1 0.1 0.1333 0.158 0.18467 0.25618 0.4297 0.48 0.48 + log-log + Am241 (n,gamma) @@ -33,4 +38,9 @@ Am241 (n,gamma) + + 3 + Am241 + (n,gamma) + diff --git a/tests/regression_tests/filter_energyfun/results_true.dat b/tests/regression_tests/filter_energyfun/results_true.dat index a1fda93a81..a75b3fd4f7 100644 --- a/tests/regression_tests/filter_energyfun/results_true.dat +++ b/tests/regression_tests/filter_energyfun/results_true.dat @@ -1,2 +1,2 @@ energyfunction nuclide score mean std. dev. -0 d2effa26cb3cf2 Am241 ((n,gamma) / (n,gamma)) 1.74e-01 6.83e-03 +0 448ee8dfd19c4f Am241 ((n,gamma) / (n,gamma)) 1.74e-01 6.83e-03 diff --git a/tests/regression_tests/filter_energyfun/test.py b/tests/regression_tests/filter_energyfun/test.py index b5ab1387cc..cb658b9022 100644 --- a/tests/regression_tests/filter_energyfun/test.py +++ b/tests/regression_tests/filter_energyfun/test.py @@ -39,14 +39,21 @@ def model(): filt2 = openmc.EnergyFunctionFilter.from_tabulated1d(tab1d) assert filt1 == filt2, 'Error with the .from_tabulated1d constructor' + filt3 = openmc.EnergyFunctionFilter(x, y) + filt3.interpolation = 'log-log' + print(filt3) + # Make tallies - tallies = [openmc.Tally(), openmc.Tally()] + tallies = [openmc.Tally(), openmc.Tally(), openmc.Tally()] for t in tallies: t.scores = ['(n,gamma)'] t.nuclides = ['Am241'] tallies[1].filters = [filt1] + tallies[2].filters = [filt3] model.tallies.extend(tallies) + + return model @@ -75,7 +82,7 @@ class FilterEnergyFunHarness(PyAPITestHarness): model_tally = self._model.tallies[1] model_filt = model_tally.find_filter(openmc.EnergyFunctionFilter) - assert sp_filt.interpolation == model_filt.interpolation + assert sp_filt.interpolation == 'linear-linear' assert all(sp_filt.energy == model_filt.energy) assert all(sp_filt.y == model_filt.y)