def generate_tallies(self, materials, scores): """Produce multigroup flux spectrum tally Uses the :mod:`openmc.lib` module to generate a multigroup flux tally for each burnable material. Parameters ---------- materials : iterable of :class:`openmc.Material` Burnable materials in the problem. Used to construct a :class:`openmc.MaterialFilter` scores : iterable of str Reaction identifiers, e.g. ``"(n, fission)"``, ``"(n, gamma)"``, needed for the reaction rate tally. """ self._materials = materials # adds an entry for fisson to the dictionary of reactions self._mts = [REACTION_MT[x] for x in scores] self._scores = scores # Create flux tally with material and energy filters self._flux_tally = Tally() self._flux_tally.writable = False self._flux_tally.filters = [ MaterialFilter(materials), EnergyFilter(self._energies) ] self._flux_tally.scores = ['flux'] # Create reaction rate tally 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 generate_tallies(self, materials, scores): """Produce one-group reaction rate tally Uses the :mod:`openmc.lib` to generate a tally of relevant reactions across all burnable materials. Parameters ---------- materials : iterable of :class:`openmc.Material` Burnable materials in the problem. Used to construct a :class:`openmc.MaterialFilter` scores : iterable of str Reaction identifiers, e.g. ``"(n, fission)"``, ``"(n, gamma)"``, needed for the reaction rate tally. """ self._rate_tally = Tally() self._rate_tally.writable = False self._rate_tally.scores = scores self._rate_tally.filters = [MaterialFilter(materials)]
def generate_tallies(self, materials, mat_indexes): """Construct the fission rate tally Parameters ---------- materials : iterable of :class:`openmc.lib.Material` Materials to be used in :class:`openmc.lib.MaterialFilter` mat_indexes : iterable of int Indices of tallied materials that will have their fission yields computed by this helper. Necessary as the :class:`openmc.deplete.Operator` that uses this helper may only burn a subset of all materials when running in parallel mode. """ self._local_indexes = asarray(mat_indexes) # Tally group-wise fission reaction rates self._fission_rate_tally = Tally() self._fission_rate_tally.writable = False self._fission_rate_tally.scores = ['fission'] self._fission_rate_tally.filters = [MaterialFilter(materials)]