mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-27 13:45:36 -04:00
Fixed normalization of scattering prob matrix with histogram format
This commit is contained in:
parent
23cf630636
commit
2906994115
1 changed files with 17 additions and 2 deletions
|
|
@ -3964,16 +3964,31 @@ class ScatterMatrixXS(MatrixMGXS):
|
|||
energyout_bins = [self.energy_groups.get_group_bounds(i)
|
||||
for i in range(self.num_groups, 0, -1)]
|
||||
tally_key = 'scatter-P{}'.format(self.legendre_order)
|
||||
|
||||
# Compute normalization factor summed across outgoing energies
|
||||
norm = self.tallies[tally_key].get_slice(scores=['scatter-0'])
|
||||
norm = norm.summation(
|
||||
filter_type=openmc.EnergyoutFilter, filter_bins=energyout_bins)
|
||||
|
||||
# Remove the AggregateFilter summed across energyout bins
|
||||
norm._filters = norm._filters[:2]
|
||||
|
||||
# Compute normalization factor summed across outgoing mu bins
|
||||
if self.scatter_format == 'histogram':
|
||||
bins = np.linspace(
|
||||
|
||||
# (Re-)append the MuFilter which was removed above
|
||||
mu_bins = np.linspace(
|
||||
-1., 1., num=self.histogram_bins + 1, endpoint=True)
|
||||
norm._filters.append(openmc.MuFilter(bins))
|
||||
norm._filters.append(openmc.MuFilter(mu_bins))
|
||||
|
||||
# Sum across all mu bins
|
||||
mu_bins = [(mu_bins[i], mu_bins[i+1]) for
|
||||
i in range(self.histogram_bins)]
|
||||
norm = norm.summation(
|
||||
filter_type=openmc.MuFilter, filter_bins=mu_bins)
|
||||
|
||||
# Remove the AggregateFilter summed across mu bins
|
||||
norm._filters = norm._filters[:2]
|
||||
|
||||
# Multiply by the group-to-group probability matrix
|
||||
self._xs_tally *= (self.tallies[tally_key] / norm)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue