mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-26 21:25:36 -04:00
Allow hybrid rx helper to work with no reactions specified
This commit is contained in:
parent
96a66789b1
commit
52bee7bee2
1 changed files with 14 additions and 12 deletions
|
|
@ -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]
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue