mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-26 21:25:36 -04:00
Clean up tally namespace
This commit is contained in:
parent
52c9898128
commit
62f8dbfc02
4 changed files with 75 additions and 73 deletions
|
|
@ -1,3 +1,4 @@
|
|||
from openmc.arithmetic import *
|
||||
from openmc.cell import *
|
||||
from openmc.lattice import *
|
||||
from openmc.element import *
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ from collections import Iterable
|
|||
|
||||
import numpy as np
|
||||
|
||||
from openmc import Filter, Nuclide
|
||||
import openmc
|
||||
from openmc.filter import _FILTER_TYPES
|
||||
import openmc.checkvalue as cv
|
||||
|
||||
|
|
@ -171,7 +171,7 @@ class CrossNuclide(object):
|
|||
string = ''
|
||||
|
||||
# If the Summary was linked, the left nuclide is a Nuclide object
|
||||
if isinstance(self.left_nuclide, Nuclide):
|
||||
if isinstance(self.left_nuclide, openmc.Nuclide):
|
||||
string += '(' + self.left_nuclide.name
|
||||
# If the Summary was not linked, the left nuclide is the ZAID
|
||||
else:
|
||||
|
|
@ -180,7 +180,7 @@ class CrossNuclide(object):
|
|||
string += ' ' + self.binary_op + ' '
|
||||
|
||||
# If the Summary was linked, the right nuclide is a Nuclide object
|
||||
if isinstance(self.right_nuclide, Nuclide):
|
||||
if isinstance(self.right_nuclide, openmc.Nuclide):
|
||||
string += self.right_nuclide.name + ')'
|
||||
# If the Summary was not linked, the right nuclide is the ZAID
|
||||
else:
|
||||
|
|
@ -191,13 +191,13 @@ class CrossNuclide(object):
|
|||
@left_nuclide.setter
|
||||
def left_nuclide(self, left_nuclide):
|
||||
cv.check_type('left_nuclide', left_nuclide,
|
||||
(Nuclide, CrossNuclide, AggregateNuclide))
|
||||
(openmc.Nuclide, CrossNuclide, AggregateNuclide))
|
||||
self._left_nuclide = left_nuclide
|
||||
|
||||
@right_nuclide.setter
|
||||
def right_nuclide(self, right_nuclide):
|
||||
cv.check_type('right_nuclide', right_nuclide,
|
||||
(Nuclide, CrossNuclide, AggregateNuclide))
|
||||
(openmc.Nuclide, CrossNuclide, AggregateNuclide))
|
||||
self._right_nuclide = right_nuclide
|
||||
|
||||
@binary_op.setter
|
||||
|
|
@ -330,14 +330,14 @@ class CrossFilter(object):
|
|||
@left_filter.setter
|
||||
def left_filter(self, left_filter):
|
||||
cv.check_type('left_filter', left_filter,
|
||||
(Filter, CrossFilter, AggregateFilter))
|
||||
(openmc.Filter, CrossFilter, AggregateFilter))
|
||||
self._left_filter = left_filter
|
||||
self._bins['left'] = left_filter.bins
|
||||
|
||||
@right_filter.setter
|
||||
def right_filter(self, right_filter):
|
||||
cv.check_type('right_filter', right_filter,
|
||||
(Filter, CrossFilter, AggregateFilter))
|
||||
(openmc.Filter, CrossFilter, AggregateFilter))
|
||||
self._right_filter = right_filter
|
||||
self._bins['right'] = right_filter.bins
|
||||
|
||||
|
|
@ -550,8 +550,8 @@ class AggregateNuclide(object):
|
|||
|
||||
# Append each nuclide in the aggregate to the string
|
||||
string = '{0}('.format(self.aggregate_op)
|
||||
names = [nuclide.name if isinstance(nuclide, Nuclide) else str(nuclide)
|
||||
for nuclide in self.nuclides]
|
||||
names = [nuclide.name if isinstance(nuclide, openmc.Nuclide)
|
||||
else str(nuclide) for nuclide in self.nuclides]
|
||||
string += ', '.join(map(str, names)) + ')'
|
||||
return string
|
||||
|
||||
|
|
@ -567,15 +567,15 @@ class AggregateNuclide(object):
|
|||
def name(self):
|
||||
|
||||
# Append each nuclide in the aggregate to the string
|
||||
names = [nuclide.name if isinstance(nuclide, Nuclide) else str(nuclide)
|
||||
for nuclide in self.nuclides]
|
||||
names = [nuclide.name if isinstance(nuclide, openmc.Nuclide)
|
||||
else str(nuclide) for nuclide in self.nuclides]
|
||||
string = '(' + ', '.join(map(str, names)) + ')'
|
||||
return string
|
||||
|
||||
@nuclides.setter
|
||||
def nuclides(self, nuclides):
|
||||
cv.check_iterable_type('nuclides', nuclides,
|
||||
(basestring, Nuclide, CrossNuclide))
|
||||
(basestring, openmc.Nuclide, CrossNuclide))
|
||||
self._nuclides = nuclides
|
||||
|
||||
@aggregate_op.setter
|
||||
|
|
@ -700,7 +700,8 @@ class AggregateFilter(object):
|
|||
|
||||
@aggregate_filter.setter
|
||||
def aggregate_filter(self, aggregate_filter):
|
||||
cv.check_type('aggregate_filter', aggregate_filter, (Filter, CrossFilter))
|
||||
cv.check_type('aggregate_filter', aggregate_filter,
|
||||
(openmc.Filter, CrossFilter))
|
||||
self._aggregate_filter = aggregate_filter
|
||||
|
||||
@bins.setter
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ from xml.etree import ElementTree as ET
|
|||
|
||||
import numpy as np
|
||||
|
||||
from openmc import Mesh
|
||||
import openmc
|
||||
import openmc.checkvalue as cv
|
||||
|
||||
|
||||
|
|
@ -506,7 +506,7 @@ class MeshFilter(Filter):
|
|||
|
||||
@mesh.setter
|
||||
def mesh(self, mesh):
|
||||
cv.check_type('filter mesh', mesh, Mesh)
|
||||
cv.check_type('filter mesh', mesh, openmc.Mesh)
|
||||
self._mesh = mesh
|
||||
self.bins = mesh.id
|
||||
|
||||
|
|
|
|||
|
|
@ -13,10 +13,7 @@ from xml.etree import ElementTree as ET
|
|||
|
||||
import numpy as np
|
||||
|
||||
from openmc import Trigger, Nuclide
|
||||
from openmc.arithmetic import CrossScore, CrossNuclide, CrossFilter, \
|
||||
AggregateScore, AggregateNuclide, AggregateFilter
|
||||
import openmc.filter
|
||||
import openmc
|
||||
import openmc.checkvalue as cv
|
||||
from openmc.clean_xml import clean_xml_indentation
|
||||
|
||||
|
|
@ -36,9 +33,10 @@ _PRODUCT_TYPES = ['tensor', 'entrywise']
|
|||
|
||||
# The following indicate acceptable types when setting Tally.scores,
|
||||
# Tally.nuclides, and Tally.filters
|
||||
_SCORE_CLASSES = (basestring, CrossScore, AggregateScore)
|
||||
_NUCLIDE_CLASSES = (basestring, Nuclide, CrossNuclide, AggregateNuclide)
|
||||
_FILTER_CLASSES = (openmc.filter.Filter, CrossFilter, AggregateFilter)
|
||||
_SCORE_CLASSES = (basestring, openmc.CrossScore, openmc.AggregateScore)
|
||||
_NUCLIDE_CLASSES = (basestring, openmc.Nuclide, openmc.CrossNuclide,
|
||||
openmc.AggregateNuclide)
|
||||
_FILTER_CLASSES = (openmc.Filter, openmc.CrossFilter, openmc.AggregateFilter)
|
||||
|
||||
# Valid types of estimators
|
||||
ESTIMATOR_TYPES = ['tracklength', 'collision', 'analog']
|
||||
|
|
@ -118,7 +116,7 @@ class Tally(object):
|
|||
self._nuclides = cv.CheckedList(_NUCLIDE_CLASSES, 'tally nuclides')
|
||||
self._scores = cv.CheckedList(_SCORE_CLASSES, 'tally scores')
|
||||
self._estimator = None
|
||||
self._triggers = cv.CheckedList(Trigger, 'tally triggers')
|
||||
self._triggers = cv.CheckedList(openmc.Trigger, 'tally triggers')
|
||||
|
||||
self._num_realizations = 0
|
||||
self._with_summary = False
|
||||
|
|
@ -187,7 +185,7 @@ class Tally(object):
|
|||
string += '{0: <16}{1}'.format('\tNuclides', '=\t')
|
||||
|
||||
for nuclide in self.nuclides:
|
||||
if isinstance(nuclide, Nuclide):
|
||||
if isinstance(nuclide, openmc.Nuclide):
|
||||
string += '{0} '.format(nuclide.name)
|
||||
else:
|
||||
string += '{0} '.format(nuclide)
|
||||
|
|
@ -396,7 +394,8 @@ class Tally(object):
|
|||
@triggers.setter
|
||||
def triggers(self, triggers):
|
||||
cv.check_type('tally triggers', triggers, MutableSequence)
|
||||
self._triggers = cv.CheckedList(Trigger, 'tally triggers', triggers)
|
||||
self._triggers = cv.CheckedList(openmc.Trigger, 'tally triggers',
|
||||
triggers)
|
||||
|
||||
def add_trigger(self, trigger):
|
||||
"""Add a tally trigger to the tally
|
||||
|
|
@ -700,8 +699,8 @@ class Tally(object):
|
|||
return False
|
||||
|
||||
# Return False if only one tally has a delayed group filter
|
||||
tally1_dg = self.contains_filter(openmc.filter.DelayedGroupFilter)
|
||||
tally2_dg = other.contains_filter(openmc.filter.DelayedGroupFilter)
|
||||
tally1_dg = self.contains_filter(openmc.DelayedGroupFilter)
|
||||
tally2_dg = other.contains_filter(openmc.DelayedGroupFilter)
|
||||
if sum([tally1_dg, tally2_dg]) == 1:
|
||||
return False
|
||||
|
||||
|
|
@ -1032,7 +1031,7 @@ class Tally(object):
|
|||
if len(self.nuclides) > 0:
|
||||
nuclides = ''
|
||||
for nuclide in self.nuclides:
|
||||
if isinstance(nuclide, Nuclide):
|
||||
if isinstance(nuclide, openmc.Nuclide):
|
||||
nuclides += '{0} '.format(nuclide.name)
|
||||
else:
|
||||
nuclides += '{0} '.format(nuclide)
|
||||
|
|
@ -1070,7 +1069,7 @@ class Tally(object):
|
|||
|
||||
Parameters
|
||||
----------
|
||||
filter_type : openmc.filter.FilterMeta
|
||||
filter_type : openmc.FilterMeta
|
||||
Type of the filter, e.g. MeshFilter
|
||||
|
||||
Returns
|
||||
|
|
@ -1096,7 +1095,7 @@ class Tally(object):
|
|||
|
||||
Parameters
|
||||
----------
|
||||
filter_type : openmc.filter.FilterMeta
|
||||
filter_type : openmc.FilterMeta
|
||||
Type of the filter, e.g. MeshFilter
|
||||
|
||||
Returns
|
||||
|
|
@ -1122,7 +1121,7 @@ class Tally(object):
|
|||
|
||||
# Also check to see if the desired filter is wrapped up in an
|
||||
# aggregate
|
||||
elif isinstance(test_filter, AggregateFilter):
|
||||
elif isinstance(test_filter, openmc.AggregateFilter):
|
||||
if isinstance(test_filter.aggregate_filter, filter_type):
|
||||
filter_found = test_filter
|
||||
break
|
||||
|
|
@ -1140,7 +1139,7 @@ class Tally(object):
|
|||
|
||||
Parameters
|
||||
----------
|
||||
filter_type : openmc.filter.FilterMeta
|
||||
filter_type : openmc.FilterMeta
|
||||
Type of the filter, e.g. MeshFilter
|
||||
filter_bin : int or tuple
|
||||
The bin is an integer ID for 'material', 'surface', 'cell',
|
||||
|
|
@ -1191,7 +1190,7 @@ class Tally(object):
|
|||
for i, test_nuclide in enumerate(self.nuclides):
|
||||
|
||||
# If the Summary was linked, then values are Nuclide objects
|
||||
if isinstance(test_nuclide, Nuclide):
|
||||
if isinstance(test_nuclide, openmc.Nuclide):
|
||||
if test_nuclide.name == nuclide:
|
||||
nuclide_index = i
|
||||
break
|
||||
|
|
@ -1250,7 +1249,7 @@ class Tally(object):
|
|||
|
||||
Parameters
|
||||
----------
|
||||
filters : Iterable of openmc.filter.FilterMeta
|
||||
filters : Iterable of openmc.FilterMeta
|
||||
An iterable of filter types
|
||||
(e.g., [MeshFilter, EnergyFilter]; default is [])
|
||||
filter_bins : Iterable of tuple
|
||||
|
|
@ -1273,7 +1272,7 @@ class Tally(object):
|
|||
|
||||
"""
|
||||
|
||||
cv.check_type('filters', filters, Iterable, openmc.filter.FilterMeta)
|
||||
cv.check_type('filters', filters, Iterable, openmc.FilterMeta)
|
||||
cv.check_type('filter_bins', filter_bins, Iterable, tuple)
|
||||
|
||||
# Determine the score indices from any of the requested scores
|
||||
|
|
@ -1295,21 +1294,20 @@ class Tally(object):
|
|||
# If not a user-requested Filter, get all bins
|
||||
if not user_filter:
|
||||
# Create list of 2- or 3-tuples tuples for mesh cell bins
|
||||
if isinstance(self_filter, openmc.filter.MeshFilter):
|
||||
if isinstance(self_filter, openmc.MeshFilter):
|
||||
dimension = self_filter.mesh.dimension
|
||||
xyz = [range(1, x+1) for x in dimension]
|
||||
bins = list(itertools.product(*xyz))
|
||||
|
||||
# Create list of 2-tuples for energy boundary bins
|
||||
elif isinstance(self_filter, (openmc.filter.EnergyFilter,
|
||||
openmc.filter.EnergyoutFilter)):
|
||||
elif isinstance(self_filter, (openmc.EnergyFilter,
|
||||
openmc.EnergyoutFilter)):
|
||||
bins = []
|
||||
for k in range(self_filter.num_bins):
|
||||
bins.append((self_filter.bins[k], self_filter.bins[k+1]))
|
||||
|
||||
# Create list of cell instance IDs for distribcell Filters
|
||||
elif isinstance(self_filter,
|
||||
openmc.filter.DistribcellFilter):
|
||||
elif isinstance(self_filter, openmc.DistribcellFilter):
|
||||
bins = np.arange(self_filter.num_bins)
|
||||
|
||||
# Create list of IDs for bins for all other filter types
|
||||
|
|
@ -1392,7 +1390,7 @@ class Tally(object):
|
|||
"""
|
||||
|
||||
for score in scores:
|
||||
if not isinstance(score, (basestring, CrossScore)):
|
||||
if not isinstance(score, (basestring, openmc.CrossScore)):
|
||||
msg = 'Unable to get score indices for score "{0}" in Tally ' \
|
||||
'ID="{1}" since it is not a string or CrossScore'\
|
||||
.format(score, self.id)
|
||||
|
|
@ -1424,7 +1422,7 @@ class Tally(object):
|
|||
scores : list of str
|
||||
A list of one or more score strings
|
||||
(e.g., ['absorption', 'nu-fission']; default is [])
|
||||
filters : Iterable of openmc.filter.FilterMeta
|
||||
filters : Iterable of openmc.FilterMeta
|
||||
An iterable of filter types
|
||||
(e.g., [MeshFilter, EnergyFilter]; default is [])
|
||||
filter_bins : list of Iterables
|
||||
|
|
@ -1568,9 +1566,9 @@ class Tally(object):
|
|||
column_name = 'nuclide'
|
||||
|
||||
for nuclide in self.nuclides:
|
||||
if isinstance(nuclide, Nuclide):
|
||||
if isinstance(nuclide, openmc.Nuclide):
|
||||
nuclides.append(nuclide.name)
|
||||
elif isinstance(nuclide, AggregateNuclide):
|
||||
elif isinstance(nuclide, openmc.AggregateNuclide):
|
||||
nuclides.append(nuclide.name)
|
||||
column_name = '{0}(nuclide)'.format(nuclide.aggregate_op)
|
||||
else:
|
||||
|
|
@ -1587,9 +1585,9 @@ class Tally(object):
|
|||
column_name = 'score'
|
||||
|
||||
for score in self.scores:
|
||||
if isinstance(score, (basestring, CrossScore)):
|
||||
if isinstance(score, (basestring, openmc.CrossScore)):
|
||||
scores.append(str(score))
|
||||
elif isinstance(score, AggregateScore):
|
||||
elif isinstance(score, openmc.AggregateScore):
|
||||
scores.append(score.name)
|
||||
column_name = '{0}(score)'.format(score.aggregate_op)
|
||||
|
||||
|
|
@ -1979,7 +1977,8 @@ class Tally(object):
|
|||
else:
|
||||
all_filters = [self_copy.filters, other_copy.filters]
|
||||
for self_filter, other_filter in itertools.product(*all_filters):
|
||||
new_filter = CrossFilter(self_filter, other_filter, binary_op)
|
||||
new_filter = openmc.CrossFilter(self_filter, other_filter,
|
||||
binary_op)
|
||||
new_tally.filters.append(new_filter)
|
||||
|
||||
# Add nuclides to the new tally
|
||||
|
|
@ -1990,7 +1989,7 @@ class Tally(object):
|
|||
all_nuclides = [self_copy.nuclides, other_copy.nuclides]
|
||||
for self_nuclide, other_nuclide in itertools.product(*all_nuclides):
|
||||
new_nuclide = \
|
||||
CrossNuclide(self_nuclide, other_nuclide, binary_op)
|
||||
openmc.CrossNuclide(self_nuclide, other_nuclide, binary_op)
|
||||
new_tally.nuclides.append(new_nuclide)
|
||||
|
||||
# Add scores to the new tally
|
||||
|
|
@ -2000,7 +1999,8 @@ class Tally(object):
|
|||
else:
|
||||
all_scores = [self_copy.scores, other_copy.scores]
|
||||
for self_score, other_score in itertools.product(*all_scores):
|
||||
new_score = CrossScore(self_score, other_score, binary_op)
|
||||
new_score = openmc.CrossScore(self_score, other_score,
|
||||
binary_op)
|
||||
new_tally.scores.append(new_score)
|
||||
|
||||
# Update the new tally's filter strides
|
||||
|
|
@ -2229,12 +2229,12 @@ class Tally(object):
|
|||
|
||||
# Construct lists of tuples for the bins in each of the two filters
|
||||
filters = [type(filter1), type(filter2)]
|
||||
if isinstance(filter1, openmc.filter.DistribcellFilter):
|
||||
if isinstance(filter1, openmc.DistribcellFilter):
|
||||
filter1_bins = np.arange(filter1.num_bins)
|
||||
else:
|
||||
filter1_bins = [filter1.get_bin(i) for i in range(filter1.num_bins)]
|
||||
|
||||
if isinstance(filter2, openmc.filter.DistribcellFilter):
|
||||
if isinstance(filter2, openmc.DistribcellFilter):
|
||||
filter2_bins = np.arange(filter2.num_bins)
|
||||
else:
|
||||
filter2_bins = [filter2.get_bin(i) for i in range(filter2.num_bins)]
|
||||
|
|
@ -2354,11 +2354,11 @@ class Tally(object):
|
|||
raise ValueError(msg)
|
||||
|
||||
# Check that the scores are valid
|
||||
if not isinstance(score1, (basestring, CrossScore)):
|
||||
if not isinstance(score1, (basestring, openmc.CrossScore)):
|
||||
msg = 'Unable to swap score1 "{0}" in Tally ID="{1}" since it is ' \
|
||||
'not a string or CrossScore'.format(score1, self.id)
|
||||
raise ValueError(msg)
|
||||
elif not isinstance(score2, (basestring, CrossScore)):
|
||||
elif not isinstance(score2, (basestring, openmc.CrossScore)):
|
||||
msg = 'Unable to swap score2 "{0}" in Tally ID="{1}" since it is ' \
|
||||
'not a string or CrossScore'.format(score2, self.id)
|
||||
raise ValueError(msg)
|
||||
|
|
@ -2876,7 +2876,7 @@ class Tally(object):
|
|||
scores : list of str
|
||||
A list of one or more score strings
|
||||
(e.g., ['absorption', 'nu-fission']; default is [])
|
||||
filters : Iterable of openmc.filter.FilterMeta
|
||||
filters : Iterable of openmc.FilterMeta
|
||||
An iterable of filter types
|
||||
(e.g., [MeshFilter, EnergyFilter]; default is [])
|
||||
filter_bins : list of Iterables
|
||||
|
|
@ -2981,13 +2981,13 @@ class Tally(object):
|
|||
|
||||
for filter_bin in filter_bins[i]:
|
||||
bin_index = find_filter.get_bin_index(filter_bin)
|
||||
if filter_type in [openmc.filter.EnergyFilter,
|
||||
openmc.filter.EnergyoutFilter]:
|
||||
if filter_type in [openmc.EnergyFilter,
|
||||
openmc.EnergyoutFilter]:
|
||||
bin_indices.extend([bin_index])
|
||||
bin_indices.extend([bin_index, bin_index+1])
|
||||
num_bins += 1
|
||||
elif filter_type in [openmc.filter.DistribcellFilter,
|
||||
openmc.filter.MeshFilter]:
|
||||
elif filter_type in [openmc.DistribcellFilter,
|
||||
openmc.MeshFilter]:
|
||||
bin_indices = [0]
|
||||
num_bins = find_filter.num_bins
|
||||
else:
|
||||
|
|
@ -3019,7 +3019,7 @@ class Tally(object):
|
|||
scores : list of str
|
||||
A list of one or more score strings to sum across
|
||||
(e.g., ['absorption', 'nu-fission']; default is [])
|
||||
filter_type : openmc.filter.FilterMeta
|
||||
filter_type : openmc.FilterMeta
|
||||
Type of the filter, e.g. MeshFilter
|
||||
filter_bins : Iterable of int or tuple
|
||||
A list of the filter bins corresponding to the filter_type parameter
|
||||
|
|
@ -3058,14 +3058,14 @@ class Tally(object):
|
|||
std_dev = self.get_reshaped_data(value='std_dev')
|
||||
|
||||
# Sum across any filter bins specified by the user
|
||||
if isinstance(filter_type, openmc.filter.FilterMeta):
|
||||
if isinstance(filter_type, openmc.FilterMeta):
|
||||
find_filter = self.find_filter(filter_type)
|
||||
|
||||
# If user did not specify filter bins, sum across all bins
|
||||
if len(filter_bins) == 0:
|
||||
bin_indices = np.arange(find_filter.num_bins)
|
||||
|
||||
if isinstance(find_filter, openmc.filter.DistribcellFilter):
|
||||
if isinstance(find_filter, openmc.DistribcellFilter):
|
||||
filter_bins = np.arange(find_filter.num_bins)
|
||||
else:
|
||||
num_bins = find_filter.num_bins
|
||||
|
|
@ -3088,8 +3088,8 @@ class Tally(object):
|
|||
|
||||
# Add AggregateFilter to the tally sum
|
||||
if not remove_filter:
|
||||
filter_sum = \
|
||||
AggregateFilter(self_filter, [tuple(filter_bins)], 'sum')
|
||||
filter_sum = openmc.AggregateFilter(self_filter,
|
||||
[tuple(filter_bins)], 'sum')
|
||||
tally_sum.filters.append(filter_sum)
|
||||
|
||||
# Add a copy of each filter not summed across to the tally sum
|
||||
|
|
@ -3111,7 +3111,7 @@ class Tally(object):
|
|||
std_dev = np.sqrt(std_dev)
|
||||
|
||||
# Add AggregateNuclide to the tally sum
|
||||
nuclide_sum = AggregateNuclide(nuclides, 'sum')
|
||||
nuclide_sum = openmc.AggregateNuclide(nuclides, 'sum')
|
||||
tally_sum.nuclides.append(nuclide_sum)
|
||||
|
||||
# Add a copy of this tally's nuclides to the tally sum
|
||||
|
|
@ -3129,7 +3129,7 @@ class Tally(object):
|
|||
std_dev = np.sqrt(std_dev)
|
||||
|
||||
# Add AggregateScore to the tally sum
|
||||
score_sum = AggregateScore(scores, 'sum')
|
||||
score_sum = openmc.AggregateScore(scores, 'sum')
|
||||
tally_sum.scores.append(score_sum)
|
||||
|
||||
# Add a copy of this tally's scores to the tally sum
|
||||
|
|
@ -3166,7 +3166,7 @@ class Tally(object):
|
|||
scores : list of str
|
||||
A list of one or more score strings to average across
|
||||
(e.g., ['absorption', 'nu-fission']; default is [])
|
||||
filter_type : openmc.filter.FilterMeta
|
||||
filter_type : openmc.FilterMeta
|
||||
Type of the filter, e.g. MeshFilter
|
||||
filter_bins : Iterable of int or tuple
|
||||
A list of the filter bins corresponding to the filter_type parameter
|
||||
|
|
@ -3205,14 +3205,14 @@ class Tally(object):
|
|||
std_dev = self.get_reshaped_data(value='std_dev')
|
||||
|
||||
# Average across any filter bins specified by the user
|
||||
if isinstance(filter_type, openmc.filter.FilterMeta):
|
||||
if isinstance(filter_type, openmc.FilterMeta):
|
||||
find_filter = self.find_filter(filter_type)
|
||||
|
||||
# If user did not specify filter bins, average across all bins
|
||||
if len(filter_bins) == 0:
|
||||
bin_indices = np.arange(find_filter.num_bins)
|
||||
|
||||
if isinstance(find_filter, openmc.filter.DistribcellFilter):
|
||||
if isinstance(find_filter, openmc.DistribcellFilter):
|
||||
filter_bins = np.arange(find_filter.num_bins)
|
||||
else:
|
||||
num_bins = find_filter.num_bins
|
||||
|
|
@ -3236,8 +3236,8 @@ class Tally(object):
|
|||
|
||||
# Add AggregateFilter to the tally avg
|
||||
if not remove_filter:
|
||||
filter_sum = \
|
||||
AggregateFilter(self_filter, [tuple(filter_bins)], 'avg')
|
||||
filter_sum = openmc.AggregateFilter(self_filter,
|
||||
[tuple(filter_bins)], 'avg')
|
||||
tally_avg.filters.append(filter_sum)
|
||||
|
||||
# Add a copy of each filter not averaged across to the tally avg
|
||||
|
|
@ -3260,7 +3260,7 @@ class Tally(object):
|
|||
std_dev = np.sqrt(std_dev)
|
||||
|
||||
# Add AggregateNuclide to the tally avg
|
||||
nuclide_avg = AggregateNuclide(nuclides, 'avg')
|
||||
nuclide_avg = openmc.AggregateNuclide(nuclides, 'avg')
|
||||
tally_avg.nuclides.append(nuclide_avg)
|
||||
|
||||
# Add a copy of this tally's nuclides to the tally avg
|
||||
|
|
@ -3279,7 +3279,7 @@ class Tally(object):
|
|||
std_dev = np.sqrt(std_dev)
|
||||
|
||||
# Add AggregateScore to the tally avg
|
||||
score_sum = AggregateScore(scores, 'avg')
|
||||
score_sum = openmc.AggregateScore(scores, 'avg')
|
||||
tally_avg.scores.append(score_sum)
|
||||
|
||||
# Add a copy of this tally's scores to the tally avg
|
||||
|
|
@ -3554,7 +3554,7 @@ class Tallies(cv.CheckedList):
|
|||
already_written = set()
|
||||
for tally in self:
|
||||
for f in tally.filters:
|
||||
if isinstance(f, openmc.filter.MeshFilter):
|
||||
if isinstance(f, openmc.MeshFilter):
|
||||
if f.mesh not in already_written:
|
||||
if len(f.mesh.name) > 0:
|
||||
self._tallies_file.append(ET.Comment(f.mesh.name))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue