diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index d92daa5d6b..b37a5880c6 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1286,17 +1286,13 @@ class Chi(MultiGroupXS): self._xs_tally = nu_fission_out / sum_nu_fission_in - # Compute the total across all groups per subdomain - if self.domain_type == 'distribcell': - domain_filter = self.tallies['nu-fission-in'].filters[0] - num_subdomains = domain_filter.num_bins - filter_bins = [((i,),) for i in range(num_subdomains)] - else: - filter_bins = [((self.domain,),)] - # Normalize chi to 1.0 - norm = self._xs_tally.summation(filters=[self.domain_type], - filter_bins=filter_bins) + norm = self._xs_tally.summation(filters=['energyout'], + filter_bins=energy_bins) + + # FIXME: CrossFilter for energy + energy messes up tally arithmetic + norm.remove_filter(sum_nu_fission_in.filters[-1]) + self._xs_tally /= norm self._xs_tally._mean = np.nan_to_num(self._xs_tally.mean) self._xs_tally._std_dev = np.nan_to_num(self._xs_tally.std_dev)