mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-28 14:15:42 -04:00
Merge pull request #807 from wbinventor/new-scatt-mat
Consistent Multi-Group Scattering Matrices
This commit is contained in:
commit
fb59d51d17
18 changed files with 4147 additions and 2179 deletions
|
|
@ -296,6 +296,7 @@ Multi-group Cross Sections
|
|||
openmc.mgxs.NuFissionMatrixXS
|
||||
openmc.mgxs.ScatterXS
|
||||
openmc.mgxs.ScatterMatrixXS
|
||||
openmc.mgxs.ScatterProbabilityMatrix
|
||||
openmc.mgxs.TotalXS
|
||||
openmc.mgxs.TransportXS
|
||||
|
||||
|
|
|
|||
|
|
@ -1089,8 +1089,8 @@ class Library(object):
|
|||
using_multiplicity = True
|
||||
|
||||
# multiplicity will fall back to using scatter and nu-scatter
|
||||
elif ((('scatter matrix' in self.mgxs_types) and
|
||||
('nu-scatter matrix' in self.mgxs_types))):
|
||||
elif 'scatter matrix' in self.mgxs_types and \
|
||||
'nu-scatter matrix' in self.mgxs_types:
|
||||
scatt_mgxs = self.get_mgxs(domain, 'scatter matrix')
|
||||
nuscatt_mgxs = self.get_mgxs(domain, 'nu-scatter matrix')
|
||||
xsdata.set_multiplicity_matrix_mgxs(nuscatt_mgxs, scatt_mgxs,
|
||||
|
|
@ -1099,17 +1099,38 @@ class Library(object):
|
|||
subdomain=subdomain)
|
||||
using_multiplicity = True
|
||||
|
||||
# multiplicity will fall back to using scatter and nu-scatter
|
||||
elif 'consistent scatter matrix' in self.mgxs_types and \
|
||||
'consistent nu-scatter matrix' in self.mgxs_types:
|
||||
scatt_mgxs = self.get_mgxs(domain, 'consistent scatter matrix')
|
||||
nuscatt_mgxs = \
|
||||
self.get_mgxs(domain, 'consistent nu-scatter matrix')
|
||||
xsdata.set_multiplicity_matrix_mgxs(nuscatt_mgxs, scatt_mgxs,
|
||||
xs_type=xs_type,
|
||||
nuclide=[nuclide],
|
||||
subdomain=subdomain)
|
||||
using_multiplicity = True
|
||||
|
||||
else:
|
||||
using_multiplicity = False
|
||||
|
||||
if using_multiplicity:
|
||||
nuscatt_mgxs = self.get_mgxs(domain, 'nu-scatter matrix')
|
||||
if 'nu-scatter matrix' in self.mgxs_types:
|
||||
nuscatt_mgxs = self.get_mgxs(domain, 'nu-scatter matrix')
|
||||
else:
|
||||
nuscatt_mgxs = \
|
||||
self.get_mgxs(domain, 'consistent nu-scatter matrix')
|
||||
xsdata.set_scatter_matrix_mgxs(nuscatt_mgxs, xs_type=xs_type,
|
||||
nuclide=[nuclide],
|
||||
subdomain=subdomain)
|
||||
else:
|
||||
if 'nu-scatter matrix' in self.mgxs_types:
|
||||
nuscatt_mgxs = self.get_mgxs(domain, 'nu-scatter matrix')
|
||||
if 'nu-scatter matrix' in self.mgxs_types or \
|
||||
'consistent nu-scatter matrix' in self.mgxs_types:
|
||||
if 'nu-scatter matrix' in self.mgxs_types:
|
||||
nuscatt_mgxs = self.get_mgxs(domain, 'nu-scatter matrix')
|
||||
else:
|
||||
nuscatt_mgxs = \
|
||||
self.get_mgxs(domain, 'consistent nu-scatter matrix')
|
||||
xsdata.set_scatter_matrix_mgxs(nuscatt_mgxs, xs_type=xs_type,
|
||||
nuclide=[nuclide],
|
||||
subdomain=subdomain)
|
||||
|
|
@ -1409,13 +1430,15 @@ class Library(object):
|
|||
error_flag = True
|
||||
warn('An "absorption" MGXS type is required but not provided.')
|
||||
# Ensure nu-scattering matrix is required
|
||||
if 'nu-scatter matrix' not in self.mgxs_types:
|
||||
if 'nu-scatter matrix' not in self.mgxs_types and \
|
||||
'consistent nu-scatter matrix' not in self.mgxs_types:
|
||||
error_flag = True
|
||||
warn('A "nu-scatter matrix" MGXS type is required but not provided.')
|
||||
else:
|
||||
# Ok, now see the status of scatter and/or multiplicity
|
||||
if ((('scatter matrix' not in self.mgxs_types) and
|
||||
('multiplicity matrix' not in self.mgxs_types))):
|
||||
if 'scatter matrix' not in self.mgxs_types or \
|
||||
'consistent scatter matrix' not in self.mgxs_types and \
|
||||
'multiplicity matrix' not in self.mgxs_types:
|
||||
# We dont have data needed for multiplicity matrix, therefore
|
||||
# we need total, and not transport.
|
||||
if 'total' not in self.mgxs_types:
|
||||
|
|
@ -1424,14 +1447,12 @@ class Library(object):
|
|||
'scattering matrix is not provided.')
|
||||
# Total or transport can be present, but if using
|
||||
# self.correction=="P0", then we should use transport.
|
||||
if (((self.correction == "P0") and
|
||||
('nu-transport' not in self.mgxs_types))):
|
||||
if self.correction == "P0" and 'nu-transport' not in self.mgxs_types:
|
||||
error_flag = True
|
||||
warn('A "nu-transport" MGXS type is required since a "P0" '
|
||||
'correction is applied, but a "nu-transport" MGXS is '
|
||||
'not provided.')
|
||||
elif (((self.correction is None) and
|
||||
('total' not in self.mgxs_types))):
|
||||
elif self.correction is None and 'total' not in self.mgxs_types:
|
||||
error_flag = True
|
||||
warn('A "total" MGXS type is required, but not provided.')
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,9 @@ MGXS_TYPES = ['total',
|
|||
'nu-scatter matrix',
|
||||
'multiplicity matrix',
|
||||
'nu-fission matrix',
|
||||
'scatter probability matrix',
|
||||
'consistent scatter matrix',
|
||||
'consistent nu-scatter matrix',
|
||||
'chi',
|
||||
'chi-prompt',
|
||||
'inverse-velocity',
|
||||
|
|
@ -121,7 +124,7 @@ class MGXS(object):
|
|||
post-processing to compute spatially-homogenized and energy-integrated
|
||||
multi-group cross sections for multi-group neutronics calculations.
|
||||
|
||||
NOTE: Users should instantiate the subclasses of this abstract class.
|
||||
.. note:: Users should instantiate the subclasses of this abstract class.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
|
|
@ -478,12 +481,18 @@ class MGXS(object):
|
|||
else:
|
||||
domain_filter = filter_type(self.domain.id)
|
||||
|
||||
if isinstance(self.estimator, str):
|
||||
estimators = [self.estimator] * len(self.scores)
|
||||
else:
|
||||
estimators = self.estimator
|
||||
|
||||
# Create each Tally needed to compute the multi group cross section
|
||||
tally_metadata = zip(self.scores, self.tally_keys, self.filters)
|
||||
for score, key, filters in tally_metadata:
|
||||
tally_metadata = \
|
||||
zip(self.scores, self.tally_keys, self.filters, estimators)
|
||||
for score, key, filters, estimator in tally_metadata:
|
||||
self._tallies[key] = openmc.Tally(name=self.name)
|
||||
self._tallies[key].scores = [score]
|
||||
self._tallies[key].estimator = self.estimator
|
||||
self._tallies[key].estimator = estimator
|
||||
self._tallies[key].filters = [domain_filter]
|
||||
|
||||
# If a tally trigger was specified, add it to each tally
|
||||
|
|
@ -725,6 +734,14 @@ class MGXS(object):
|
|||
mgxs = ScatterMatrixXS(domain, domain_type, energy_groups, nu=True)
|
||||
elif mgxs_type == 'multiplicity matrix':
|
||||
mgxs = MultiplicityMatrixXS(domain, domain_type, energy_groups)
|
||||
elif mgxs_type == 'scatter probability matrix':
|
||||
mgxs = ScatterProbabilityMatrix(domain, domain_type, energy_groups)
|
||||
elif mgxs_type == 'consistent scatter matrix':
|
||||
mgxs = ScatterMatrixXS(domain, domain_type, energy_groups)
|
||||
mgxs.formulation = 'consistent'
|
||||
elif mgxs_type == 'consistent nu-scatter matrix':
|
||||
mgxs = ScatterMatrixXS(domain, domain_type, energy_groups, nu=True)
|
||||
mgxs.formulation = 'consistent'
|
||||
elif mgxs_type == 'nu-fission matrix':
|
||||
mgxs = NuFissionMatrixXS(domain, domain_type, energy_groups)
|
||||
elif mgxs_type == 'chi':
|
||||
|
|
@ -880,7 +897,7 @@ class MGXS(object):
|
|||
This method is needed to compute cross section data from tallies
|
||||
in an OpenMC StatePoint object.
|
||||
|
||||
NOTE: The statepoint must first be linked with an OpenMC Summary object.
|
||||
.. note:: The statepoint must be linked with an OpenMC Summary object.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
|
|
@ -1628,7 +1645,7 @@ class MGXS(object):
|
|||
nuclides and cross section type. Two datasets for the mean and standard
|
||||
deviation are stored for each subdomain entry in the HDF5 file.
|
||||
|
||||
NOTE: This requires the h5py Python package.
|
||||
.. note:: This requires the h5py Python package.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
|
|
@ -1971,7 +1988,7 @@ class MatrixMGXS(MGXS):
|
|||
post-processing to compute spatially-homogenized and energy-integrated
|
||||
multi-group cross sections for multi-group neutronics calculations.
|
||||
|
||||
NOTE: Users should instantiate the subclasses of this abstract class.
|
||||
.. note:: Users should instantiate the subclasses of this abstract class.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
|
|
@ -2695,11 +2712,10 @@ class TransportXS(MGXS):
|
|||
super(TransportXS, self).__init__(domain, domain_type,
|
||||
groups, by_nuclide, name, num_polar,
|
||||
num_azimuthal)
|
||||
if not nu:
|
||||
self._rxn_type = 'transport'
|
||||
else:
|
||||
self._rxn_type = 'nu-transport'
|
||||
self._estimator = 'analog'
|
||||
|
||||
# Use tracklength estimators for the total MGXS term, and
|
||||
# analog estimators for the transport correction term
|
||||
self._estimator = ['tracklength', 'tracklength', 'analog', 'analog']
|
||||
self._valid_estimators = ['analog']
|
||||
self.nu = nu
|
||||
|
||||
|
|
@ -2711,23 +2727,21 @@ class TransportXS(MGXS):
|
|||
@property
|
||||
def scores(self):
|
||||
if not self.nu:
|
||||
return ['flux', 'total', 'scatter-1']
|
||||
return ['flux', 'total', 'flux', 'scatter-1']
|
||||
else:
|
||||
return ['flux', 'total', 'nu-scatter-1']
|
||||
return ['flux', 'total', 'flux', 'nu-scatter-1']
|
||||
|
||||
@property
|
||||
def tally_keys(self):
|
||||
if not self.nu:
|
||||
return super(TransportXS, self).tally_keys
|
||||
else:
|
||||
return ['flux', 'total', 'scatter-1']
|
||||
return ['flux (tracklength)', 'total', 'flux (analog)', 'scatter-1']
|
||||
|
||||
@property
|
||||
def filters(self):
|
||||
group_edges = self.energy_groups.group_edges
|
||||
energy_filter = openmc.EnergyFilter(group_edges)
|
||||
energyout_filter = openmc.EnergyoutFilter(group_edges)
|
||||
filters = [[energy_filter], [energy_filter], [energyout_filter]]
|
||||
filters = [[energy_filter], [energy_filter],
|
||||
[energy_filter], [energyout_filter]]
|
||||
|
||||
return self._add_angle_filters(filters)
|
||||
|
||||
|
|
@ -2746,6 +2760,32 @@ class TransportXS(MGXS):
|
|||
|
||||
return self._rxn_rate_tally
|
||||
|
||||
@property
|
||||
def xs_tally(self):
|
||||
if self._xs_tally is None:
|
||||
if self.tallies is None:
|
||||
msg = 'Unable to get xs_tally since tallies have ' \
|
||||
'not been loaded from a statepoint'
|
||||
raise ValueError(msg)
|
||||
|
||||
# Switch EnergyoutFilter to EnergyFilter.
|
||||
old_filt = self.tallies['scatter-1'].filters[-1]
|
||||
new_filt = openmc.EnergyFilter(old_filt.bins)
|
||||
new_filt.stride = old_filt.stride
|
||||
self.tallies['scatter-1'].filters[-1] = new_filt
|
||||
|
||||
# Compute total cross section
|
||||
total_xs = self.tallies['total'] / self.tallies['flux (tracklength)']
|
||||
|
||||
# Compute transport correction term
|
||||
trans_corr = self.tallies['scatter-1'] / self.tallies['flux (analog)']
|
||||
|
||||
# Compute the transport-corrected total cross section
|
||||
self._xs_tally = total_xs - trans_corr
|
||||
self._compute_xs()
|
||||
|
||||
return self._xs_tally
|
||||
|
||||
@property
|
||||
def nu(self):
|
||||
return self._nu
|
||||
|
|
@ -2754,6 +2794,10 @@ class TransportXS(MGXS):
|
|||
def nu(self, nu):
|
||||
cv.check_type('nu', nu, bool)
|
||||
self._nu = nu
|
||||
if not nu:
|
||||
self._rxn_type = 'transport'
|
||||
else:
|
||||
self._rxn_type = 'nu-transport'
|
||||
|
||||
|
||||
class AbsorptionXS(MGXS):
|
||||
|
|
@ -3160,15 +3204,9 @@ class FissionXS(MGXS):
|
|||
super(FissionXS, self).__init__(domain, domain_type,
|
||||
groups, by_nuclide, name, num_polar,
|
||||
num_azimuthal)
|
||||
if not prompt:
|
||||
if not nu:
|
||||
self._rxn_type = 'fission'
|
||||
else:
|
||||
self._rxn_type = 'nu-fission'
|
||||
self.nu = nu
|
||||
else:
|
||||
self._rxn_type = 'prompt-nu-fission'
|
||||
self.nu = True
|
||||
self._nu = False
|
||||
self._prompt = False
|
||||
self.nu = nu
|
||||
self.prompt = prompt
|
||||
|
||||
def __deepcopy__(self, memo):
|
||||
|
|
@ -3189,11 +3227,25 @@ class FissionXS(MGXS):
|
|||
def nu(self, nu):
|
||||
cv.check_type('nu', nu, bool)
|
||||
self._nu = nu
|
||||
if not self.prompt:
|
||||
if not self.nu:
|
||||
self._rxn_type = 'fission'
|
||||
else:
|
||||
self._rxn_type = 'nu-fission'
|
||||
else:
|
||||
self._rxn_type = 'prompt-nu-fission'
|
||||
|
||||
@prompt.setter
|
||||
def prompt(self, prompt):
|
||||
cv.check_type('prompt', prompt, bool)
|
||||
self._prompt = prompt
|
||||
if not self.prompt:
|
||||
if not self.nu:
|
||||
self._rxn_type = 'fission'
|
||||
else:
|
||||
self._rxn_type = 'nu-fission'
|
||||
else:
|
||||
self._rxn_type = 'prompt-nu-fission'
|
||||
|
||||
|
||||
class KappaFissionXS(MGXS):
|
||||
|
|
@ -3364,9 +3416,6 @@ class ScatterXS(MGXS):
|
|||
The domain type for spatial homogenization
|
||||
groups : openmc.mgxs.EnergyGroups
|
||||
The energy group structure for energy condensation
|
||||
nu : bool
|
||||
If True, the cross section data will include neutron multiplication;
|
||||
defaults to False
|
||||
by_nuclide : bool
|
||||
If true, computes cross sections for each nuclide in domain
|
||||
name : str, optional
|
||||
|
|
@ -3378,6 +3427,9 @@ class ScatterXS(MGXS):
|
|||
num_azimuthal : Integral, optional
|
||||
Number of equi-width azimuthal angle bins for angle discretization;
|
||||
defaults to one bin
|
||||
nu : bool
|
||||
If True, the cross section data will include neutron multiplication;
|
||||
defaults to False
|
||||
|
||||
Attributes
|
||||
----------
|
||||
|
|
@ -3447,19 +3499,12 @@ class ScatterXS(MGXS):
|
|||
|
||||
"""
|
||||
|
||||
def __init__(self, domain=None, domain_type=None, groups=None, nu=False,
|
||||
by_nuclide=False, name='', num_polar=1, num_azimuthal=1):
|
||||
def __init__(self, domain=None, domain_type=None, groups=None,
|
||||
by_nuclide=False, name='', num_polar=1,
|
||||
num_azimuthal=1, nu=False):
|
||||
super(ScatterXS, self).__init__(domain, domain_type,
|
||||
groups, by_nuclide, name, num_polar,
|
||||
num_azimuthal)
|
||||
if not nu:
|
||||
self._rxn_type = 'scatter'
|
||||
else:
|
||||
self._rxn_type = 'nu-scatter'
|
||||
# Only analog estimators are valid so change from the defaults
|
||||
# to reflect this
|
||||
self._estimator = 'analog'
|
||||
self._valid_estimators = ['analog']
|
||||
groups, by_nuclide, name,
|
||||
num_polar, num_azimuthal)
|
||||
self.nu = nu
|
||||
|
||||
def __deepcopy__(self, memo):
|
||||
|
|
@ -3475,7 +3520,12 @@ class ScatterXS(MGXS):
|
|||
def nu(self, nu):
|
||||
cv.check_type('nu', nu, bool)
|
||||
self._nu = nu
|
||||
|
||||
if not nu:
|
||||
self._rxn_type = 'scatter'
|
||||
else:
|
||||
self._rxn_type = 'nu-scatter'
|
||||
self._estimator = 'analog'
|
||||
self._valid_estimators = ['analog']
|
||||
|
||||
class ScatterMatrixXS(MatrixMGXS):
|
||||
r"""A scattering matrix multi-group cross section with the cosine of the
|
||||
|
|
@ -3522,6 +3572,36 @@ class ScatterMatrixXS(MatrixMGXS):
|
|||
To incorporate the effect of neutron multiplication from (n,xn) reactions
|
||||
in the above relation, the `nu` parameter can be set to `True`.
|
||||
|
||||
An alternative form of the scattering matrix is computed when the
|
||||
`formulation` property is set to 'consistent' rather than the default
|
||||
of 'simple'. This formulation computes the scattering matrix multi-group
|
||||
cross section as the product of the scatter cross section and
|
||||
group-to-group scattering probabilities.
|
||||
|
||||
Unlike the default 'simple' formulation, the 'consistent' formulation
|
||||
is computed from the groupwise scattering cross section which uses a
|
||||
tracklength estimator. This ensures that reaction rate balance is exactly
|
||||
preserved with a :class:`TotalXS` computed using a tracklength estimator.
|
||||
|
||||
For a scattering probability matrix :math:`P_{s,\ell,g'\rightarrow g}` and
|
||||
scattering cross section :math:`\sigma_s (r, E)` for incoming energy group
|
||||
:math:`[E_{g'},E_{g'-1}]` and outgoing energy group :math:`[E_g,E_{g-1}]`,
|
||||
the Legendre scattering moments are calculated as:
|
||||
|
||||
.. math::
|
||||
|
||||
\sigma_{s,\ell,g'\rightarrow g} = \sigma_s (r, E) \times
|
||||
P_{s,\ell,g'\rightarrow g}
|
||||
|
||||
To incorporate the effect of neutron multiplication from (n,xn) reactions
|
||||
in the 'consistent' scattering matrix, the `nu` parameter can be set to `True`
|
||||
such that the Legendre scattering moments are calculated as:
|
||||
|
||||
.. math::
|
||||
|
||||
\sigma_{s,\ell,g'\rightarrow g} = \upsilon_{g'\rightarrow g} \times
|
||||
\sigma_s (r, E) \times P_{s,\ell,g'\rightarrow g}
|
||||
|
||||
Parameters
|
||||
----------
|
||||
domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh
|
||||
|
|
@ -3530,9 +3610,6 @@ class ScatterMatrixXS(MatrixMGXS):
|
|||
The domain type for spatial homogenization
|
||||
groups : openmc.mgxs.EnergyGroups
|
||||
The energy group structure for energy condensation
|
||||
nu : bool
|
||||
If True, the cross section data will include neutron multiplication;
|
||||
defaults to False
|
||||
by_nuclide : bool
|
||||
If true, computes cross sections for each nuclide in domain
|
||||
name : str, optional
|
||||
|
|
@ -3544,9 +3621,22 @@ class ScatterMatrixXS(MatrixMGXS):
|
|||
num_azimuthal : Integral, optional
|
||||
Number of equi-width azimuthal angle bins for angle discretization;
|
||||
defaults to one bin
|
||||
nu : bool
|
||||
If True, the cross section data will include neutron multiplication;
|
||||
defaults to False
|
||||
|
||||
Attributes
|
||||
----------
|
||||
formulation : 'simple' or 'consistent'
|
||||
The calculation approach to use ('simple' by default). The 'simple'
|
||||
formulation simply divides the group-to-group scattering rates by
|
||||
the groupwise flux, each computed from analog tally estimators. The
|
||||
'consistent' formulation multiplies the groupwise scattering rates
|
||||
by the group-to-group scatter probability matrix, the former computed
|
||||
from tracklength tallies and the latter computed from analog tallies.
|
||||
The 'consistent' formulation is designed to better conserve reaction
|
||||
rate balance with the total and absorption cross sections computed
|
||||
using tracklength tally estimators.
|
||||
correction : 'P0' or None
|
||||
Apply the P0 correction to scattering matrices if set to 'P0'; this is
|
||||
used only if :attr:`ScatterMatrixXS.scatter_format` is 'legendre'
|
||||
|
|
@ -3626,17 +3716,13 @@ class ScatterMatrixXS(MatrixMGXS):
|
|||
|
||||
"""
|
||||
|
||||
def __init__(self, domain=None, domain_type=None, groups=None, nu=False,
|
||||
by_nuclide=False, name='', num_polar=1, num_azimuthal=1):
|
||||
def __init__(self, domain=None, domain_type=None, groups=None,
|
||||
by_nuclide=False, name='', num_polar=1,
|
||||
num_azimuthal=1, nu=False):
|
||||
super(ScatterMatrixXS, self).__init__(domain, domain_type,
|
||||
groups, by_nuclide, name,
|
||||
num_azimuthal)
|
||||
if not nu:
|
||||
self._rxn_type = 'scatter'
|
||||
self._hdf5_key = 'scatter matrix'
|
||||
else:
|
||||
self._rxn_type = 'nu-scatter'
|
||||
self._hdf5_key = 'nu-scatter matrix'
|
||||
num_polar, num_azimuthal)
|
||||
self._formulation = 'simple'
|
||||
self._correction = 'P0'
|
||||
self._scatter_format = 'legendre'
|
||||
self._legendre_order = 0
|
||||
|
|
@ -3647,6 +3733,7 @@ class ScatterMatrixXS(MatrixMGXS):
|
|||
|
||||
def __deepcopy__(self, memo):
|
||||
clone = super(ScatterMatrixXS, self).__deepcopy__(memo)
|
||||
clone._formulation = self.formulation
|
||||
clone._correction = self.correction
|
||||
clone._scatter_format = self.scatter_format
|
||||
clone._legendre_order = self.legendre_order
|
||||
|
|
@ -3671,8 +3758,8 @@ class ScatterMatrixXS(MatrixMGXS):
|
|||
return (1, 2)
|
||||
|
||||
@property
|
||||
def nu(self):
|
||||
return self._nu
|
||||
def formulation(self):
|
||||
return self._formulation
|
||||
|
||||
@property
|
||||
def correction(self):
|
||||
|
|
@ -3691,35 +3778,130 @@ class ScatterMatrixXS(MatrixMGXS):
|
|||
return self._histogram_bins
|
||||
|
||||
@property
|
||||
def scores(self):
|
||||
scores = ['flux']
|
||||
def nu(self):
|
||||
return self._nu
|
||||
|
||||
if self.scatter_format == 'legendre':
|
||||
@property
|
||||
def scores(self):
|
||||
|
||||
if self.formulation == 'simple':
|
||||
scores = ['flux']
|
||||
|
||||
if self.scatter_format == 'legendre':
|
||||
if self.legendre_order == 0:
|
||||
scores.append('{}-0'.format(self.rxn_type))
|
||||
if self.correction:
|
||||
scores.append('{}-1'.format(self.rxn_type))
|
||||
else:
|
||||
scores.append('{}-P{}'.format(self.rxn_type, self.legendre_order))
|
||||
elif self.scatter_format == 'histogram':
|
||||
scores += [self.rxn_type]
|
||||
|
||||
else:
|
||||
# Add scores for groupwise scattering cross section
|
||||
scores = ['flux', 'scatter']
|
||||
|
||||
# Add scores for group-to-group scattering probability matrix
|
||||
if self.scatter_format == 'legendre':
|
||||
if self.legendre_order == 0:
|
||||
scores.append('scatter-0')
|
||||
else:
|
||||
scores.append('scatter-P{}'.format(self.legendre_order))
|
||||
elif self.scatter_format == 'histogram':
|
||||
scores.append('scatter-0')
|
||||
|
||||
# Add scores for multiplicity matrix
|
||||
if self.nu:
|
||||
scores.extend(['nu-scatter-0', 'scatter-0'])
|
||||
|
||||
# Add scores for transport correction
|
||||
if self.correction == 'P0' and self.legendre_order == 0:
|
||||
scores += ['{}-0'.format(self.rxn_type),
|
||||
'{}-1'.format(self.rxn_type)]
|
||||
else:
|
||||
scores += ['{}-P{}'.format(self.rxn_type, self.legendre_order)]
|
||||
elif self.scatter_format == 'histogram':
|
||||
scores += [self.rxn_type]
|
||||
scores.extend(['{}-1'.format(self.rxn_type), 'flux'])
|
||||
|
||||
return scores
|
||||
|
||||
@property
|
||||
def filters(self):
|
||||
group_edges = self.energy_groups.group_edges
|
||||
energy = openmc.EnergyFilter(group_edges)
|
||||
energyout = openmc.EnergyoutFilter(group_edges)
|
||||
def tally_keys(self):
|
||||
if self.formulation == 'simple':
|
||||
return super(ScatterMatrixXS, self).tally_keys
|
||||
else:
|
||||
# Add keys for groupwise scattering cross section
|
||||
tally_keys = ['flux (tracklength)', 'scatter']
|
||||
|
||||
if self.scatter_format == 'legendre':
|
||||
# Add keys for group-to-group scattering probability matrix
|
||||
tally_keys.append('scatter-P{}'.format(self.legendre_order))
|
||||
|
||||
# Add keys for multiplicity matrix
|
||||
if self.nu:
|
||||
tally_keys.extend(['nu-scatter-0', 'scatter-0'])
|
||||
|
||||
# Add keys for transport correction
|
||||
if self.correction == 'P0' and self.legendre_order == 0:
|
||||
filters = [[energy], [energy, energyout], [energyout]]
|
||||
else:
|
||||
filters = [[energy], [energy, energyout]]
|
||||
elif self.scatter_format == 'histogram':
|
||||
bins = np.linspace(-1., 1., num=self.histogram_bins + 1,
|
||||
endpoint=True)
|
||||
filters = [[energy], [energy, energyout, openmc.MuFilter(bins)]]
|
||||
tally_keys.extend(['{}-1'.format(self.rxn_type), 'flux (analog)'])
|
||||
|
||||
return tally_keys
|
||||
|
||||
@property
|
||||
def estimator(self):
|
||||
if self.formulation == 'simple':
|
||||
return self._estimator
|
||||
else:
|
||||
# Add estimators for groupwise scattering cross section
|
||||
estimators = ['tracklength', 'tracklength']
|
||||
|
||||
# Add estimators for group-to-group scattering probabilities
|
||||
estimators.append('analog')
|
||||
|
||||
# Add estimators for multiplicity matrix
|
||||
if self.nu:
|
||||
estimators.extend(['analog', 'analog'])
|
||||
|
||||
# Add estimators for transport correction
|
||||
if self.correction == 'P0' and self.legendre_order == 0:
|
||||
estimators.extend(['analog', 'analog'])
|
||||
|
||||
return estimators
|
||||
|
||||
@property
|
||||
def filters(self):
|
||||
if self.formulation == 'simple':
|
||||
group_edges = self.energy_groups.group_edges
|
||||
energy = openmc.EnergyFilter(group_edges)
|
||||
energyout = openmc.EnergyoutFilter(group_edges)
|
||||
|
||||
if self.scatter_format == 'legendre':
|
||||
if self.correction == 'P0' and self.legendre_order == 0:
|
||||
filters = [[energy], [energy, energyout], [energyout]]
|
||||
else:
|
||||
filters = [[energy], [energy, energyout]]
|
||||
elif self.scatter_format == 'histogram':
|
||||
bins = np.linspace(-1., 1., num=self.histogram_bins + 1,
|
||||
endpoint=True)
|
||||
filters = [[energy], [energy, energyout, openmc.MuFilter(bins)]]
|
||||
|
||||
else:
|
||||
group_edges = self.energy_groups.group_edges
|
||||
energy = openmc.EnergyFilter(group_edges)
|
||||
energyout = openmc.EnergyoutFilter(group_edges)
|
||||
|
||||
# Groupwise scattering cross section
|
||||
filters = [[energy], [energy]]
|
||||
|
||||
# Group-to-group scattering probability matrix
|
||||
if self.scatter_format == 'legendre':
|
||||
filters.append([energy, energyout])
|
||||
elif self.scatter_format == 'histogram':
|
||||
bins = np.linspace(-1., 1., num=self.histogram_bins + 1,
|
||||
endpoint=True)
|
||||
filters.append([energy, energyout, openmc.MuFilter(bins)])
|
||||
|
||||
# Multiplicity matrix
|
||||
if self.nu:
|
||||
filters.extend([[energy, energyout], [energy, energyout]])
|
||||
|
||||
# Add filters for transport correction
|
||||
if self.correction == 'P0' and self.legendre_order == 0:
|
||||
filters.extend([[energyout], [energy]])
|
||||
|
||||
return self._add_angle_filters(filters)
|
||||
|
||||
|
|
@ -3727,34 +3909,148 @@ class ScatterMatrixXS(MatrixMGXS):
|
|||
def rxn_rate_tally(self):
|
||||
|
||||
if self._rxn_rate_tally is None:
|
||||
if self.scatter_format == 'legendre':
|
||||
# If using P0 correction subtract scatter-1 from the diagonal
|
||||
if self.correction == 'P0' and self.legendre_order == 0:
|
||||
scatter_p0 = self.tallies['{}-0'.format(self.rxn_type)]
|
||||
scatter_p1 = self.tallies['{}-1'.format(self.rxn_type)]
|
||||
energy_filter = scatter_p0.find_filter(openmc.EnergyFilter)
|
||||
energy_filter = copy.deepcopy(energy_filter)
|
||||
scatter_p1 = scatter_p1.diagonalize_filter(energy_filter)
|
||||
self._rxn_rate_tally = scatter_p0 - scatter_p1
|
||||
|
||||
# Extract scattering moment reaction rate Tally
|
||||
else:
|
||||
tally_key = '{}-P{}'.format(self.rxn_type,
|
||||
self.legendre_order)
|
||||
self._rxn_rate_tally = self.tallies[tally_key]
|
||||
elif self.scatter_format == 'histogram':
|
||||
# Extract scattering rate distribution tally
|
||||
self._rxn_rate_tally = self.tallies[self.rxn_type]
|
||||
if self.formulation == 'simple':
|
||||
if self.scatter_format == 'legendre':
|
||||
# If using P0 correction subtract scatter-1 from the diagonal
|
||||
if self.correction == 'P0' and self.legendre_order == 0:
|
||||
scatter_p0 = self.tallies['{}-0'.format(self.rxn_type)]
|
||||
scatter_p1 = self.tallies['{}-1'.format(self.rxn_type)]
|
||||
energy_filter = scatter_p0.find_filter(openmc.EnergyFilter)
|
||||
energy_filter = copy.deepcopy(energy_filter)
|
||||
scatter_p1 = scatter_p1.diagonalize_filter(energy_filter)
|
||||
self._rxn_rate_tally = scatter_p0 - scatter_p1
|
||||
|
||||
self._rxn_rate_tally.sparse = self.sparse
|
||||
# Extract scattering moment reaction rate Tally
|
||||
elif self.legendre_order == 0:
|
||||
tally_key = '{}-{}'.format(self.rxn_type,
|
||||
self.legendre_order)
|
||||
self._rxn_rate_tally = self.tallies[tally_key]
|
||||
else:
|
||||
tally_key = '{}-P{}'.format(self.rxn_type,
|
||||
self.legendre_order)
|
||||
self._rxn_rate_tally = self.tallies[tally_key]
|
||||
elif self.scatter_format == 'histogram':
|
||||
# Extract scattering rate distribution tally
|
||||
self._rxn_rate_tally = self.tallies[self.rxn_type]
|
||||
|
||||
self._rxn_rate_tally.sparse = self.sparse
|
||||
|
||||
else:
|
||||
msg = 'The reaction rate tally is poorly defined' \
|
||||
' for the consistent formulation'
|
||||
raise NotImplementedError(msg)
|
||||
|
||||
return self._rxn_rate_tally
|
||||
|
||||
@property
|
||||
def xs_tally(self):
|
||||
if self._xs_tally is None:
|
||||
if self.tallies is None:
|
||||
msg = 'Unable to get xs_tally since tallies have ' \
|
||||
'not been loaded from a statepoint'
|
||||
raise ValueError(msg)
|
||||
|
||||
# Use super class method
|
||||
if self.formulation == 'simple':
|
||||
self._xs_tally = MGXS.xs_tally.fget(self)
|
||||
|
||||
else:
|
||||
# Compute groupwise scattering cross section
|
||||
self._xs_tally = self.tallies['scatter'] / \
|
||||
self.tallies['flux (tracklength)']
|
||||
|
||||
# Compute scattering probability matrix
|
||||
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':
|
||||
|
||||
# (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(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)
|
||||
|
||||
# Multiply by the multiplicity matrix
|
||||
if self.nu:
|
||||
numer = self.tallies['nu-scatter-0']
|
||||
denom = self.tallies['scatter-0']
|
||||
self._xs_tally *= (numer / denom)
|
||||
|
||||
# If using P0 correction subtract scatter-1 from the diagonal
|
||||
if self.correction == 'P0' and self.legendre_order == 0:
|
||||
flux = self.tallies['flux (analog)']
|
||||
scatter_p1 = self.tallies['{}-1'.format(self.rxn_type)]
|
||||
|
||||
energy_filter = flux.find_filter(openmc.EnergyFilter)
|
||||
energy_filter = copy.deepcopy(energy_filter)
|
||||
scatter_p1 = scatter_p1.diagonalize_filter(energy_filter)
|
||||
self._xs_tally -= (scatter_p1 / flux)
|
||||
|
||||
self._compute_xs()
|
||||
|
||||
return self._xs_tally
|
||||
|
||||
@nu.setter
|
||||
def nu(self, nu):
|
||||
cv.check_type('nu', nu, bool)
|
||||
self._nu = nu
|
||||
|
||||
if self.formulation == 'simple':
|
||||
if not nu:
|
||||
self._rxn_type = 'scatter'
|
||||
self._hdf5_key = 'scatter matrix'
|
||||
else:
|
||||
self._rxn_type = 'nu-scatter'
|
||||
self._hdf5_key = 'nu-scatter matrix'
|
||||
else:
|
||||
if not nu:
|
||||
self._rxn_type = 'scatter'
|
||||
self._hdf5_key = 'consistent scatter matrix'
|
||||
else:
|
||||
self._rxn_type = 'nu-scatter'
|
||||
self._hdf5_key = 'consistent nu-scatter matrix'
|
||||
|
||||
@formulation.setter
|
||||
def formulation(self, formulation):
|
||||
cv.check_value('formulation', formulation, ('simple', 'consistent'))
|
||||
self._formulation = formulation
|
||||
|
||||
if self.formulation == 'simple':
|
||||
self._valid_estimators = ['analog']
|
||||
if not self.nu:
|
||||
self._hdf5_key = 'scatter matrix'
|
||||
else:
|
||||
self._hdf5_key = 'nu-scatter matrix'
|
||||
else:
|
||||
self._valid_estimators = ['tracklength']
|
||||
if not self.nu:
|
||||
self._hdf5_key = 'consistent scatter matrix'
|
||||
else:
|
||||
self._hdf5_key = 'consistent nu-scatter matrix'
|
||||
|
||||
@correction.setter
|
||||
def correction(self, correction):
|
||||
cv.check_value('correction', correction, ('P0', None))
|
||||
|
|
@ -3813,7 +4109,7 @@ class ScatterMatrixXS(MatrixMGXS):
|
|||
This method is needed to compute cross section data from tallies
|
||||
in an OpenMC StatePoint object.
|
||||
|
||||
NOTE: The statepoint must first be linked with an OpenMC Summary object.
|
||||
.. note:: The statepoint must be linked with an OpenMC Summary object.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
|
|
@ -3838,13 +4134,12 @@ class ScatterMatrixXS(MatrixMGXS):
|
|||
if self.scatter_format == 'legendre':
|
||||
# Expand scores to match the format in the statepoint
|
||||
# e.g., "scatter-P2" -> "scatter-0", "scatter-1", "scatter-2"
|
||||
if self.correction != 'P0' or self.legendre_order != 0:
|
||||
tally_key = '{}-P{}'.format(self.rxn_type, self.legendre_order)
|
||||
self.tallies[tally_key].scores = \
|
||||
[self.rxn_type + '-{}'.format(i)
|
||||
for i in range(self.legendre_order + 1)]
|
||||
elif self.scatter_format == 'histogram':
|
||||
self.tallies[self.rxn_type].scores = [self.rxn_type]
|
||||
for tally_key, tally in self.tallies.items():
|
||||
if 'scatter-P' in tally.scores[0]:
|
||||
score_prefix = tally.scores[0].split('P')[0]
|
||||
self.tallies[tally_key].scores = \
|
||||
[score_prefix + '{}'.format(i)
|
||||
for i in range(self.legendre_order + 1)]
|
||||
|
||||
super(ScatterMatrixXS, self).load_from_statepoint(statepoint)
|
||||
|
||||
|
|
@ -3935,9 +4230,10 @@ class ScatterMatrixXS(MatrixMGXS):
|
|||
(3rd dimension), nuclides (4th dimension), and moments/histograms
|
||||
(5th dimension).
|
||||
|
||||
NOTE: The scattering moments are not multiplied by the :math:`(2l+1)/2`
|
||||
prefactor in the expansion of the scattering source into Legendre
|
||||
moments in the neutron transport equation.
|
||||
.. note:: The scattering moments are not multiplied by the
|
||||
:math:`(2\ell+1)/2` prefactor in the expansion of the
|
||||
scattering source into Legendre moments in the neutron
|
||||
transport equation.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
|
|
@ -4525,6 +4821,179 @@ class MultiplicityMatrixXS(MatrixMGXS):
|
|||
return self._xs_tally
|
||||
|
||||
|
||||
class ScatterProbabilityMatrix(MatrixMGXS):
|
||||
r"""The group-to-group scattering probability matrix.
|
||||
|
||||
This class can be used for both OpenMC input generation and tally data
|
||||
post-processing to compute spatially-homogenized and energy-integrated
|
||||
multi-group cross sections for multi-group neutronics calculations. At a
|
||||
minimum, one needs to set the :attr:`ScatterProbabilityMatrix.energy_groups`
|
||||
and :attr:`ScatterProbabilityMatrix.domain` properties. Tallies for the
|
||||
appropriate reaction rates over the specified domain are generated
|
||||
automatically via the :attr:`ScatterProbabilityMatrix.tallies` property,
|
||||
which can then be appended to a :class:`openmc.Tallies` instance.
|
||||
|
||||
For post-processing, the :meth:`MGXS.load_from_statepoint` will pull in the
|
||||
necessary data to compute multi-group cross sections from a
|
||||
:class:`openmc.StatePoint` instance. The derived multi-group cross section
|
||||
can then be obtained from the :attr:`ScatterProbabilityMatrix.xs_tally`
|
||||
property.
|
||||
|
||||
For a spatial domain :math:`V`, incoming energy group
|
||||
:math:`[E_{g'},E_{g'-1}]`, and outgoing energy group :math:`[E_g,E_{g-1}]`,
|
||||
the group-to-group scattering probabilities are calculated as:
|
||||
|
||||
.. math::
|
||||
|
||||
\langle \sigma_{s,g'\rightarrow g} \phi \rangle &= \int_{r \in V} dr
|
||||
\int_{4\pi} d\Omega' \int_{E_{g'}}^{E_{g'-1}} dE' \int_{4\pi} d\Omega
|
||||
\int_{E_g}^{E_{g-1}} dE \; \sigma_{s} (r, E' \rightarrow E, \Omega'
|
||||
\cdot \Omega) \psi(r, E', \Omega')\\
|
||||
\langle \sigma_{s,0,g'} \phi \rangle &= \int_{r \in V} dr
|
||||
\int_{4\pi} d\Omega' \int_{E_{g'}}^{E_{g'-1}} dE' \int_{4\pi} d\Omega
|
||||
\int_{0}^{\infty} dE \; \sigma_s (r, E'
|
||||
\rightarrow E, \Omega' \cdot \Omega) \psi(r, E', \Omega')\\
|
||||
P_{s,g'\rightarrow g} &= \frac{\langle
|
||||
\sigma_{s,g'\rightarrow g} \phi \rangle}{\langle
|
||||
\sigma_{s,g'} \phi \rangle}
|
||||
|
||||
Parameters
|
||||
----------
|
||||
domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh
|
||||
The domain for spatial homogenization
|
||||
domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'}
|
||||
The domain type for spatial homogenization
|
||||
groups : openmc.mgxs.EnergyGroups
|
||||
The energy group structure for energy condensation
|
||||
by_nuclide : bool
|
||||
If true, computes cross sections for each nuclide in domain
|
||||
name : str, optional
|
||||
Name of the multi-group cross section. Used as a label to identify
|
||||
tallies in OpenMC 'tallies.xml' file.
|
||||
num_polar : Integral, optional
|
||||
Number of equi-width polar angle bins for angle discretization;
|
||||
defaults to one bin
|
||||
num_azimuthal : Integral, optional
|
||||
Number of equi-width azimuthal angle bins for angle discretization;
|
||||
defaults to one bin
|
||||
|
||||
Attributes
|
||||
----------
|
||||
name : str, optional
|
||||
Name of the multi-group cross section
|
||||
rxn_type : str
|
||||
Reaction type (e.g., 'total', 'nu-fission', etc.)
|
||||
by_nuclide : bool
|
||||
If true, computes cross sections for each nuclide in domain
|
||||
domain : Material or Cell or Universe or Mesh
|
||||
Domain for spatial homogenization
|
||||
domain_type : {'material', 'cell', 'distribcell', 'universe', 'mesh'}
|
||||
Domain type for spatial homogenization
|
||||
energy_groups : openmc.mgxs.EnergyGroups
|
||||
Energy group structure for energy condensation
|
||||
num_polar : Integral
|
||||
Number of equi-width polar angle bins for angle discretization
|
||||
num_azimuthal : Integral
|
||||
Number of equi-width azimuthal angle bins for angle discretization
|
||||
tally_trigger : openmc.Trigger
|
||||
An (optional) tally precision trigger given to each tally used to
|
||||
compute the cross section
|
||||
scores : list of str
|
||||
The scores in each tally used to compute the multi-group cross section
|
||||
filters : list of openmc.Filter
|
||||
The filters in each tally used to compute the multi-group cross section
|
||||
tally_keys : list of str
|
||||
The keys into the tallies dictionary for each tally used to compute
|
||||
the multi-group cross section
|
||||
estimator : 'analog'
|
||||
The tally estimator used to compute the multi-group cross section
|
||||
tallies : collections.OrderedDict
|
||||
OpenMC tallies needed to compute the multi-group cross section. The keys
|
||||
are strings listed in the :attr:`ScatterProbabilityMatrix.tally_keys`
|
||||
property and values are instances of :class:`openmc.Tally`.
|
||||
rxn_rate_tally : openmc.Tally
|
||||
Derived tally for the reaction rate tally used in the numerator to
|
||||
compute the multi-group cross section. This attribute is None
|
||||
unless the multi-group cross section has been computed.
|
||||
xs_tally : openmc.Tally
|
||||
Derived tally for the multi-group cross section. This attribute
|
||||
is None unless the multi-group cross section has been computed.
|
||||
num_subdomains : int
|
||||
The number of subdomains is unity for 'material', 'cell' and 'universe'
|
||||
domain types. This is equal to the number of cell instances
|
||||
for 'distribcell' domain types (it is equal to unity prior to loading
|
||||
tally data from a statepoint file).
|
||||
num_nuclides : int
|
||||
The number of nuclides for which the multi-group cross section is
|
||||
being tracked. This is unity if the by_nuclide attribute is False.
|
||||
nuclides : Iterable of str or 'sum'
|
||||
The optional user-specified nuclides for which to compute cross
|
||||
sections (e.g., 'U238', 'O16'). If by_nuclide is True but nuclides
|
||||
are not specified by the user, all nuclides in the spatial domain
|
||||
are included. This attribute is 'sum' if by_nuclide is false.
|
||||
sparse : bool
|
||||
Whether or not the MGXS' tallies use SciPy's LIL sparse matrix format
|
||||
for compressed data storage
|
||||
loaded_sp : bool
|
||||
Whether or not a statepoint file has been loaded with tally data
|
||||
derived : bool
|
||||
Whether or not the MGXS is merged from one or more other MGXS
|
||||
hdf5_key : str
|
||||
The key used to index multi-group cross sections in an HDF5 data store
|
||||
|
||||
"""
|
||||
|
||||
def __init__(self, domain=None, domain_type=None, groups=None,
|
||||
by_nuclide=False, name='', num_polar=1, num_azimuthal=1):
|
||||
super(ScatterProbabilityMatrix, self).__init__(
|
||||
domain, domain_type, groups, by_nuclide,
|
||||
name, num_polar, num_azimuthal)
|
||||
|
||||
self._rxn_type = 'scatter'
|
||||
self._hdf5_key = 'scatter probability matrix'
|
||||
self._estimator = 'analog'
|
||||
self._valid_estimators = ['analog']
|
||||
|
||||
@property
|
||||
def scores(self):
|
||||
return [self.rxn_type]
|
||||
|
||||
@property
|
||||
def filters(self):
|
||||
# Create the non-domain specific Filters for the Tallies
|
||||
group_edges = self.energy_groups.group_edges
|
||||
energy = openmc.EnergyFilter(group_edges)
|
||||
energyout = openmc.EnergyoutFilter(group_edges)
|
||||
filters = [[energy, energyout]]
|
||||
return self._add_angle_filters(filters)
|
||||
|
||||
@property
|
||||
def rxn_rate_tally(self):
|
||||
if self._rxn_rate_tally is None:
|
||||
self._rxn_rate_tally = self.tallies[self.rxn_type]
|
||||
self._rxn_rate_tally.sparse = self.sparse
|
||||
return self._rxn_rate_tally
|
||||
|
||||
@property
|
||||
def xs_tally(self):
|
||||
|
||||
if self._xs_tally is None:
|
||||
energyout_bins = [self.energy_groups.get_group_bounds(i)
|
||||
for i in range(self.num_groups, 0, -1)]
|
||||
norm = self.rxn_rate_tally.get_slice(scores=[self.rxn_type])
|
||||
norm = norm.summation(
|
||||
filter_type=openmc.EnergyoutFilter, filter_bins=energyout_bins)
|
||||
|
||||
# Remove the AggregateFilter summed across energyout bins
|
||||
norm._filters = norm._filters[:2]
|
||||
|
||||
# Compute the group-to-group probabilities
|
||||
self._xs_tally = self.tallies[self.rxn_type] / norm
|
||||
super(ScatterProbabilityMatrix, self)._compute_xs()
|
||||
|
||||
return self._xs_tally
|
||||
|
||||
|
||||
class NuFissionMatrixXS(MatrixMGXS):
|
||||
r"""A fission production matrix multi-group cross section.
|
||||
|
||||
|
|
@ -4556,11 +5025,6 @@ class NuFissionMatrixXS(MatrixMGXS):
|
|||
\nu\sigma_{f,g'\rightarrow g} &= \frac{\langle \nu\sigma_{f,g'\rightarrow
|
||||
g} \phi \rangle}{\langle \phi \rangle}
|
||||
|
||||
This class can also be used to gather a prompt-nu-fission cross section
|
||||
(which only includes the contributions from prompt neutrons). This is
|
||||
accomplished by setting the :attr:`NuFissionMatrixXS.prompt` attribute to
|
||||
`True`.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh
|
||||
|
|
@ -4569,9 +5033,6 @@ class NuFissionMatrixXS(MatrixMGXS):
|
|||
The domain type for spatial homogenization
|
||||
groups : openmc.mgxs.EnergyGroups
|
||||
The energy group structure for energy condensation
|
||||
prompt : bool
|
||||
If true, computes cross sections which only includes prompt neutrons;
|
||||
defaults to False which includes prompt and delayed in total
|
||||
by_nuclide : bool
|
||||
If true, computes cross sections for each nuclide in domain
|
||||
name : str, optional
|
||||
|
|
@ -4583,6 +5044,9 @@ class NuFissionMatrixXS(MatrixMGXS):
|
|||
num_azimuthal : Integral, optional
|
||||
Number of equi-width azimuthal angle bins for angle discretization;
|
||||
defaults to one bin
|
||||
prompt : bool
|
||||
If true, computes cross sections which only includes prompt neutrons;
|
||||
defaults to False which includes prompt and delayed in total
|
||||
|
||||
Attributes
|
||||
----------
|
||||
|
|
@ -4653,8 +5117,8 @@ class NuFissionMatrixXS(MatrixMGXS):
|
|||
"""
|
||||
|
||||
def __init__(self, domain=None, domain_type=None, groups=None,
|
||||
prompt=False, by_nuclide=False, name='', num_polar=1,
|
||||
num_azimuthal=1):
|
||||
by_nuclide=False, name='', num_polar=1,
|
||||
num_azimuthal=1, prompt=False):
|
||||
super(NuFissionMatrixXS, self).__init__(domain, domain_type,
|
||||
groups, by_nuclide, name,
|
||||
num_polar, num_azimuthal)
|
||||
|
|
@ -4891,6 +5355,12 @@ class Chi(MGXS):
|
|||
def prompt(self, prompt):
|
||||
cv.check_type('prompt', prompt, bool)
|
||||
self._prompt = prompt
|
||||
if not self.prompt:
|
||||
self._rxn_type = 'nu-fission'
|
||||
self._hdf5_key = 'chi'
|
||||
else:
|
||||
self._rxn_type = 'prompt-nu-fission'
|
||||
self._hdf5_key = 'chi-prompt'
|
||||
|
||||
def get_homogenized_mgxs(self, other_mgxs):
|
||||
"""Construct a homogenized mgxs with other MGXS objects.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
import sys
|
||||
import re
|
||||
import os
|
||||
import warnings
|
||||
|
|
|
|||
|
|
@ -2,12 +2,10 @@ from __future__ import division
|
|||
|
||||
from collections import Iterable, MutableSequence
|
||||
import copy
|
||||
import re
|
||||
from functools import partial
|
||||
import os
|
||||
import pickle
|
||||
import itertools
|
||||
from numbers import Integral, Real
|
||||
import sys
|
||||
import warnings
|
||||
from xml.etree import ElementTree as ET
|
||||
|
||||
|
|
@ -1013,8 +1011,51 @@ class Tally(object):
|
|||
# Sparsify merged tally if both tallies are sparse
|
||||
merged_tally.sparse = self.sparse and other.sparse
|
||||
|
||||
# Consolidate scatter and flux Legendre moment scores
|
||||
merged_tally._consolidate_moment_scores()
|
||||
|
||||
return merged_tally
|
||||
|
||||
def _consolidate_moment_scores(self):
|
||||
"""Remove redundant scattering and flux moment scores from a Tally."""
|
||||
|
||||
# Define regex for scatter, nu-scatter and flux moment scores
|
||||
regex = [(r'^((?!nu-)scatter-\d)', r'^((?!nu-)scatter-(P|p)\d)'),
|
||||
(r'nu-scatter-\d', r'nu-scatter-(P|p)\d'),
|
||||
(r'flux-\d', r'flux-(P|p)\d')]
|
||||
|
||||
# Find all non-scattering and non-flux moment scores
|
||||
scores = [x for x in self.scores if
|
||||
re.search(r'^((?!scatter-).)*$', x)]
|
||||
scores = [x for x in scores if
|
||||
re.search(r'^((?!flux-).)*$', x)]
|
||||
|
||||
for regex_n, regex_pn in regex:
|
||||
|
||||
# Use regex to find score-(P)n scores
|
||||
score_n = [x for x in self.scores if re.search(regex_n, x)]
|
||||
score_pn = [x for x in self.scores if re.search(regex_pn, x)]
|
||||
|
||||
# Consolidate moment scores
|
||||
if len(score_pn) > 0:
|
||||
|
||||
# Only keep the highest score-PN score
|
||||
high_pn = sorted([x.lower() for x in score_pn])[-1]
|
||||
pn = int(high_pn.split('-')[-1].replace('p', ''))
|
||||
|
||||
# Only keep the score-N scores with N > PN
|
||||
score_n = sorted([x.lower() for x in score_n])
|
||||
score_n = [x for x in score_n if (int(x.split('-')[1]) > pn)]
|
||||
|
||||
# Append highest score-PN and any higher score-N scores
|
||||
scores.extend([high_pn] + score_n)
|
||||
else:
|
||||
scores.extend(score_n)
|
||||
|
||||
# Override Tally's scores with consolidated list of scores
|
||||
self.scores = scores
|
||||
|
||||
|
||||
def to_xml_element(self):
|
||||
"""Return XML representation of the tally
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,9 +1,9 @@
|
|||
material group in nuclide mean std. dev.
|
||||
0 10000 1 total 0.453624 0.021053
|
||||
material group in nuclide mean std. dev.
|
||||
0 10000 1 total 0.400852 0.022858
|
||||
material group in nuclide mean std. dev.
|
||||
0 10000 1 total 0.400852 0.022858
|
||||
material group in nuclide mean std. dev.
|
||||
0 10000 1 total 0.4074 0.021863
|
||||
material group in nuclide mean std. dev.
|
||||
0 10000 1 total 0.4074 0.021863
|
||||
material group in nuclide mean std. dev.
|
||||
0 10000 1 total 0.064903 0.004313
|
||||
material group in nuclide mean std. dev.
|
||||
|
|
@ -32,6 +32,18 @@
|
|||
0 10000 1 1 total 1.0 0.066111
|
||||
material group in group out nuclide mean std. dev.
|
||||
0 10000 1 1 total 0.085835 0.005592
|
||||
material group in group out nuclide mean std. dev.
|
||||
0 10000 1 1 total 1.0 0.066111
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
0 10000 1 1 total P0 0.388721 0.031279
|
||||
1 10000 1 1 total P1 0.046155 0.006407
|
||||
2 10000 1 1 total P2 0.017957 0.003039
|
||||
3 10000 1 1 total P3 0.006618 0.002480
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
0 10000 1 1 total P0 0.388721 0.040482
|
||||
1 10000 1 1 total P1 0.046155 0.007097
|
||||
2 10000 1 1 total P2 0.017957 0.003262
|
||||
3 10000 1 1 total P3 0.006618 0.002518
|
||||
material group out nuclide mean std. dev.
|
||||
0 10000 1 total 1.0 0.046071
|
||||
material group out nuclide mean std. dev.
|
||||
|
|
@ -80,9 +92,9 @@
|
|||
material group in nuclide mean std. dev.
|
||||
0 10001 1 total 0.311594 0.013793
|
||||
material group in nuclide mean std. dev.
|
||||
0 10001 1 total 0.279255 0.029189
|
||||
0 10001 1 total 0.280977 0.015683
|
||||
material group in nuclide mean std. dev.
|
||||
0 10001 1 total 0.279255 0.029189
|
||||
0 10001 1 total 0.280977 0.015683
|
||||
material group in nuclide mean std. dev.
|
||||
0 10001 1 total 0.00221 0.000286
|
||||
material group in nuclide mean std. dev.
|
||||
|
|
@ -111,6 +123,18 @@
|
|||
0 10001 1 1 total 1.0 0.095039
|
||||
material group in group out nuclide mean std. dev.
|
||||
0 10001 1 1 total 0.0 0.0
|
||||
material group in group out nuclide mean std. dev.
|
||||
0 10001 1 1 total 1.0 0.095039
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
0 10001 1 1 total P0 0.309384 0.032376
|
||||
1 10001 1 1 total P1 0.030756 0.007617
|
||||
2 10001 1 1 total P2 0.018997 0.004420
|
||||
3 10001 1 1 total P3 0.006263 0.003364
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
0 10001 1 1 total P0 0.309384 0.043735
|
||||
1 10001 1 1 total P1 0.030756 0.008159
|
||||
2 10001 1 1 total P2 0.018997 0.004775
|
||||
3 10001 1 1 total P3 0.006263 0.003417
|
||||
material group out nuclide mean std. dev.
|
||||
0 10001 1 total 0.0 0.0
|
||||
material group out nuclide mean std. dev.
|
||||
|
|
@ -159,9 +183,9 @@
|
|||
material group in nuclide mean std. dev.
|
||||
0 10002 1 total 0.904999 0.043964
|
||||
material group in nuclide mean std. dev.
|
||||
0 10002 1 total 0.499184 0.040914
|
||||
0 10002 1 total 0.494581 0.046763
|
||||
material group in nuclide mean std. dev.
|
||||
0 10002 1 total 0.499184 0.040914
|
||||
0 10002 1 total 0.494581 0.046763
|
||||
material group in nuclide mean std. dev.
|
||||
0 10002 1 total 0.00606 0.000555
|
||||
material group in nuclide mean std. dev.
|
||||
|
|
@ -190,6 +214,18 @@
|
|||
0 10002 1 1 total 1.0 0.056867
|
||||
material group in group out nuclide mean std. dev.
|
||||
0 10002 1 1 total 0.0 0.0
|
||||
material group in group out nuclide mean std. dev.
|
||||
0 10002 1 1 total 1.0 0.056867
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
0 10002 1 1 total P0 0.898938 0.067118
|
||||
1 10002 1 1 total P1 0.408384 0.028127
|
||||
2 10002 1 1 total P2 0.142591 0.010824
|
||||
3 10002 1 1 total P3 0.008696 0.003588
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
0 10002 1 1 total P0 0.898938 0.084369
|
||||
1 10002 1 1 total P1 0.408384 0.036475
|
||||
2 10002 1 1 total P2 0.142591 0.013525
|
||||
3 10002 1 1 total P3 0.008696 0.003622
|
||||
material group out nuclide mean std. dev.
|
||||
0 10002 1 total 0.0 0.0
|
||||
material group out nuclide mean std. dev.
|
||||
|
|
|
|||
|
|
@ -96,56 +96,56 @@
|
|||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10003">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>total</scores>
|
||||
<estimator>analog</estimator>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10004">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10005">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>scatter-1</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10005">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10006">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>total</scores>
|
||||
<estimator>analog</estimator>
|
||||
<scores>flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10007">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-scatter-1</scores>
|
||||
<estimator>analog</estimator>
|
||||
<scores>total</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10008">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10009">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>absorption</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
<scores>nu-scatter-1</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10010">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
|
|
@ -165,14 +165,14 @@
|
|||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>fission</scores>
|
||||
<scores>flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10013">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<scores>absorption</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10014">
|
||||
|
|
@ -193,7 +193,7 @@
|
|||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-fission</scores>
|
||||
<scores>fission</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10017">
|
||||
|
|
@ -207,7 +207,7 @@
|
|||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>kappa-fission</scores>
|
||||
<scores>nu-fission</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10019">
|
||||
|
|
@ -221,7 +221,7 @@
|
|||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>scatter</scores>
|
||||
<scores>kappa-fission</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10021">
|
||||
|
|
@ -229,14 +229,14 @@
|
|||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10022">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-scatter</scores>
|
||||
<estimator>analog</estimator>
|
||||
<scores>scatter</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10023">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
|
|
@ -248,9 +248,8 @@
|
|||
<tally id="10024">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>scatter-P3</scores>
|
||||
<scores>nu-scatter</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10025">
|
||||
|
|
@ -265,15 +264,14 @@
|
|||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-scatter-P3</scores>
|
||||
<scores>scatter-P3</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10027">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-scatter</scores>
|
||||
<scores>flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10028">
|
||||
|
|
@ -281,14 +279,15 @@
|
|||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>scatter</scores>
|
||||
<scores>nu-scatter-P3</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10029">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<scores>nu-scatter</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10030">
|
||||
|
|
@ -296,18 +295,19 @@
|
|||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-fission</scores>
|
||||
<scores>scatter</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10031">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-fission</scores>
|
||||
<scores>flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10032">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-fission</scores>
|
||||
|
|
@ -316,31 +316,33 @@
|
|||
<tally id="10033">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>prompt-nu-fission</scores>
|
||||
<scores>scatter</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10034">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>prompt-nu-fission</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10035">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10036">
|
||||
<tally id="10035">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>inverse-velocity</scores>
|
||||
<scores>scatter</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10036">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>scatter-P3</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10037">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
|
|
@ -352,14 +354,15 @@
|
|||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>prompt-nu-fission</scores>
|
||||
<scores>scatter</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10039">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<scores>scatter-P3</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10040">
|
||||
|
|
@ -367,17 +370,96 @@
|
|||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>prompt-nu-fission</scores>
|
||||
<scores>nu-scatter-0</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10041">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>scatter-0</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10042">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-fission</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10043">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-fission</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10044">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>prompt-nu-fission</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10045">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>prompt-nu-fission</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10046">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10042">
|
||||
<tally id="10047">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>inverse-velocity</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10048">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10049">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>prompt-nu-fission</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10050">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10051">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>prompt-nu-fission</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10052">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10053">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="1 2 3 4 5 6" type="delayedgroup" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
|
|
@ -385,7 +467,7 @@
|
|||
<scores>delayed-nu-fission</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10043">
|
||||
<tally id="10054">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="1 2 3 4 5 6" type="delayedgroup" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
|
|
@ -393,7 +475,7 @@
|
|||
<scores>delayed-nu-fission</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10044">
|
||||
<tally id="10055">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="1 2 3 4 5 6" type="delayedgroup" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
|
|
@ -401,14 +483,14 @@
|
|||
<scores>delayed-nu-fission</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10045">
|
||||
<tally id="10056">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-fission</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10046">
|
||||
<tally id="10057">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="1 2 3 4 5 6" type="delayedgroup" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
|
|
@ -416,7 +498,7 @@
|
|||
<scores>delayed-nu-fission</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10047">
|
||||
<tally id="10058">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="1 2 3 4 5 6" type="delayedgroup" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
|
|
@ -424,7 +506,7 @@
|
|||
<scores>delayed-nu-fission</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10048">
|
||||
<tally id="10059">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="1 2 3 4 5 6" type="delayedgroup" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
|
|
@ -432,14 +514,14 @@
|
|||
<scores>decay-rate</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10049">
|
||||
<tally id="10060">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10050">
|
||||
<tally id="10061">
|
||||
<filter bins="10000" type="distribcell" />
|
||||
<filter bins="1 2 3 4 5 6" type="delayedgroup" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
sum(distribcell) group in nuclide mean std. dev.
|
||||
0 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 total 0.457353 0.010474
|
||||
sum(distribcell) group in nuclide mean std. dev.
|
||||
0 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 total 0.405649 0.015784
|
||||
0 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 total 0.410174 0.011573
|
||||
sum(distribcell) group in nuclide mean std. dev.
|
||||
0 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 total 0.405641 0.015787
|
||||
0 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 total 0.410166 0.011577
|
||||
sum(distribcell) group in nuclide mean std. dev.
|
||||
0 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 total 0.066556 0.00251
|
||||
sum(distribcell) group in nuclide mean std. dev.
|
||||
|
|
@ -32,6 +32,18 @@
|
|||
0 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 1 total 1.000834 0.037242
|
||||
sum(distribcell) group in group out nuclide mean std. dev.
|
||||
0 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 1 total 0.094516 0.0059
|
||||
sum(distribcell) group in group out nuclide mean std. dev.
|
||||
0 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 1 total 1.0 0.037213
|
||||
sum(distribcell) group in group out nuclide moment mean std. dev.
|
||||
0 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 1 total P0 0.390797 0.016955
|
||||
1 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 1 total P1 0.047641 0.005091
|
||||
2 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 1 total P2 0.015866 0.003708
|
||||
3 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 1 total P3 0.005430 0.003170
|
||||
sum(distribcell) group in group out nuclide moment mean std. dev.
|
||||
0 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 1 total P0 0.391123 0.022356
|
||||
1 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 1 total P1 0.047680 0.005395
|
||||
2 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 1 total P2 0.015880 0.003758
|
||||
3 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 1 total P3 0.005435 0.003179
|
||||
sum(distribcell) group out nuclide mean std. dev.
|
||||
0 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 total 1.0 0.080455
|
||||
sum(distribcell) group out nuclide mean std. dev.
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -2,11 +2,11 @@ domain=10000 type=total
|
|||
[4.14825464e-01 6.60169863e-01]
|
||||
[2.27929105e-02 4.75188999e-02]
|
||||
domain=10000 type=transport
|
||||
[3.56859612e-01 6.47647614e-01]
|
||||
[2.54935937e-02 2.37037335e-02]
|
||||
[3.63092031e-01 6.44850709e-01]
|
||||
[2.38384843e-02 4.76746408e-02]
|
||||
domain=10000 type=nu-transport
|
||||
[3.56859612e-01 6.47647614e-01]
|
||||
[2.54935937e-02 2.37037335e-02]
|
||||
[3.63092031e-01 6.44850709e-01]
|
||||
[2.38384843e-02 4.76746408e-02]
|
||||
domain=10000 type=absorption
|
||||
[2.74078431e-02 2.64510714e-01]
|
||||
[2.69249666e-03 2.33670618e-02]
|
||||
|
|
@ -60,6 +60,33 @@ domain=10000 type=nu-fission matrix
|
|||
[4.54366342e-01 0.00000000e+00]]
|
||||
[[3.14909051e-03 0.00000000e+00]
|
||||
[2.74255162e-02 0.00000000e+00]]
|
||||
domain=10000 type=scatter probability matrix
|
||||
[[9.97432606e-01 2.56739409e-03]
|
||||
[2.24215247e-03 9.97757848e-01]]
|
||||
[[7.82243018e-02 1.25560869e-03]
|
||||
[2.24310192e-03 4.10531468e-02]]
|
||||
domain=10000 type=consistent scatter matrix
|
||||
[[[3.86422967e-01 5.21704775e-02 2.01849914e-02 9.53256688e-03]
|
||||
[9.94653712e-04 -2.08433942e-04 -1.03964400e-04 2.35646553e-04]]
|
||||
|
||||
[[8.87128136e-04 -7.36559899e-04 4.73756321e-04 -1.64539748e-04]
|
||||
[3.94772020e-01 1.58130798e-02 6.11300510e-03 -1.00731826e-02]]]
|
||||
[[[3.66286904e-02 7.76748968e-03 3.13767806e-03 2.32683668e-03]
|
||||
[4.89318749e-04 1.50458419e-04 1.85500930e-04 1.29783344e-04]]
|
||||
|
||||
[[8.89289900e-04 7.38354757e-04 4.74910776e-04 1.64940700e-04]
|
||||
[2.98710064e-02 4.44330993e-03 1.01307463e-02 1.00367467e-02]]]
|
||||
domain=10000 type=consistent nu-scatter matrix
|
||||
[[[3.86422967e-01 5.21704775e-02 2.01849914e-02 9.53256688e-03]
|
||||
[9.94653712e-04 -2.08433942e-04 -1.03964400e-04 2.35646553e-04]]
|
||||
|
||||
[[8.87128136e-04 -7.36559899e-04 4.73756321e-04 -1.64539748e-04]
|
||||
[3.94772020e-01 1.58130798e-02 6.11300510e-03 -1.00731826e-02]]]
|
||||
[[[4.75627021e-02 8.78140568e-03 3.51522200e-03 2.44425169e-03]
|
||||
[8.40606499e-04 2.07733706e-04 1.98782933e-04 2.07523215e-04]]
|
||||
|
||||
[[1.53780011e-03 1.27679627e-03 8.21237084e-04 2.85222881e-04]
|
||||
[3.39988352e-02 4.49065920e-03 1.01338659e-02 1.00452944e-02]]]
|
||||
domain=10000 type=chi
|
||||
[1.00000000e+00 0.00000000e+00]
|
||||
[4.60705493e-02 0.00000000e+00]
|
||||
|
|
@ -168,11 +195,11 @@ domain=10001 type=total
|
|||
[3.13737666e-01 3.00821380e-01]
|
||||
[1.55819223e-02 2.80524816e-02]
|
||||
domain=10001 type=transport
|
||||
[2.73227852e-01 3.12374814e-01]
|
||||
[3.31153641e-02 4.96058281e-02]
|
||||
[2.75508079e-01 3.12035015e-01]
|
||||
[1.77418855e-02 3.23843473e-02]
|
||||
domain=10001 type=nu-transport
|
||||
[2.73227852e-01 3.12374814e-01]
|
||||
[3.31153641e-02 4.96058281e-02]
|
||||
[2.75508079e-01 3.12035015e-01]
|
||||
[1.77418855e-02 3.23843473e-02]
|
||||
domain=10001 type=absorption
|
||||
[1.57499139e-03 5.40037826e-03]
|
||||
[3.22547919e-04 6.18139027e-04]
|
||||
|
|
@ -226,6 +253,33 @@ domain=10001 type=nu-fission matrix
|
|||
[0.00000000e+00 0.00000000e+00]]
|
||||
[[0.00000000e+00 0.00000000e+00]
|
||||
[0.00000000e+00 0.00000000e+00]]
|
||||
domain=10001 type=scatter probability matrix
|
||||
[[1.00000000e+00 0.00000000e+00]
|
||||
[0.00000000e+00 1.00000000e+00]]
|
||||
[[1.08778697e-01 0.00000000e+00]
|
||||
[0.00000000e+00 1.42427173e-01]]
|
||||
domain=10001 type=consistent scatter matrix
|
||||
[[[3.12162675e-01 3.84813069e-02 2.08815337e-02 8.01673640e-03]
|
||||
[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]]
|
||||
|
||||
[[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]
|
||||
[2.95421002e-01 -1.11817183e-02 8.81141444e-03 -3.26075959e-03]]]
|
||||
[[[3.72534018e-02 8.74305413e-03 4.83468235e-03 3.77642682e-03]
|
||||
[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]]
|
||||
|
||||
[[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]
|
||||
[5.02358893e-02 1.61616720e-02 1.14951123e-02 7.31312479e-03]]]
|
||||
domain=10001 type=consistent nu-scatter matrix
|
||||
[[[3.12162675e-01 3.84813069e-02 2.08815337e-02 8.01673640e-03]
|
||||
[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]]
|
||||
|
||||
[[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]
|
||||
[2.95421002e-01 -1.11817183e-02 8.81141444e-03 -3.26075959e-03]]]
|
||||
[[[5.04070427e-02 9.69345877e-03 5.34169555e-03 3.87580585e-03]
|
||||
[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]]
|
||||
|
||||
[[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]
|
||||
[6.55288678e-02 1.62399493e-02 1.15634161e-02 7.32785650e-03]]]
|
||||
domain=10001 type=chi
|
||||
[0.00000000e+00 0.00000000e+00]
|
||||
[0.00000000e+00 0.00000000e+00]
|
||||
|
|
@ -334,11 +388,11 @@ domain=10002 type=total
|
|||
[6.64572195e-01 2.05238389e+00]
|
||||
[3.12147473e-02 2.24342891e-01]
|
||||
domain=10002 type=transport
|
||||
[2.90565237e-01 1.51643790e+00]
|
||||
[2.38518529e-02 2.35197252e-01]
|
||||
[2.83322749e-01 1.49973953e+00]
|
||||
[3.52061127e-02 2.30902118e-01]
|
||||
domain=10002 type=nu-transport
|
||||
[2.90565237e-01 1.51643790e+00]
|
||||
[2.38518529e-02 2.35197252e-01]
|
||||
[2.83322749e-01 1.49973953e+00]
|
||||
[3.52061127e-02 2.30902118e-01]
|
||||
domain=10002 type=absorption
|
||||
[6.90399495e-04 3.16872549e-02]
|
||||
[4.41475663e-05 3.74655831e-03]
|
||||
|
|
@ -392,6 +446,33 @@ domain=10002 type=nu-fission matrix
|
|||
[0.00000000e+00 0.00000000e+00]]
|
||||
[[0.00000000e+00 0.00000000e+00]
|
||||
[0.00000000e+00 0.00000000e+00]]
|
||||
domain=10002 type=scatter probability matrix
|
||||
[[9.53271028e-01 4.67289720e-02]
|
||||
[2.17817469e-04 9.99782183e-01]]
|
||||
[[3.60184962e-02 2.54736726e-03]
|
||||
[2.18820864e-04 1.35884974e-01]]
|
||||
domain=10002 type=consistent scatter matrix
|
||||
[[[6.32859281e-01 3.76972649e-01 1.50714804e-01 9.04734705e-03]
|
||||
[3.10225138e-02 8.66134326e-03 -2.53964096e-03 -3.74315061e-03]]
|
||||
|
||||
[[4.40143026e-04 3.97073448e-04 3.17256062e-04 2.12303394e-04]
|
||||
[2.02025649e+00 5.06259696e-01 1.10372136e-01 2.48080660e-02]]]
|
||||
[[[3.81421848e-02 2.37145043e-02 1.06635009e-02 3.86848985e-03]
|
||||
[2.23201039e-03 9.99377011e-04 1.00968851e-03 8.26439590e-04]]
|
||||
|
||||
[[4.44773843e-04 4.01251123e-04 3.20593966e-04 2.14537073e-04]
|
||||
[3.52193929e-01 7.91402819e-02 1.84875925e-02 8.77085752e-03]]]
|
||||
domain=10002 type=consistent nu-scatter matrix
|
||||
[[[6.32859281e-01 3.76972649e-01 1.50714804e-01 9.04734705e-03]
|
||||
[3.10225138e-02 8.66134326e-03 -2.53964096e-03 -3.74315061e-03]]
|
||||
|
||||
[[4.40143026e-04 3.97073448e-04 3.17256062e-04 2.12303394e-04]
|
||||
[2.02025649e+00 5.06259696e-01 1.10372136e-01 2.48080660e-02]]]
|
||||
[[[4.52974133e-02 2.78247077e-02 1.21478698e-02 3.88422859e-03]
|
||||
[3.06407542e-03 1.15855775e-03 1.02420876e-03 8.64382873e-04]]
|
||||
|
||||
[[7.65033031e-04 6.90171798e-04 5.51437493e-04 3.69014387e-04]
|
||||
[4.46600759e-01 1.04874946e-01 2.38091367e-02 9.39676938e-03]]]
|
||||
domain=10002 type=chi
|
||||
[0.00000000e+00 0.00000000e+00]
|
||||
[0.00000000e+00 0.00000000e+00]
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ class MGXSTestHarness(PyAPITestHarness):
|
|||
|
||||
# Export the MGXS Library to an HDF5 file
|
||||
self.mgxs_lib.build_hdf5_store(directory='.')
|
||||
|
||||
|
||||
# Open the MGXS HDF5 file
|
||||
f = h5py.File('mgxs.h5', 'r')
|
||||
|
||||
|
|
|
|||
|
|
@ -333,56 +333,56 @@
|
|||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10003">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>total</scores>
|
||||
<estimator>analog</estimator>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10004">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10005">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>scatter-1</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10005">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10006">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>total</scores>
|
||||
<estimator>analog</estimator>
|
||||
<scores>flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10007">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-scatter-1</scores>
|
||||
<estimator>analog</estimator>
|
||||
<scores>total</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10008">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10009">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>absorption</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
<scores>nu-scatter-1</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10010">
|
||||
<filter bins="1" type="mesh" />
|
||||
|
|
@ -402,14 +402,14 @@
|
|||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>fission</scores>
|
||||
<scores>flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10013">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<scores>absorption</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10014">
|
||||
|
|
@ -430,7 +430,7 @@
|
|||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-fission</scores>
|
||||
<scores>fission</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10017">
|
||||
|
|
@ -444,7 +444,7 @@
|
|||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>kappa-fission</scores>
|
||||
<scores>nu-fission</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10019">
|
||||
|
|
@ -458,7 +458,7 @@
|
|||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>scatter</scores>
|
||||
<scores>kappa-fission</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10021">
|
||||
|
|
@ -466,14 +466,14 @@
|
|||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10022">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-scatter</scores>
|
||||
<estimator>analog</estimator>
|
||||
<scores>scatter</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10023">
|
||||
<filter bins="1" type="mesh" />
|
||||
|
|
@ -485,9 +485,8 @@
|
|||
<tally id="10024">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>scatter-P3</scores>
|
||||
<scores>nu-scatter</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10025">
|
||||
|
|
@ -502,15 +501,14 @@
|
|||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-scatter-P3</scores>
|
||||
<scores>scatter-P3</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10027">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-scatter</scores>
|
||||
<scores>flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10028">
|
||||
|
|
@ -518,14 +516,15 @@
|
|||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>scatter</scores>
|
||||
<scores>nu-scatter-P3</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10029">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<scores>nu-scatter</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10030">
|
||||
|
|
@ -533,18 +532,19 @@
|
|||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-fission</scores>
|
||||
<scores>scatter</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10031">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-fission</scores>
|
||||
<scores>flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10032">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-fission</scores>
|
||||
|
|
@ -553,31 +553,33 @@
|
|||
<tally id="10033">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>prompt-nu-fission</scores>
|
||||
<scores>scatter</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10034">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>prompt-nu-fission</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10035">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10036">
|
||||
<tally id="10035">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>inverse-velocity</scores>
|
||||
<scores>scatter</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10036">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>scatter-P3</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10037">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
|
|
@ -589,14 +591,15 @@
|
|||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>prompt-nu-fission</scores>
|
||||
<scores>scatter</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10039">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<scores>scatter-P3</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10040">
|
||||
|
|
@ -604,17 +607,96 @@
|
|||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>prompt-nu-fission</scores>
|
||||
<scores>nu-scatter-0</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10041">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>scatter-0</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10042">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-fission</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10043">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-fission</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10044">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>prompt-nu-fission</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10045">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>prompt-nu-fission</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10046">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10042">
|
||||
<tally id="10047">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>inverse-velocity</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10048">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10049">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>prompt-nu-fission</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10050">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10051">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>prompt-nu-fission</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10052">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10053">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="1 2 3 4 5 6" type="delayedgroup" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
|
|
@ -622,7 +704,7 @@
|
|||
<scores>delayed-nu-fission</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10043">
|
||||
<tally id="10054">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="1 2 3 4 5 6" type="delayedgroup" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
|
|
@ -630,7 +712,7 @@
|
|||
<scores>delayed-nu-fission</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10044">
|
||||
<tally id="10055">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="1 2 3 4 5 6" type="delayedgroup" />
|
||||
<filter bins="0.0 20000000.0" type="energyout" />
|
||||
|
|
@ -638,14 +720,14 @@
|
|||
<scores>delayed-nu-fission</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10045">
|
||||
<tally id="10056">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>nu-fission</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10046">
|
||||
<tally id="10057">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="1 2 3 4 5 6" type="delayedgroup" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
|
|
@ -653,7 +735,7 @@
|
|||
<scores>delayed-nu-fission</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10047">
|
||||
<tally id="10058">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="1 2 3 4 5 6" type="delayedgroup" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
|
|
@ -661,7 +743,7 @@
|
|||
<scores>delayed-nu-fission</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10048">
|
||||
<tally id="10059">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="1 2 3 4 5 6" type="delayedgroup" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
|
|
@ -669,14 +751,14 @@
|
|||
<scores>decay-rate</scores>
|
||||
<estimator>tracklength</estimator>
|
||||
</tally>
|
||||
<tally id="10049">
|
||||
<tally id="10060">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
<nuclides>total</nuclides>
|
||||
<scores>flux</scores>
|
||||
<estimator>analog</estimator>
|
||||
</tally>
|
||||
<tally id="10050">
|
||||
<tally id="10061">
|
||||
<filter bins="1" type="mesh" />
|
||||
<filter bins="1 2 3 4 5 6" type="delayedgroup" />
|
||||
<filter bins="0.0 20000000.0" type="energy" />
|
||||
|
|
|
|||
|
|
@ -6,16 +6,16 @@
|
|||
3 2 2 1 1 total 0.641095 0.091519
|
||||
mesh 1 group in nuclide mean std. dev.
|
||||
x y z
|
||||
0 1 1 1 1 total 0.413423 0.087250
|
||||
1 1 2 1 1 total 0.392074 0.244272
|
||||
2 2 1 1 1 total 0.458841 0.087921
|
||||
3 2 2 1 1 total 0.403898 0.074343
|
||||
0 1 1 1 1 total 0.407867 0.104648
|
||||
1 1 2 1 1 total 0.417805 0.300173
|
||||
2 2 1 1 1 total 0.451699 0.087229
|
||||
3 2 2 1 1 total 0.396449 0.095884
|
||||
mesh 1 group in nuclide mean std. dev.
|
||||
x y z
|
||||
0 1 1 1 1 total 0.413423 0.087250
|
||||
1 1 2 1 1 total 0.392074 0.244272
|
||||
2 2 1 1 1 total 0.458841 0.087921
|
||||
3 2 2 1 1 total 0.403898 0.074343
|
||||
0 1 1 1 1 total 0.407867 0.104648
|
||||
1 1 2 1 1 total 0.417805 0.300173
|
||||
2 2 1 1 1 total 0.451699 0.087229
|
||||
3 2 2 1 1 total 0.396449 0.095884
|
||||
mesh 1 group in nuclide mean std. dev.
|
||||
x y z
|
||||
0 1 1 1 1 total 0.021476 0.004248
|
||||
|
|
@ -106,6 +106,48 @@
|
|||
1 1 2 1 1 1 total 0.017348 0.008786
|
||||
2 2 1 1 1 1 total 0.020409 0.003354
|
||||
3 2 2 1 1 1 total 0.011105 0.003806
|
||||
mesh 1 group in group out nuclide mean std. dev.
|
||||
x y z
|
||||
0 1 1 1 1 1 total 1.0 0.153265
|
||||
1 1 2 1 1 1 total 1.0 0.454973
|
||||
2 2 1 1 1 1 total 1.0 0.146747
|
||||
3 2 2 1 1 1 total 1.0 0.141824
|
||||
mesh 1 group in group out nuclide moment mean std. dev.
|
||||
x y z
|
||||
0 1 1 1 1 1 total P0 0.633490 0.135514
|
||||
1 1 1 1 1 1 total P1 0.245219 0.051009
|
||||
2 1 1 1 1 1 total P2 0.091493 0.017479
|
||||
3 1 1 1 1 1 total P3 0.013124 0.004906
|
||||
4 1 2 1 1 1 total P0 0.618705 0.392783
|
||||
5 1 2 1 1 1 total P1 0.232972 0.149703
|
||||
6 1 2 1 1 1 total P2 0.073396 0.049002
|
||||
7 1 2 1 1 1 total P3 -0.003195 0.010229
|
||||
8 2 1 1 1 1 total P0 0.686150 0.126578
|
||||
9 2 1 1 1 1 total P1 0.257252 0.047890
|
||||
10 2 1 1 1 1 total P2 0.094522 0.018315
|
||||
11 2 1 1 1 1 total P3 0.016676 0.005187
|
||||
12 2 2 1 1 1 total P0 0.619269 0.124057
|
||||
13 2 2 1 1 1 total P1 0.242153 0.048064
|
||||
14 2 2 1 1 1 total P2 0.087677 0.018646
|
||||
15 2 2 1 1 1 total P3 0.019785 0.014168
|
||||
mesh 1 group in group out nuclide moment mean std. dev.
|
||||
x y z
|
||||
0 1 1 1 1 1 total P0 0.633490 0.166706
|
||||
1 1 1 1 1 1 total P1 0.245219 0.063359
|
||||
2 1 1 1 1 1 total P2 0.091493 0.022409
|
||||
3 1 1 1 1 1 total P3 0.013124 0.005303
|
||||
4 1 2 1 1 1 total P0 0.618705 0.483237
|
||||
5 1 2 1 1 1 total P1 0.232972 0.183428
|
||||
6 1 2 1 1 1 total P2 0.073396 0.059298
|
||||
7 1 2 1 1 1 total P3 -0.003195 0.010332
|
||||
8 2 1 1 1 1 total P0 0.686150 0.161742
|
||||
9 2 1 1 1 1 total P1 0.257252 0.060980
|
||||
10 2 1 1 1 1 total P2 0.094522 0.022975
|
||||
11 2 1 1 1 1 total P3 0.016676 0.005736
|
||||
12 2 2 1 1 1 total P0 0.619269 0.152000
|
||||
13 2 2 1 1 1 total P1 0.242153 0.059073
|
||||
14 2 2 1 1 1 total P2 0.087677 0.022412
|
||||
15 2 2 1 1 1 total P3 0.019785 0.014443
|
||||
mesh 1 group out nuclide mean std. dev.
|
||||
x y z
|
||||
0 1 1 1 1 total 1.0 0.135958
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -2,11 +2,11 @@
|
|||
1 10000 1 total 0.414825 0.022793
|
||||
0 10000 2 total 0.660170 0.047519
|
||||
material group in nuclide mean std. dev.
|
||||
1 10000 1 total 0.356860 0.025494
|
||||
0 10000 2 total 0.647648 0.023704
|
||||
1 10000 1 total 0.363092 0.023838
|
||||
0 10000 2 total 0.644851 0.047675
|
||||
material group in nuclide mean std. dev.
|
||||
1 10000 1 total 0.356860 0.025494
|
||||
0 10000 2 total 0.647648 0.023704
|
||||
1 10000 1 total 0.363092 0.023838
|
||||
0 10000 2 total 0.644851 0.047675
|
||||
material group in nuclide mean std. dev.
|
||||
1 10000 1 total 0.027408 0.002692
|
||||
0 10000 2 total 0.264511 0.023367
|
||||
|
|
@ -72,6 +72,45 @@
|
|||
2 10000 1 2 total 0.000000 0.000000
|
||||
1 10000 2 1 total 0.454366 0.027426
|
||||
0 10000 2 2 total 0.000000 0.000000
|
||||
material group in group out nuclide mean std. dev.
|
||||
3 10000 1 1 total 0.997433 0.078224
|
||||
2 10000 1 2 total 0.002567 0.001256
|
||||
1 10000 2 1 total 0.002242 0.002243
|
||||
0 10000 2 2 total 0.997758 0.041053
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
12 10000 1 1 total P0 0.386423 0.036629
|
||||
13 10000 1 1 total P1 0.052170 0.007767
|
||||
14 10000 1 1 total P2 0.020185 0.003138
|
||||
15 10000 1 1 total P3 0.009533 0.002327
|
||||
8 10000 1 2 total P0 0.000995 0.000489
|
||||
9 10000 1 2 total P1 -0.000208 0.000150
|
||||
10 10000 1 2 total P2 -0.000104 0.000186
|
||||
11 10000 1 2 total P3 0.000236 0.000130
|
||||
4 10000 2 1 total P0 0.000887 0.000889
|
||||
5 10000 2 1 total P1 -0.000737 0.000738
|
||||
6 10000 2 1 total P2 0.000474 0.000475
|
||||
7 10000 2 1 total P3 -0.000165 0.000165
|
||||
0 10000 2 2 total P0 0.394772 0.029871
|
||||
1 10000 2 2 total P1 0.015813 0.004443
|
||||
2 10000 2 2 total P2 0.006113 0.010131
|
||||
3 10000 2 2 total P3 -0.010073 0.010037
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
12 10000 1 1 total P0 0.386423 0.047563
|
||||
13 10000 1 1 total P1 0.052170 0.008781
|
||||
14 10000 1 1 total P2 0.020185 0.003515
|
||||
15 10000 1 1 total P3 0.009533 0.002444
|
||||
8 10000 1 2 total P0 0.000995 0.000841
|
||||
9 10000 1 2 total P1 -0.000208 0.000208
|
||||
10 10000 1 2 total P2 -0.000104 0.000199
|
||||
11 10000 1 2 total P3 0.000236 0.000208
|
||||
4 10000 2 1 total P0 0.000887 0.001538
|
||||
5 10000 2 1 total P1 -0.000737 0.001277
|
||||
6 10000 2 1 total P2 0.000474 0.000821
|
||||
7 10000 2 1 total P3 -0.000165 0.000285
|
||||
0 10000 2 2 total P0 0.394772 0.033999
|
||||
1 10000 2 2 total P1 0.015813 0.004491
|
||||
2 10000 2 2 total P2 0.006113 0.010134
|
||||
3 10000 2 2 total P3 -0.010073 0.010045
|
||||
material group out nuclide mean std. dev.
|
||||
1 10000 1 total 1.0 0.046071
|
||||
0 10000 2 total 0.0 0.000000
|
||||
|
|
@ -170,11 +209,11 @@
|
|||
1 10001 1 total 0.313738 0.015582
|
||||
0 10001 2 total 0.300821 0.028052
|
||||
material group in nuclide mean std. dev.
|
||||
1 10001 1 total 0.273228 0.033115
|
||||
0 10001 2 total 0.312375 0.049606
|
||||
1 10001 1 total 0.275508 0.017742
|
||||
0 10001 2 total 0.312035 0.032384
|
||||
material group in nuclide mean std. dev.
|
||||
1 10001 1 total 0.273228 0.033115
|
||||
0 10001 2 total 0.312375 0.049606
|
||||
1 10001 1 total 0.275508 0.017742
|
||||
0 10001 2 total 0.312035 0.032384
|
||||
material group in nuclide mean std. dev.
|
||||
1 10001 1 total 0.001575 0.000323
|
||||
0 10001 2 total 0.005400 0.000618
|
||||
|
|
@ -240,6 +279,45 @@
|
|||
2 10001 1 2 total 0.0 0.0
|
||||
1 10001 2 1 total 0.0 0.0
|
||||
0 10001 2 2 total 0.0 0.0
|
||||
material group in group out nuclide mean std. dev.
|
||||
3 10001 1 1 total 1.0 0.108779
|
||||
2 10001 1 2 total 0.0 0.000000
|
||||
1 10001 2 1 total 0.0 0.000000
|
||||
0 10001 2 2 total 1.0 0.142427
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
12 10001 1 1 total P0 0.312163 0.037253
|
||||
13 10001 1 1 total P1 0.038481 0.008743
|
||||
14 10001 1 1 total P2 0.020882 0.004835
|
||||
15 10001 1 1 total P3 0.008017 0.003776
|
||||
8 10001 1 2 total P0 0.000000 0.000000
|
||||
9 10001 1 2 total P1 0.000000 0.000000
|
||||
10 10001 1 2 total P2 0.000000 0.000000
|
||||
11 10001 1 2 total P3 0.000000 0.000000
|
||||
4 10001 2 1 total P0 0.000000 0.000000
|
||||
5 10001 2 1 total P1 0.000000 0.000000
|
||||
6 10001 2 1 total P2 0.000000 0.000000
|
||||
7 10001 2 1 total P3 0.000000 0.000000
|
||||
0 10001 2 2 total P0 0.295421 0.050236
|
||||
1 10001 2 2 total P1 -0.011182 0.016162
|
||||
2 10001 2 2 total P2 0.008811 0.011495
|
||||
3 10001 2 2 total P3 -0.003261 0.007313
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
12 10001 1 1 total P0 0.312163 0.050407
|
||||
13 10001 1 1 total P1 0.038481 0.009693
|
||||
14 10001 1 1 total P2 0.020882 0.005342
|
||||
15 10001 1 1 total P3 0.008017 0.003876
|
||||
8 10001 1 2 total P0 0.000000 0.000000
|
||||
9 10001 1 2 total P1 0.000000 0.000000
|
||||
10 10001 1 2 total P2 0.000000 0.000000
|
||||
11 10001 1 2 total P3 0.000000 0.000000
|
||||
4 10001 2 1 total P0 0.000000 0.000000
|
||||
5 10001 2 1 total P1 0.000000 0.000000
|
||||
6 10001 2 1 total P2 0.000000 0.000000
|
||||
7 10001 2 1 total P3 0.000000 0.000000
|
||||
0 10001 2 2 total P0 0.295421 0.065529
|
||||
1 10001 2 2 total P1 -0.011182 0.016240
|
||||
2 10001 2 2 total P2 0.008811 0.011563
|
||||
3 10001 2 2 total P3 -0.003261 0.007328
|
||||
material group out nuclide mean std. dev.
|
||||
1 10001 1 total 0.0 0.0
|
||||
0 10001 2 total 0.0 0.0
|
||||
|
|
@ -338,11 +416,11 @@
|
|||
1 10002 1 total 0.664572 0.031215
|
||||
0 10002 2 total 2.052384 0.224343
|
||||
material group in nuclide mean std. dev.
|
||||
1 10002 1 total 0.290565 0.023852
|
||||
0 10002 2 total 1.516438 0.235197
|
||||
1 10002 1 total 0.283323 0.035206
|
||||
0 10002 2 total 1.499740 0.230902
|
||||
material group in nuclide mean std. dev.
|
||||
1 10002 1 total 0.290565 0.023852
|
||||
0 10002 2 total 1.516438 0.235197
|
||||
1 10002 1 total 0.283323 0.035206
|
||||
0 10002 2 total 1.499740 0.230902
|
||||
material group in nuclide mean std. dev.
|
||||
1 10002 1 total 0.000690 0.000044
|
||||
0 10002 2 total 0.031687 0.003747
|
||||
|
|
@ -408,6 +486,45 @@
|
|||
2 10002 1 2 total 0.0 0.0
|
||||
1 10002 2 1 total 0.0 0.0
|
||||
0 10002 2 2 total 0.0 0.0
|
||||
material group in group out nuclide mean std. dev.
|
||||
3 10002 1 1 total 0.953271 0.036018
|
||||
2 10002 1 2 total 0.046729 0.002547
|
||||
1 10002 2 1 total 0.000218 0.000219
|
||||
0 10002 2 2 total 0.999782 0.135885
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
12 10002 1 1 total P0 0.632859 0.038142
|
||||
13 10002 1 1 total P1 0.376973 0.023715
|
||||
14 10002 1 1 total P2 0.150715 0.010664
|
||||
15 10002 1 1 total P3 0.009047 0.003868
|
||||
8 10002 1 2 total P0 0.031023 0.002232
|
||||
9 10002 1 2 total P1 0.008661 0.000999
|
||||
10 10002 1 2 total P2 -0.002540 0.001010
|
||||
11 10002 1 2 total P3 -0.003743 0.000826
|
||||
4 10002 2 1 total P0 0.000440 0.000445
|
||||
5 10002 2 1 total P1 0.000397 0.000401
|
||||
6 10002 2 1 total P2 0.000317 0.000321
|
||||
7 10002 2 1 total P3 0.000212 0.000215
|
||||
0 10002 2 2 total P0 2.020256 0.352194
|
||||
1 10002 2 2 total P1 0.506260 0.079140
|
||||
2 10002 2 2 total P2 0.110372 0.018488
|
||||
3 10002 2 2 total P3 0.024808 0.008771
|
||||
material group in group out nuclide moment mean std. dev.
|
||||
12 10002 1 1 total P0 0.632859 0.045297
|
||||
13 10002 1 1 total P1 0.376973 0.027825
|
||||
14 10002 1 1 total P2 0.150715 0.012148
|
||||
15 10002 1 1 total P3 0.009047 0.003884
|
||||
8 10002 1 2 total P0 0.031023 0.003064
|
||||
9 10002 1 2 total P1 0.008661 0.001159
|
||||
10 10002 1 2 total P2 -0.002540 0.001024
|
||||
11 10002 1 2 total P3 -0.003743 0.000864
|
||||
4 10002 2 1 total P0 0.000440 0.000765
|
||||
5 10002 2 1 total P1 0.000397 0.000690
|
||||
6 10002 2 1 total P2 0.000317 0.000551
|
||||
7 10002 2 1 total P3 0.000212 0.000369
|
||||
0 10002 2 2 total P0 2.020256 0.446601
|
||||
1 10002 2 2 total P1 0.506260 0.104875
|
||||
2 10002 2 2 total P2 0.110372 0.023809
|
||||
3 10002 2 2 total P3 0.024808 0.009397
|
||||
material group out nuclide mean std. dev.
|
||||
1 10002 1 total 0.0 0.0
|
||||
0 10002 2 total 0.0 0.0
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1 +1 @@
|
|||
b91cd851e23046bed070866f56e03cb95d92025dbaf4d7e12dad553fc391cd812c2c6cb7584e9a10af113d728631dd10a079717418eefd57b676b847c3261c80
|
||||
107576b21fa8ed72f71ac65866e4ad1100cc62df527f6f4e6bb8a6318f3694614b6ba1c72634b2e97474a75ea1b3112dcb9b4b36e58f0417e5b04aee5d3c7570
|
||||
Loading…
Add table
Add a link
Reference in a new issue