From 52bee7bee252777c7351bf15783dbc8efb27a7c4 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 3 Sep 2020 10:11:04 -0500 Subject: [PATCH] Allow hybrid rx helper to work with no reactions specified --- openmc/deplete/helpers.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/openmc/deplete/helpers.py b/openmc/deplete/helpers.py index fd3f8d3b0..11692e1a7 100644 --- a/openmc/deplete/helpers.py +++ b/openmc/deplete/helpers.py @@ -230,16 +230,16 @@ class HybridReactionHelper(ReactionRateHelper): All nuclides with desired reaction rates. """ - def __init__(self, n_nucs, n_reacts, energies, reactions, nuclides=None): + def __init__(self, n_nucs, n_reacts, energies, reactions=None, nuclides=None): super().__init__(n_nucs, n_reacts) self._energies = asarray(energies) - self._reactions_direct = list(reactions) + self._reactions_direct = list(reactions) if reactions is not None else [] self._nuclides_direct = list(nuclides) if nuclides is not None else None @ReactionRateHelper.nuclides.setter def nuclides(self, nuclides): ReactionRateHelper.nuclides.fset(self, nuclides) - if self._nuclides_direct is None: + if self._reactions_direct and self._nuclides_direct is None: self._rate_tally.nuclides = nuclides def generate_tallies(self, materials, scores): @@ -275,12 +275,13 @@ class HybridReactionHelper(ReactionRateHelper): self._flux_tally.scores = ['flux'] # Create reaction rate tally - self._rate_tally = Tally() - self._rate_tally.writable = False - self._rate_tally.scores = self._reactions_direct - self._rate_tally.filters = [MaterialFilter(materials)] - if self._nuclides_direct is not None: - self._rate_tally.nuclides = self._nuclides_direct + if self._reactions_direct: + self._rate_tally = Tally() + self._rate_tally.writable = False + self._rate_tally.scores = self._reactions_direct + self._rate_tally.filters = [MaterialFilter(materials)] + if self._nuclides_direct is not None: + self._rate_tally.nuclides = self._nuclides_direct def get_material_rates(self, mat_index, nuc_index, react_index): """Return an array of reaction rates for a material @@ -310,9 +311,10 @@ class HybridReactionHelper(ReactionRateHelper): flux = mean_value[mat_index] # Get direct reaction rates - nuclides_direct = self._rate_tally.nuclides - shape = (len(nuclides_direct), len(self._reactions_direct)) - rx_rates = self._rate_tally.mean[mat_index].reshape(shape) + if self._reactions_direct: + nuclides_direct = self._rate_tally.nuclides + shape = (len(nuclides_direct), len(self._reactions_direct)) + rx_rates = self._rate_tally.mean[mat_index].reshape(shape) mat = self._materials[mat_index]