mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-26 13:15:39 -04:00
Made Python API Filter.num_bins property decorator look at bins attribute for smarter return
This commit is contained in:
parent
e663aa6ec8
commit
442e0d88e9
2 changed files with 10 additions and 19 deletions
|
|
@ -35,6 +35,8 @@ class Filter(object):
|
|||
The type of the tally filter.
|
||||
bins : Integral or Iterable of Integral or Iterable of float
|
||||
The bins for the filter
|
||||
num_bins : Integral
|
||||
The number of filter bins
|
||||
mesh : Mesh or None
|
||||
A Mesh object for 'mesh' type filters.
|
||||
offset : Integral
|
||||
|
|
@ -110,7 +112,14 @@ class Filter(object):
|
|||
|
||||
@property
|
||||
def num_bins(self):
|
||||
return self._num_bins
|
||||
if self.bins is None:
|
||||
return 0
|
||||
elif self.type in ['energy', 'energyout']:
|
||||
return len(self.bins)-1
|
||||
elif self.type in ['cell', 'cellborn', 'surface', 'universe', 'material']:
|
||||
return len(self.bins)
|
||||
else:
|
||||
return self._num_bins
|
||||
|
||||
@property
|
||||
def mesh(self):
|
||||
|
|
|
|||
|
|
@ -885,7 +885,6 @@ class TotalXS(MultiGroupXS):
|
|||
# Create the non-domain specific Filters for the Tallies
|
||||
group_edges = self.energy_groups.group_edges
|
||||
energy_filter = openmc.Filter('energy', group_edges)
|
||||
energy_filter.num_bins = self.num_groups
|
||||
filters = [[energy_filter], [energy_filter]]
|
||||
|
||||
# Initialize the Tallies
|
||||
|
|
@ -918,8 +917,6 @@ class TransportXS(MultiGroupXS):
|
|||
group_edges = self.energy_groups.group_edges
|
||||
energy_filter = openmc.Filter('energy', group_edges)
|
||||
energyout_filter = openmc.Filter('energyout', group_edges)
|
||||
energy_filter.num_bins = self.num_groups
|
||||
energyout_filter.num_bins = self.num_groups
|
||||
filters = [[energy_filter], [energy_filter], [energyout_filter]]
|
||||
|
||||
# Initialize the Tallies
|
||||
|
|
@ -957,7 +954,6 @@ class AbsorptionXS(MultiGroupXS):
|
|||
# Create the non-domain specific Filters for the Tallies
|
||||
group_edges = self.energy_groups.group_edges
|
||||
energy_filter = openmc.Filter('energy', group_edges)
|
||||
energy_filter.num_bins = self.num_groups
|
||||
filters = [[energy_filter], [energy_filter]]
|
||||
|
||||
# Initialize the Tallies
|
||||
|
|
@ -989,7 +985,6 @@ class CaptureXS(MultiGroupXS):
|
|||
# Create the non-domain specific Filters for the Tallies
|
||||
group_edges = self.energy_groups.group_edges
|
||||
energy_filter = openmc.Filter('energy', group_edges)
|
||||
energy_filter.num_bins = self.num_groups
|
||||
filters = [[energy_filter], [energy_filter], [energy_filter]]
|
||||
|
||||
# Initialize the Tallies
|
||||
|
|
@ -1022,7 +1017,6 @@ class FissionXS(MultiGroupXS):
|
|||
# Create the non-domain specific Filters for the Tallies
|
||||
group_edges = self.energy_groups.group_edges
|
||||
energy_filter = openmc.Filter('energy', group_edges)
|
||||
energy_filter.num_bins = self.num_groups
|
||||
filters = [[energy_filter], [energy_filter]]
|
||||
|
||||
# Initialize the Tallies
|
||||
|
|
@ -1054,7 +1048,6 @@ class NuFissionXS(MultiGroupXS):
|
|||
# Create the non-domain specific Filters for the Tallies
|
||||
group_edges = self.energy_groups.group_edges
|
||||
energy_filter = openmc.Filter('energy', group_edges)
|
||||
energy_filter.num_bins = self.num_groups
|
||||
filters = [[energy_filter], [energy_filter]]
|
||||
|
||||
# Initialize the Tallies
|
||||
|
|
@ -1086,7 +1079,6 @@ class ScatterXS(MultiGroupXS):
|
|||
# Create the non-domain specific Filters for the Tallies
|
||||
group_edges = self.energy_groups.group_edges
|
||||
energy_filter = openmc.Filter('energy', group_edges)
|
||||
energy_filter.num_bins = self.num_groups
|
||||
filters = [[energy_filter], [energy_filter]]
|
||||
|
||||
# Intialize the Tallies
|
||||
|
|
@ -1118,7 +1110,6 @@ class NuScatterXS(MultiGroupXS):
|
|||
# Create the non-domain specific Filters for the Tallies
|
||||
group_edges = self.energy_groups.group_edges
|
||||
energy_filter = openmc.Filter('energy', group_edges)
|
||||
energy_filter.num_bins = self.num_groups
|
||||
filters = [[energy_filter], [energy_filter]]
|
||||
|
||||
# Initialize the Tallies
|
||||
|
|
@ -1145,8 +1136,6 @@ class ScatterMatrixXS(MultiGroupXS):
|
|||
group_edges = self.energy_groups.group_edges
|
||||
energy = openmc.Filter('energy', group_edges)
|
||||
energyout = openmc.Filter('energyout', group_edges)
|
||||
energy.num_bins = self.num_groups
|
||||
energyout.num_bins = self.num_groups
|
||||
|
||||
# Create a list of scores for each Tally to be created
|
||||
if correct:
|
||||
|
|
@ -1172,7 +1161,6 @@ class ScatterMatrixXS(MultiGroupXS):
|
|||
scatter_p1 = scatter_p1.get_slice(scores=['scatter-P1'])
|
||||
energy_filter = openmc.Filter(type='energy')
|
||||
energy_filter.bins = self.energy_groups.group_edges
|
||||
energy_filter.num_bins = self.num_groups
|
||||
scatter_p1 = scatter_p1.diagonalize_filter(energy_filter)
|
||||
rxn_tally = self.tallies['scatter'] - scatter_p1
|
||||
else:
|
||||
|
|
@ -1330,8 +1318,6 @@ class NuScatterMatrixXS(ScatterMatrixXS):
|
|||
group_edges = self.energy_groups.group_edges
|
||||
energy = openmc.Filter('energy', group_edges)
|
||||
energyout = openmc.Filter('energyout', group_edges)
|
||||
energy.num_bins = self.num_groups
|
||||
energyout.num_bins = self.num_groups
|
||||
filters = [[energy], [energy, energyout], [energyout]]
|
||||
|
||||
# Intialize the Tallies
|
||||
|
|
@ -1347,7 +1333,6 @@ class NuScatterMatrixXS(ScatterMatrixXS):
|
|||
scatter_p1 = scatter_p1.get_slice(scores=['scatter-P1'])
|
||||
energy_filter = openmc.Filter(type='energy')
|
||||
energy_filter.bins = self.energy_groups.group_edges
|
||||
energy_filter.num_bins = self.num_groups
|
||||
scatter_p1 = scatter_p1.diagonalize_filter(energy_filter)
|
||||
rxn_tally = self.tallies['nu-scatter'] - scatter_p1
|
||||
else:
|
||||
|
|
@ -1375,8 +1360,6 @@ class Chi(MultiGroupXS):
|
|||
group_edges = self.energy_groups.group_edges
|
||||
energy_filter = openmc.Filter('energy', group_edges)
|
||||
energyout_filter = openmc.Filter('energyout', group_edges)
|
||||
energy_filter.num_bins = self.num_groups
|
||||
energyout_filter.num_bins = self.num_groups
|
||||
filters = [[energy_filter], [energyout_filter]]
|
||||
|
||||
# Intialize the Tallies
|
||||
|
|
@ -1423,7 +1406,6 @@ class Chi(MultiGroupXS):
|
|||
|
||||
energy_filter = openmc.Filter(type='energyout')
|
||||
energy_filter.bins = self.energy_groups.group_edges
|
||||
energy_filter.num_bins = self.num_groups
|
||||
norm = norm.tile_filter(energy_filter)
|
||||
|
||||
self._xs_tally /= norm
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue