From 604bfbfbe13fad210779fe19cad3dd15f20e3e42 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 2 Mar 2017 17:02:08 -0500 Subject: [PATCH] Added formulation property to ScatterMatrixXS --- openmc/mgxs/mgxs.py | 314 ++++++-- openmc/statepoint.py | 1 - .../inputs_true.dat | 678 ++++++++---------- .../results_true.dat | 24 +- .../inputs_true.dat | 110 ++- .../results_true.dat | 8 +- tests/test_mgxs_library_hdf5/inputs_true.dat | 678 ++++++++---------- tests/test_mgxs_library_hdf5/results_true.dat | 40 +- tests/test_mgxs_library_mesh/inputs_true.dat | 110 ++- tests/test_mgxs_library_mesh/results_true.dat | 32 +- .../inputs_true.dat | 678 ++++++++---------- .../results_true.dat | 80 +-- .../inputs_true.dat | 598 +++++++-------- .../results_true.dat | 2 +- 14 files changed, 1663 insertions(+), 1690 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 0509de8bd5..aa2afb8cfd 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -482,12 +482,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 @@ -735,10 +741,11 @@ class MGXS(object): mgxs = ScatterProbabilityMatrix( domain, domain_type, energy_groups, nu=True) elif mgxs_type == 'consistent scatter matrix': - mgxs = ConsistentScatterMatrixXS(domain, domain_type, energy_groups) + mgxs = ScatterMatrixXS(domain, domain_type, energy_groups) + mgxs.formulation = 'consistent' elif mgxs_type == 'consistent nu-scatter matrix': - mgxs = ConsistentScatterMatrixXS( - domain, domain_type, energy_groups, nu=True) + 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': @@ -3545,6 +3552,8 @@ 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`. + # FIXME: Add equations to reflect alternative formulation + Parameters ---------- domain : openmc.Material or openmc.Cell or openmc.Universe or openmc.Mesh @@ -3570,6 +3579,16 @@ class ScatterMatrixXS(MatrixMGXS): 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' @@ -3655,6 +3674,7 @@ class ScatterMatrixXS(MatrixMGXS): super(ScatterMatrixXS, self).__init__(domain, domain_type, groups, by_nuclide, name, num_polar, num_azimuthal) + self._formulation = 'simple' self._correction = 'P0' self._scatter_format = 'legendre' self._legendre_order = 0 @@ -3665,6 +3685,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 @@ -3689,8 +3710,8 @@ class ScatterMatrixXS(MatrixMGXS): return (1, 2) @property - def nu(self): - return self._nu + def formulation(self): + return self._formulation @property def correction(self): @@ -3709,35 +3730,122 @@ class ScatterMatrixXS(MatrixMGXS): return self._histogram_bins @property - def scores(self): - scores = ['flux'] + def nu(self): + return self._nu - if self.scatter_format == 'legendre': - if self.correction == 'P0' and self.legendre_order == 0: - scores += ['{}-0'.format(self.rxn_type), - '{}-1'.format(self.rxn_type)] + @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.legendre_order == 0: + scores.append('scatter-0') else: - scores += ['{}-P{}'.format(self.rxn_type, self.legendre_order)] - elif self.scatter_format == 'histogram': - scores += [self.rxn_type] + scores.append('scatter-P{}'.format(self.legendre_order)) + + # 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.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 + filters.extend([[energy, energyout], [energy, energyout]]) + + # Multiplicity matrix + if self.nu: + filters.append([energy, energyout]) + + # Add filters for transport correction + if self.correction == 'P0' and self.legendre_order == 0: + filters.append([[energyout]]) return self._add_angle_filters(filters) @@ -3745,39 +3853,128 @@ 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) + 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] + + # 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 not nu: - self._rxn_type = 'scatter' - self._hdf5_key = 'scatter matrix' + + 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: - self._rxn_type = 'nu-scatter' - self._hdf5_key = 'nu-scatter matrix' + 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): @@ -3862,11 +4059,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)] + 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)] elif self.scatter_format == 'histogram': self.tallies[self.rxn_type].scores = [self.rxn_type] @@ -4792,7 +4990,7 @@ class ScatterProbabilityMatrix(MatrixMGXS): # Remove the AggregateFilter summed across energyout bins norm._filters = norm._filters[:2] - # Compute the group-to-group probailities + # Compute the group-to-group probabilities tally_key = '{}-P{}'.format(self.rxn_type, self.legendre_order) self._xs_tally = self.tallies[tally_key] / norm super(ScatterProbabilityMatrix, self)._compute_xs() diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 4101b066a1..8b3be92411 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -1,4 +1,3 @@ -import sys import re import os import warnings diff --git a/tests/test_mgxs_library_condense/inputs_true.dat b/tests/test_mgxs_library_condense/inputs_true.dat index f99014ee2c..b4498e9d8d 100644 --- a/tests/test_mgxs_library_condense/inputs_true.dat +++ b/tests/test_mgxs_library_condense/inputs_true.dat @@ -313,31 +313,31 @@ - total - nu-scatter - analog + flux + tracklength - total scatter - analog + tracklength + total - flux + scatter-P3 analog + total - nu-scatter + nu-scatter-0 analog @@ -345,52 +345,50 @@ total - nu-scatter-P3 + scatter-0 analog - - + total - nu-scatter + nu-fission analog - total - scatter + nu-fission analog total - nu-fission + prompt-nu-fission analog total - nu-fission + prompt-nu-fission analog - + total - prompt-nu-fission - analog + flux + tracklength - + total - prompt-nu-fission - analog + inverse-velocity + tracklength @@ -403,31 +401,17 @@ total - inverse-velocity + prompt-nu-fission tracklength - - - total - flux - tracklength - - - - - total - prompt-nu-fission - tracklength - - total flux analog - + @@ -435,14 +419,14 @@ prompt-nu-fission analog - + total flux tracklength - + @@ -450,7 +434,7 @@ delayed-nu-fission tracklength - + @@ -458,7 +442,7 @@ delayed-nu-fission analog - + @@ -466,30 +450,30 @@ delayed-nu-fission analog - + total nu-fission tracklength + + + + + total + delayed-nu-fission + tracklength + + + + + + total + delayed-nu-fission + tracklength + - - - - total - delayed-nu-fission - tracklength - - - - - - total - delayed-nu-fission - tracklength - - @@ -497,14 +481,14 @@ decay-rate tracklength - + total flux analog - + @@ -513,62 +497,76 @@ delayed-nu-fission analog + + + + total + flux + tracklength + + + + + total + total + tracklength + total flux - tracklength + analog total total - tracklength + analog - - - total - flux - analog - - - - - total - total - analog - - total scatter-1 analog - + total flux analog - + total total analog - + total nu-scatter-1 analog + + + + total + flux + tracklength + + + + + total + absorption + tracklength + @@ -587,14 +585,14 @@ total - flux + fission tracklength total - absorption + flux tracklength @@ -615,7 +613,7 @@ total - fission + nu-fission tracklength @@ -629,7 +627,7 @@ total - nu-fission + kappa-fission tracklength @@ -643,7 +641,7 @@ total - kappa-fission + scatter tracklength @@ -651,14 +649,14 @@ total flux - tracklength + analog total - scatter - tracklength + nu-scatter + analog @@ -670,8 +668,9 @@ + total - nu-scatter + scatter-P3 analog @@ -686,14 +685,15 @@ total - scatter-P3 + nu-scatter-P3 analog + total - flux + nu-scatter analog @@ -701,33 +701,17 @@ total - nu-scatter-P3 + scatter analog - total - nu-scatter + flux analog - - - - total - scatter - analog - - - - - total - flux - analog - - @@ -735,7 +719,7 @@ nu-fission analog - + @@ -743,7 +727,7 @@ scatter-P0 analog - + @@ -751,21 +735,21 @@ nu-scatter-P0 analog - + total flux tracklength - + total scatter tracklength - + @@ -773,12 +757,26 @@ scatter-P3 analog + + + + total + flux + tracklength + + + + + total + scatter + tracklength + total - nu-scatter + scatter-P3 analog @@ -786,88 +784,87 @@ total - scatter + nu-scatter-0 analog + total - flux + scatter-0 analog - + total - nu-scatter + nu-fission analog - total - nu-scatter-P3 + nu-fission analog - - + total - nu-scatter + prompt-nu-fission analog - total - scatter + prompt-nu-fission analog - + total - nu-fission - analog + flux + tracklength - + total - nu-fission - analog + inverse-velocity + tracklength - + total - prompt-nu-fission - analog + flux + tracklength - + total prompt-nu-fission - analog + tracklength total flux - tracklength + analog + total - inverse-velocity - tracklength + prompt-nu-fission + analog @@ -878,31 +875,33 @@ + total - prompt-nu-fission + delayed-nu-fission tracklength - + + total - flux + delayed-nu-fission analog - + total - prompt-nu-fission + delayed-nu-fission analog total - flux + nu-fission tracklength @@ -916,43 +915,12 @@ - + total delayed-nu-fission - analog + tracklength - - - - total - delayed-nu-fission - analog - - - - - total - nu-fission - tracklength - - - - - - total - delayed-nu-fission - tracklength - - - - - - total - delayed-nu-fission - tracklength - - @@ -960,14 +928,14 @@ decay-rate tracklength - + total flux analog - + @@ -976,95 +944,123 @@ delayed-nu-fission analog + + + + total + flux + tracklength + + + + + total + total + tracklength + + + + + total + flux + analog + + + + + total + total + analog + - - - total - flux - tracklength - - - - - total - total - tracklength - - - - - total - flux - analog - - - - - total - total - analog - - total scatter-1 analog - + total flux analog - + total total analog - + total nu-scatter-1 analog - + total flux tracklength + + + + total + absorption + tracklength + + + + + total + flux + tracklength + + + + + total + absorption + tracklength + + + + + total + fission + tracklength + total - absorption + flux tracklength total - flux + fission tracklength total - absorption + flux tracklength total - fission + nu-fission tracklength @@ -1078,7 +1074,7 @@ total - fission + kappa-fission tracklength @@ -1092,7 +1088,7 @@ total - nu-fission + scatter tracklength @@ -1100,28 +1096,29 @@ total flux - tracklength + analog total - kappa-fission - tracklength + nu-scatter + analog total flux - tracklength + analog + total - scatter - tracklength + scatter-P3 + analog @@ -1133,15 +1130,17 @@ + total - nu-scatter + nu-scatter-P3 analog + total - flux + nu-scatter analog @@ -1149,7 +1148,7 @@ total - scatter-P3 + scatter analog @@ -1164,7 +1163,7 @@ total - nu-scatter-P3 + nu-fission analog @@ -1172,7 +1171,7 @@ total - nu-scatter + scatter-P0 analog @@ -1180,55 +1179,24 @@ total - scatter + nu-scatter-P0 analog - - - total - flux - analog - - - - - - total - nu-fission - analog - - - - - - total - scatter-P0 - analog - - - - - - total - nu-scatter-P0 - analog - - total flux tracklength - + total scatter tracklength - + @@ -1236,83 +1204,110 @@ scatter-P3 analog + + + + total + flux + tracklength + + + + + total + scatter + tracklength + + + + + + total + scatter-P3 + analog + + + + + + total + nu-scatter-0 + analog + total - nu-scatter + scatter-0 analog - - - - total - scatter - analog - - - - - total - flux - analog - - - - - total - nu-scatter - analog - - - - - - total - nu-scatter-P3 - analog - - - - - - total - nu-scatter - analog - - - - - - total - scatter - analog - - total nu-fission analog - + total nu-fission analog - + total prompt-nu-fission analog + + + + total + prompt-nu-fission + analog + + + + + total + flux + tracklength + + + + + total + inverse-velocity + tracklength + + + + + total + flux + tracklength + + + + + total + prompt-nu-fission + tracklength + + + + + total + flux + analog + + total prompt-nu-fission @@ -1326,49 +1321,6 @@ tracklength - - - total - inverse-velocity - tracklength - - - - - total - flux - tracklength - - - - - total - prompt-nu-fission - tracklength - - - - - total - flux - analog - - - - - - total - prompt-nu-fission - analog - - - - - total - flux - tracklength - - @@ -1376,7 +1328,7 @@ delayed-nu-fission tracklength - + @@ -1384,7 +1336,7 @@ delayed-nu-fission analog - + @@ -1392,14 +1344,14 @@ delayed-nu-fission analog - + total nu-fission tracklength - + @@ -1407,7 +1359,7 @@ delayed-nu-fission tracklength - + @@ -1415,7 +1367,7 @@ delayed-nu-fission tracklength - + @@ -1423,14 +1375,14 @@ decay-rate tracklength - + total flux analog - + diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index bb84ee16af..d20a5ba0c8 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -42,10 +42,10 @@ 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.389304 0.043096 -1 10000 1 1 total P1 0.046224 0.007316 -2 10000 1 1 total P2 0.017984 0.003336 -3 10000 1 1 total P3 0.006628 0.002534 +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. @@ -135,10 +135,10 @@ 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.307987 0.050720 -1 10001 1 1 total P1 0.030617 0.008524 -2 10001 1 1 total P2 0.018911 0.005015 -3 10001 1 1 total P3 0.006235 0.003442 +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. @@ -228,10 +228,10 @@ 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.903415 0.084918 -1 10002 1 1 total P1 0.410417 0.036718 -2 10002 1 1 total P2 0.143301 0.013612 -3 10002 1 1 total P3 0.008739 0.003640 +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. diff --git a/tests/test_mgxs_library_distribcell/inputs_true.dat b/tests/test_mgxs_library_distribcell/inputs_true.dat index 3ab849a56c..d2d3387082 100644 --- a/tests/test_mgxs_library_distribcell/inputs_true.dat +++ b/tests/test_mgxs_library_distribcell/inputs_true.dat @@ -340,31 +340,31 @@ - total - nu-scatter - analog + flux + tracklength - total scatter - analog + tracklength + total - flux + scatter-P3 analog + total - nu-scatter + nu-scatter-0 analog @@ -372,52 +372,50 @@ total - nu-scatter-P3 + scatter-0 analog - total - nu-scatter + nu-fission analog - total - scatter + nu-fission analog total - nu-fission + prompt-nu-fission analog total - nu-fission + prompt-nu-fission analog total - prompt-nu-fission - analog + flux + tracklength - + total - prompt-nu-fission - analog + inverse-velocity + tracklength @@ -430,7 +428,7 @@ total - inverse-velocity + prompt-nu-fission tracklength @@ -438,54 +436,40 @@ total flux - tracklength + analog + total prompt-nu-fission - tracklength + analog total flux - analog + tracklength + - total - prompt-nu-fission - analog + delayed-nu-fission + tracklength + total - flux - tracklength + delayed-nu-fission + analog - - - - total - delayed-nu-fission - tracklength - - - - - - total - delayed-nu-fission - analog - - @@ -493,30 +477,30 @@ delayed-nu-fission analog - + total nu-fission tracklength + + + + + total + delayed-nu-fission + tracklength + + + + + + total + delayed-nu-fission + tracklength + - - - - total - delayed-nu-fission - tracklength - - - - - - total - delayed-nu-fission - tracklength - - @@ -524,14 +508,14 @@ decay-rate tracklength - + total flux analog - + diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index bf98ad688f..36e3203ba7 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -42,10 +42,10 @@ 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.387654 0.024885 -1 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 1 total P1 0.047226 0.005527 -2 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 1 total P2 0.015740 0.003750 -3 ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13... 1 1 total P3 0.005392 0.003157 +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. diff --git a/tests/test_mgxs_library_hdf5/inputs_true.dat b/tests/test_mgxs_library_hdf5/inputs_true.dat index f99014ee2c..b4498e9d8d 100644 --- a/tests/test_mgxs_library_hdf5/inputs_true.dat +++ b/tests/test_mgxs_library_hdf5/inputs_true.dat @@ -313,31 +313,31 @@ - total - nu-scatter - analog + flux + tracklength - total scatter - analog + tracklength + total - flux + scatter-P3 analog + total - nu-scatter + nu-scatter-0 analog @@ -345,52 +345,50 @@ total - nu-scatter-P3 + scatter-0 analog - - + total - nu-scatter + nu-fission analog - total - scatter + nu-fission analog total - nu-fission + prompt-nu-fission analog total - nu-fission + prompt-nu-fission analog - + total - prompt-nu-fission - analog + flux + tracklength - + total - prompt-nu-fission - analog + inverse-velocity + tracklength @@ -403,31 +401,17 @@ total - inverse-velocity + prompt-nu-fission tracklength - - - total - flux - tracklength - - - - - total - prompt-nu-fission - tracklength - - total flux analog - + @@ -435,14 +419,14 @@ prompt-nu-fission analog - + total flux tracklength - + @@ -450,7 +434,7 @@ delayed-nu-fission tracklength - + @@ -458,7 +442,7 @@ delayed-nu-fission analog - + @@ -466,30 +450,30 @@ delayed-nu-fission analog - + total nu-fission tracklength + + + + + total + delayed-nu-fission + tracklength + + + + + + total + delayed-nu-fission + tracklength + - - - - total - delayed-nu-fission - tracklength - - - - - - total - delayed-nu-fission - tracklength - - @@ -497,14 +481,14 @@ decay-rate tracklength - + total flux analog - + @@ -513,62 +497,76 @@ delayed-nu-fission analog + + + + total + flux + tracklength + + + + + total + total + tracklength + total flux - tracklength + analog total total - tracklength + analog - - - total - flux - analog - - - - - total - total - analog - - total scatter-1 analog - + total flux analog - + total total analog - + total nu-scatter-1 analog + + + + total + flux + tracklength + + + + + total + absorption + tracklength + @@ -587,14 +585,14 @@ total - flux + fission tracklength total - absorption + flux tracklength @@ -615,7 +613,7 @@ total - fission + nu-fission tracklength @@ -629,7 +627,7 @@ total - nu-fission + kappa-fission tracklength @@ -643,7 +641,7 @@ total - kappa-fission + scatter tracklength @@ -651,14 +649,14 @@ total flux - tracklength + analog total - scatter - tracklength + nu-scatter + analog @@ -670,8 +668,9 @@ + total - nu-scatter + scatter-P3 analog @@ -686,14 +685,15 @@ total - scatter-P3 + nu-scatter-P3 analog + total - flux + nu-scatter analog @@ -701,33 +701,17 @@ total - nu-scatter-P3 + scatter analog - total - nu-scatter + flux analog - - - - total - scatter - analog - - - - - total - flux - analog - - @@ -735,7 +719,7 @@ nu-fission analog - + @@ -743,7 +727,7 @@ scatter-P0 analog - + @@ -751,21 +735,21 @@ nu-scatter-P0 analog - + total flux tracklength - + total scatter tracklength - + @@ -773,12 +757,26 @@ scatter-P3 analog + + + + total + flux + tracklength + + + + + total + scatter + tracklength + total - nu-scatter + scatter-P3 analog @@ -786,88 +784,87 @@ total - scatter + nu-scatter-0 analog + total - flux + scatter-0 analog - + total - nu-scatter + nu-fission analog - total - nu-scatter-P3 + nu-fission analog - - + total - nu-scatter + prompt-nu-fission analog - total - scatter + prompt-nu-fission analog - + total - nu-fission - analog + flux + tracklength - + total - nu-fission - analog + inverse-velocity + tracklength - + total - prompt-nu-fission - analog + flux + tracklength - + total prompt-nu-fission - analog + tracklength total flux - tracklength + analog + total - inverse-velocity - tracklength + prompt-nu-fission + analog @@ -878,31 +875,33 @@ + total - prompt-nu-fission + delayed-nu-fission tracklength - + + total - flux + delayed-nu-fission analog - + total - prompt-nu-fission + delayed-nu-fission analog total - flux + nu-fission tracklength @@ -916,43 +915,12 @@ - + total delayed-nu-fission - analog + tracklength - - - - total - delayed-nu-fission - analog - - - - - total - nu-fission - tracklength - - - - - - total - delayed-nu-fission - tracklength - - - - - - total - delayed-nu-fission - tracklength - - @@ -960,14 +928,14 @@ decay-rate tracklength - + total flux analog - + @@ -976,95 +944,123 @@ delayed-nu-fission analog + + + + total + flux + tracklength + + + + + total + total + tracklength + + + + + total + flux + analog + + + + + total + total + analog + - - - total - flux - tracklength - - - - - total - total - tracklength - - - - - total - flux - analog - - - - - total - total - analog - - total scatter-1 analog - + total flux analog - + total total analog - + total nu-scatter-1 analog - + total flux tracklength + + + + total + absorption + tracklength + + + + + total + flux + tracklength + + + + + total + absorption + tracklength + + + + + total + fission + tracklength + total - absorption + flux tracklength total - flux + fission tracklength total - absorption + flux tracklength total - fission + nu-fission tracklength @@ -1078,7 +1074,7 @@ total - fission + kappa-fission tracklength @@ -1092,7 +1088,7 @@ total - nu-fission + scatter tracklength @@ -1100,28 +1096,29 @@ total flux - tracklength + analog total - kappa-fission - tracklength + nu-scatter + analog total flux - tracklength + analog + total - scatter - tracklength + scatter-P3 + analog @@ -1133,15 +1130,17 @@ + total - nu-scatter + nu-scatter-P3 analog + total - flux + nu-scatter analog @@ -1149,7 +1148,7 @@ total - scatter-P3 + scatter analog @@ -1164,7 +1163,7 @@ total - nu-scatter-P3 + nu-fission analog @@ -1172,7 +1171,7 @@ total - nu-scatter + scatter-P0 analog @@ -1180,55 +1179,24 @@ total - scatter + nu-scatter-P0 analog - - - total - flux - analog - - - - - - total - nu-fission - analog - - - - - - total - scatter-P0 - analog - - - - - - total - nu-scatter-P0 - analog - - total flux tracklength - + total scatter tracklength - + @@ -1236,83 +1204,110 @@ scatter-P3 analog + + + + total + flux + tracklength + + + + + total + scatter + tracklength + + + + + + total + scatter-P3 + analog + + + + + + total + nu-scatter-0 + analog + total - nu-scatter + scatter-0 analog - - - - total - scatter - analog - - - - - total - flux - analog - - - - - total - nu-scatter - analog - - - - - - total - nu-scatter-P3 - analog - - - - - - total - nu-scatter - analog - - - - - - total - scatter - analog - - total nu-fission analog - + total nu-fission analog - + total prompt-nu-fission analog + + + + total + prompt-nu-fission + analog + + + + + total + flux + tracklength + + + + + total + inverse-velocity + tracklength + + + + + total + flux + tracklength + + + + + total + prompt-nu-fission + tracklength + + + + + total + flux + analog + + total prompt-nu-fission @@ -1326,49 +1321,6 @@ tracklength - - - total - inverse-velocity - tracklength - - - - - total - flux - tracklength - - - - - total - prompt-nu-fission - tracklength - - - - - total - flux - analog - - - - - - total - prompt-nu-fission - analog - - - - - total - flux - tracklength - - @@ -1376,7 +1328,7 @@ delayed-nu-fission tracklength - + @@ -1384,7 +1336,7 @@ delayed-nu-fission analog - + @@ -1392,14 +1344,14 @@ delayed-nu-fission analog - + total nu-fission tracklength - + @@ -1407,7 +1359,7 @@ delayed-nu-fission tracklength - + @@ -1415,7 +1367,7 @@ delayed-nu-fission tracklength - + @@ -1423,14 +1375,14 @@ decay-rate tracklength - + total flux analog - + diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 3f7797bf1b..5324d666cc 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -82,16 +82,16 @@ domain=10000 type=consistent scatter matrix [[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.84199430e-01 5.18702806e-02 2.00688439e-02 9.47771503e-03] - [9.88930322e-04 -2.07234582e-04 -1.03366173e-04 2.34290606e-04]] +[[[3.86422967e-01 5.21704775e-02 2.01849914e-02 9.53256688e-03] + [9.94653712e-04 -2.08433942e-04 -1.03964400e-04 2.35646553e-04]] - [[9.24639842e-04 -7.67704913e-04 4.93788836e-04 -1.71497217e-04] - [4.11464730e-01 1.64817268e-02 6.37149004e-03 -1.04991213e-02]]] -[[[5.04005137e-02 9.04259889e-03 3.61169756e-03 2.46795126e-03] - [8.36973463e-04 2.06752354e-04 1.97694759e-04 2.06602832e-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.60212263e-03 1.33020162e-03 8.55587476e-04 2.97153075e-04] - [2.84588375e-02 4.60349295e-03 1.05573088e-02 1.04561824e-02]]] + [[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] @@ -280,16 +280,16 @@ domain=10001 type=consistent scatter matrix [[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.10120713e-01 3.82295876e-02 2.07449405e-02 7.96429620e-03] +[[[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.96264249e-01 -1.12136353e-02 8.83656566e-03 -3.27006707e-03]]] -[[[5.84608636e-02 1.03230576e-02 5.67743887e-03 3.92760936e-03] + [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] - [7.40187611e-02 1.63372534e-02 1.16408402e-02 7.35838382e-03]]] + [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] @@ -478,16 +478,16 @@ domain=10002 type=consistent scatter matrix [[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.39901439e-01 3.81167422e-01 1.52391887e-01 9.14802163e-03] - [3.13677176e-02 8.75772258e-03 -2.56790088e-03 -3.78480261e-03]] +[[[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.43343102e-04 3.99960386e-04 3.19562684e-04 2.13846954e-04] - [2.03494484e+00 5.09940477e-01 1.11174601e-01 2.49884339e-02]]] -[[[4.26392749e-02 2.63117825e-02 1.16194647e-02 3.92016710e-03] - [2.98774961e-03 1.14887360e-03 1.03342895e-03 8.68386243e-04]] + [[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.71125112e-04 6.95667747e-04 5.55828678e-04 3.71952908e-04] - [4.68587349e-01 1.10634806e-01 2.50303502e-02 9.60120658e-03]]] + [[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] diff --git a/tests/test_mgxs_library_mesh/inputs_true.dat b/tests/test_mgxs_library_mesh/inputs_true.dat index aca103a8a3..fe38ef89db 100644 --- a/tests/test_mgxs_library_mesh/inputs_true.dat +++ b/tests/test_mgxs_library_mesh/inputs_true.dat @@ -577,31 +577,31 @@ - total - nu-scatter - analog + flux + tracklength - total scatter - analog + tracklength + total - flux + scatter-P3 analog + total - nu-scatter + nu-scatter-0 analog @@ -609,52 +609,50 @@ total - nu-scatter-P3 + scatter-0 analog - total - nu-scatter + nu-fission analog - total - scatter + nu-fission analog total - nu-fission + prompt-nu-fission analog total - nu-fission + prompt-nu-fission analog total - prompt-nu-fission - analog + flux + tracklength - + total - prompt-nu-fission - analog + inverse-velocity + tracklength @@ -667,7 +665,7 @@ total - inverse-velocity + prompt-nu-fission tracklength @@ -675,54 +673,40 @@ total flux - tracklength + analog + total prompt-nu-fission - tracklength + analog total flux - analog + tracklength + - total - prompt-nu-fission - analog + delayed-nu-fission + tracklength + total - flux - tracklength + delayed-nu-fission + analog - - - - total - delayed-nu-fission - tracklength - - - - - - total - delayed-nu-fission - analog - - @@ -730,30 +714,30 @@ delayed-nu-fission analog - + total nu-fission tracklength + + + + + total + delayed-nu-fission + tracklength + + + + + + total + delayed-nu-fission + tracklength + - - - - total - delayed-nu-fission - tracklength - - - - - - total - delayed-nu-fission - tracklength - - @@ -761,14 +745,14 @@ decay-rate tracklength - + total flux analog - + diff --git a/tests/test_mgxs_library_mesh/results_true.dat b/tests/test_mgxs_library_mesh/results_true.dat index 786ab8feca..f6c7a5718b 100644 --- a/tests/test_mgxs_library_mesh/results_true.dat +++ b/tests/test_mgxs_library_mesh/results_true.dat @@ -138,22 +138,22 @@ 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.638348 0.169129 -1 1 1 1 1 1 total P1 0.247099 0.064297 -2 1 1 1 1 1 total P2 0.092195 0.022758 -3 1 1 1 1 1 total P3 0.013224 0.005359 -4 1 2 1 1 1 total P0 0.588378 0.462704 -5 1 2 1 1 1 total P1 0.221552 0.175616 -6 1 2 1 1 1 total P2 0.069798 0.056753 -7 1 2 1 1 1 total P3 -0.003039 0.009829 -8 2 1 1 1 1 total P0 0.698373 0.171880 -9 2 1 1 1 1 total P1 0.261835 0.064773 -10 2 1 1 1 1 total P2 0.096206 0.024355 -11 2 1 1 1 1 total P3 0.016973 0.005960 -12 2 2 1 1 1 total P0 0.625643 0.146236 -13 2 2 1 1 1 total P1 0.244646 0.056797 -14 2 2 1 1 1 total P2 0.088580 0.021648 -15 2 2 1 1 1 total P3 0.019989 0.014515 +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 diff --git a/tests/test_mgxs_library_no_nuclides/inputs_true.dat b/tests/test_mgxs_library_no_nuclides/inputs_true.dat index f99014ee2c..b4498e9d8d 100644 --- a/tests/test_mgxs_library_no_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_no_nuclides/inputs_true.dat @@ -313,31 +313,31 @@ - total - nu-scatter - analog + flux + tracklength - total scatter - analog + tracklength + total - flux + scatter-P3 analog + total - nu-scatter + nu-scatter-0 analog @@ -345,52 +345,50 @@ total - nu-scatter-P3 + scatter-0 analog - - + total - nu-scatter + nu-fission analog - total - scatter + nu-fission analog total - nu-fission + prompt-nu-fission analog total - nu-fission + prompt-nu-fission analog - + total - prompt-nu-fission - analog + flux + tracklength - + total - prompt-nu-fission - analog + inverse-velocity + tracklength @@ -403,31 +401,17 @@ total - inverse-velocity + prompt-nu-fission tracklength - - - total - flux - tracklength - - - - - total - prompt-nu-fission - tracklength - - total flux analog - + @@ -435,14 +419,14 @@ prompt-nu-fission analog - + total flux tracklength - + @@ -450,7 +434,7 @@ delayed-nu-fission tracklength - + @@ -458,7 +442,7 @@ delayed-nu-fission analog - + @@ -466,30 +450,30 @@ delayed-nu-fission analog - + total nu-fission tracklength + + + + + total + delayed-nu-fission + tracklength + + + + + + total + delayed-nu-fission + tracklength + - - - - total - delayed-nu-fission - tracklength - - - - - - total - delayed-nu-fission - tracklength - - @@ -497,14 +481,14 @@ decay-rate tracklength - + total flux analog - + @@ -513,62 +497,76 @@ delayed-nu-fission analog + + + + total + flux + tracklength + + + + + total + total + tracklength + total flux - tracklength + analog total total - tracklength + analog - - - total - flux - analog - - - - - total - total - analog - - total scatter-1 analog - + total flux analog - + total total analog - + total nu-scatter-1 analog + + + + total + flux + tracklength + + + + + total + absorption + tracklength + @@ -587,14 +585,14 @@ total - flux + fission tracklength total - absorption + flux tracklength @@ -615,7 +613,7 @@ total - fission + nu-fission tracklength @@ -629,7 +627,7 @@ total - nu-fission + kappa-fission tracklength @@ -643,7 +641,7 @@ total - kappa-fission + scatter tracklength @@ -651,14 +649,14 @@ total flux - tracklength + analog total - scatter - tracklength + nu-scatter + analog @@ -670,8 +668,9 @@ + total - nu-scatter + scatter-P3 analog @@ -686,14 +685,15 @@ total - scatter-P3 + nu-scatter-P3 analog + total - flux + nu-scatter analog @@ -701,33 +701,17 @@ total - nu-scatter-P3 + scatter analog - total - nu-scatter + flux analog - - - - total - scatter - analog - - - - - total - flux - analog - - @@ -735,7 +719,7 @@ nu-fission analog - + @@ -743,7 +727,7 @@ scatter-P0 analog - + @@ -751,21 +735,21 @@ nu-scatter-P0 analog - + total flux tracklength - + total scatter tracklength - + @@ -773,12 +757,26 @@ scatter-P3 analog + + + + total + flux + tracklength + + + + + total + scatter + tracklength + total - nu-scatter + scatter-P3 analog @@ -786,88 +784,87 @@ total - scatter + nu-scatter-0 analog + total - flux + scatter-0 analog - + total - nu-scatter + nu-fission analog - total - nu-scatter-P3 + nu-fission analog - - + total - nu-scatter + prompt-nu-fission analog - total - scatter + prompt-nu-fission analog - + total - nu-fission - analog + flux + tracklength - + total - nu-fission - analog + inverse-velocity + tracklength - + total - prompt-nu-fission - analog + flux + tracklength - + total prompt-nu-fission - analog + tracklength total flux - tracklength + analog + total - inverse-velocity - tracklength + prompt-nu-fission + analog @@ -878,31 +875,33 @@ + total - prompt-nu-fission + delayed-nu-fission tracklength - + + total - flux + delayed-nu-fission analog - + total - prompt-nu-fission + delayed-nu-fission analog total - flux + nu-fission tracklength @@ -916,43 +915,12 @@ - + total delayed-nu-fission - analog + tracklength - - - - total - delayed-nu-fission - analog - - - - - total - nu-fission - tracklength - - - - - - total - delayed-nu-fission - tracklength - - - - - - total - delayed-nu-fission - tracklength - - @@ -960,14 +928,14 @@ decay-rate tracklength - + total flux analog - + @@ -976,95 +944,123 @@ delayed-nu-fission analog + + + + total + flux + tracklength + + + + + total + total + tracklength + + + + + total + flux + analog + + + + + total + total + analog + - - - total - flux - tracklength - - - - - total - total - tracklength - - - - - total - flux - analog - - - - - total - total - analog - - total scatter-1 analog - + total flux analog - + total total analog - + total nu-scatter-1 analog - + total flux tracklength + + + + total + absorption + tracklength + + + + + total + flux + tracklength + + + + + total + absorption + tracklength + + + + + total + fission + tracklength + total - absorption + flux tracklength total - flux + fission tracklength total - absorption + flux tracklength total - fission + nu-fission tracklength @@ -1078,7 +1074,7 @@ total - fission + kappa-fission tracklength @@ -1092,7 +1088,7 @@ total - nu-fission + scatter tracklength @@ -1100,28 +1096,29 @@ total flux - tracklength + analog total - kappa-fission - tracklength + nu-scatter + analog total flux - tracklength + analog + total - scatter - tracklength + scatter-P3 + analog @@ -1133,15 +1130,17 @@ + total - nu-scatter + nu-scatter-P3 analog + total - flux + nu-scatter analog @@ -1149,7 +1148,7 @@ total - scatter-P3 + scatter analog @@ -1164,7 +1163,7 @@ total - nu-scatter-P3 + nu-fission analog @@ -1172,7 +1171,7 @@ total - nu-scatter + scatter-P0 analog @@ -1180,55 +1179,24 @@ total - scatter + nu-scatter-P0 analog - - - total - flux - analog - - - - - - total - nu-fission - analog - - - - - - total - scatter-P0 - analog - - - - - - total - nu-scatter-P0 - analog - - total flux tracklength - + total scatter tracklength - + @@ -1236,83 +1204,110 @@ scatter-P3 analog + + + + total + flux + tracklength + + + + + total + scatter + tracklength + + + + + + total + scatter-P3 + analog + + + + + + total + nu-scatter-0 + analog + total - nu-scatter + scatter-0 analog - - - - total - scatter - analog - - - - - total - flux - analog - - - - - total - nu-scatter - analog - - - - - - total - nu-scatter-P3 - analog - - - - - - total - nu-scatter - analog - - - - - - total - scatter - analog - - total nu-fission analog - + total nu-fission analog - + total prompt-nu-fission analog + + + + total + prompt-nu-fission + analog + + + + + total + flux + tracklength + + + + + total + inverse-velocity + tracklength + + + + + total + flux + tracklength + + + + + total + prompt-nu-fission + tracklength + + + + + total + flux + analog + + total prompt-nu-fission @@ -1326,49 +1321,6 @@ tracklength - - - total - inverse-velocity - tracklength - - - - - total - flux - tracklength - - - - - total - prompt-nu-fission - tracklength - - - - - total - flux - analog - - - - - - total - prompt-nu-fission - analog - - - - - total - flux - tracklength - - @@ -1376,7 +1328,7 @@ delayed-nu-fission tracklength - + @@ -1384,7 +1336,7 @@ delayed-nu-fission analog - + @@ -1392,14 +1344,14 @@ delayed-nu-fission analog - + total nu-fission tracklength - + @@ -1407,7 +1359,7 @@ delayed-nu-fission tracklength - + @@ -1415,7 +1367,7 @@ delayed-nu-fission tracklength - + @@ -1423,14 +1375,14 @@ decay-rate tracklength - + total flux analog - + diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 46cc07e31b..0cec56a256 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -100,22 +100,22 @@ 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.384199 0.050401 -13 10000 1 1 total P1 0.051870 0.009043 -14 10000 1 1 total P2 0.020069 0.003612 -15 10000 1 1 total P3 0.009478 0.002468 -8 10000 1 2 total P0 0.000989 0.000837 -9 10000 1 2 total P1 -0.000207 0.000207 -10 10000 1 2 total P2 -0.000103 0.000198 -11 10000 1 2 total P3 0.000234 0.000207 -4 10000 2 1 total P0 0.000925 0.001602 -5 10000 2 1 total P1 -0.000768 0.001330 -6 10000 2 1 total P2 0.000494 0.000856 -7 10000 2 1 total P3 -0.000171 0.000297 -0 10000 2 2 total P0 0.411465 0.028459 -1 10000 2 2 total P1 0.016482 0.004603 -2 10000 2 2 total P2 0.006371 0.010557 -3 10000 2 2 total P3 -0.010499 0.010456 +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 @@ -312,10 +312,10 @@ 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.310121 0.058461 -13 10001 1 1 total P1 0.038230 0.010323 -14 10001 1 1 total P2 0.020745 0.005677 -15 10001 1 1 total P3 0.007964 0.003928 +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 @@ -324,10 +324,10 @@ 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.296264 0.074019 -1 10001 2 2 total P1 -0.011214 0.016337 -2 10001 2 2 total P2 0.008837 0.011641 -3 10001 2 2 total P3 -0.003270 0.007358 +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 @@ -524,22 +524,22 @@ 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.639901 0.042639 -13 10002 1 1 total P1 0.381167 0.026312 -14 10002 1 1 total P2 0.152392 0.011619 -15 10002 1 1 total P3 0.009148 0.003920 -8 10002 1 2 total P0 0.031368 0.002988 -9 10002 1 2 total P1 0.008758 0.001149 -10 10002 1 2 total P2 -0.002568 0.001033 -11 10002 1 2 total P3 -0.003785 0.000868 -4 10002 2 1 total P0 0.000443 0.000771 -5 10002 2 1 total P1 0.000400 0.000696 -6 10002 2 1 total P2 0.000320 0.000556 -7 10002 2 1 total P3 0.000214 0.000372 -0 10002 2 2 total P0 2.034945 0.468587 -1 10002 2 2 total P1 0.509940 0.110635 -2 10002 2 2 total P2 0.111175 0.025030 -3 10002 2 2 total P3 0.024988 0.009601 +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 diff --git a/tests/test_mgxs_library_nuclides/inputs_true.dat b/tests/test_mgxs_library_nuclides/inputs_true.dat index 6ee483a571..3083ef903b 100644 --- a/tests/test_mgxs_library_nuclides/inputs_true.dat +++ b/tests/test_mgxs_library_nuclides/inputs_true.dat @@ -313,31 +313,31 @@ - - U234 U235 U238 O16 - nu-scatter - analog + total + flux + tracklength - U234 U235 U238 O16 scatter - analog + tracklength - total - flux + + U234 U235 U238 O16 + scatter-P3 analog + U234 U235 U238 O16 - nu-scatter + nu-scatter-0 analog @@ -345,52 +345,50 @@ U234 U235 U238 O16 - nu-scatter-P3 + scatter-0 analog - - + U234 U235 U238 O16 - nu-scatter + nu-fission analog - U234 U235 U238 O16 - scatter + nu-fission analog U234 U235 U238 O16 - nu-fission + prompt-nu-fission analog U234 U235 U238 O16 - nu-fission + prompt-nu-fission analog - - U234 U235 U238 O16 - prompt-nu-fission - analog + + total + flux + tracklength - + U234 U235 U238 O16 - prompt-nu-fission - analog + inverse-velocity + tracklength @@ -403,31 +401,17 @@ U234 U235 U238 O16 - inverse-velocity + prompt-nu-fission tracklength - - - total - flux - tracklength - - - - - U234 U235 U238 O16 - prompt-nu-fission - tracklength - - total flux analog - + @@ -435,62 +419,76 @@ prompt-nu-fission analog + + + + total + flux + tracklength + + + + + Zr90 Zr91 Zr92 Zr94 Zr96 + total + tracklength + total flux - tracklength + analog Zr90 Zr91 Zr92 Zr94 Zr96 total - tracklength + analog - - - total - flux - analog - - - - - Zr90 Zr91 Zr92 Zr94 Zr96 - total - analog - - Zr90 Zr91 Zr92 Zr94 Zr96 scatter-1 analog - + total flux analog - + Zr90 Zr91 Zr92 Zr94 Zr96 total analog - + Zr90 Zr91 Zr92 Zr94 Zr96 nu-scatter-1 analog + + + + total + flux + tracklength + + + + + Zr90 Zr91 Zr92 Zr94 Zr96 + absorption + tracklength + @@ -508,15 +506,15 @@ - total - flux + Zr90 Zr91 Zr92 Zr94 Zr96 + fission tracklength - Zr90 Zr91 Zr92 Zr94 Zr96 - absorption + total + flux tracklength @@ -537,7 +535,7 @@ Zr90 Zr91 Zr92 Zr94 Zr96 - fission + nu-fission tracklength @@ -551,7 +549,7 @@ Zr90 Zr91 Zr92 Zr94 Zr96 - nu-fission + kappa-fission tracklength @@ -565,7 +563,7 @@ Zr90 Zr91 Zr92 Zr94 Zr96 - kappa-fission + scatter tracklength @@ -573,14 +571,14 @@ total flux - tracklength + analog Zr90 Zr91 Zr92 Zr94 Zr96 - scatter - tracklength + nu-scatter + analog @@ -592,8 +590,9 @@ + Zr90 Zr91 Zr92 Zr94 Zr96 - nu-scatter + scatter-P3 analog @@ -608,14 +607,15 @@ Zr90 Zr91 Zr92 Zr94 Zr96 - scatter-P3 + nu-scatter-P3 analog - total - flux + + Zr90 Zr91 Zr92 Zr94 Zr96 + nu-scatter analog @@ -623,33 +623,17 @@ Zr90 Zr91 Zr92 Zr94 Zr96 - nu-scatter-P3 + scatter analog - - Zr90 Zr91 Zr92 Zr94 Zr96 - nu-scatter + total + flux analog - - - - Zr90 Zr91 Zr92 Zr94 Zr96 - scatter - analog - - - - - total - flux - analog - - @@ -657,7 +641,7 @@ nu-fission analog - + @@ -665,7 +649,7 @@ scatter-P0 analog - + @@ -673,21 +657,21 @@ nu-scatter-P0 analog - + total flux tracklength - + Zr90 Zr91 Zr92 Zr94 Zr96 scatter tracklength - + @@ -695,12 +679,26 @@ scatter-P3 analog + + + + total + flux + tracklength + + + + + Zr90 Zr91 Zr92 Zr94 Zr96 + scatter + tracklength + Zr90 Zr91 Zr92 Zr94 Zr96 - nu-scatter + scatter-P3 analog @@ -708,207 +706,205 @@ Zr90 Zr91 Zr92 Zr94 Zr96 - scatter + nu-scatter-0 analog - total - flux + + Zr90 Zr91 Zr92 Zr94 Zr96 + scatter-0 analog - + Zr90 Zr91 Zr92 Zr94 Zr96 - nu-scatter + nu-fission analog - Zr90 Zr91 Zr92 Zr94 Zr96 - nu-scatter-P3 + nu-fission analog - - + Zr90 Zr91 Zr92 Zr94 Zr96 - nu-scatter + prompt-nu-fission analog - Zr90 Zr91 Zr92 Zr94 Zr96 - scatter + prompt-nu-fission analog - - - Zr90 Zr91 Zr92 Zr94 Zr96 - nu-fission - analog - - - - - Zr90 Zr91 Zr92 Zr94 Zr96 - nu-fission - analog - - - - - Zr90 Zr91 Zr92 Zr94 Zr96 - prompt-nu-fission - analog - - - - - Zr90 Zr91 Zr92 Zr94 Zr96 - prompt-nu-fission - analog - - total flux tracklength - + Zr90 Zr91 Zr92 Zr94 Zr96 inverse-velocity tracklength - + total flux tracklength + + + + Zr90 Zr91 Zr92 Zr94 Zr96 + prompt-nu-fission + tracklength + + + + + total + flux + analog + + + + + + Zr90 Zr91 Zr92 Zr94 Zr96 + prompt-nu-fission + analog + + + + + total + flux + tracklength + - + - Zr90 Zr91 Zr92 Zr94 Zr96 - prompt-nu-fission + H1 O16 B10 B11 + total tracklength - + total flux analog - + - - Zr90 Zr91 Zr92 Zr94 Zr96 - prompt-nu-fission + H1 O16 B10 B11 + total analog - - - total - flux - tracklength - - - - - H1 O16 B10 B11 - total - tracklength - - - - - total - flux - analog - - - - - H1 O16 B10 B11 - total - analog - - H1 O16 B10 B11 scatter-1 analog - + total flux analog - + H1 O16 B10 B11 total analog - + H1 O16 B10 B11 nu-scatter-1 analog - + total flux tracklength + + + + H1 O16 B10 B11 + absorption + tracklength + + + + + total + flux + tracklength + + + + + H1 O16 B10 B11 + absorption + tracklength + + + + + H1 O16 B10 B11 + fission + tracklength + - H1 O16 B10 B11 - absorption + total + flux tracklength - total - flux + H1 O16 B10 B11 + fission tracklength - H1 O16 B10 B11 - absorption + total + flux tracklength H1 O16 B10 B11 - fission + nu-fission tracklength @@ -922,7 +918,7 @@ H1 O16 B10 B11 - fission + kappa-fission tracklength @@ -936,7 +932,7 @@ H1 O16 B10 B11 - nu-fission + scatter tracklength @@ -944,28 +940,29 @@ total flux - tracklength + analog H1 O16 B10 B11 - kappa-fission - tracklength + nu-scatter + analog total flux - tracklength + analog + H1 O16 B10 B11 - scatter - tracklength + scatter-P3 + analog @@ -977,15 +974,17 @@ + H1 O16 B10 B11 - nu-scatter + nu-scatter-P3 analog - total - flux + + H1 O16 B10 B11 + nu-scatter analog @@ -993,7 +992,7 @@ H1 O16 B10 B11 - scatter-P3 + scatter analog @@ -1008,7 +1007,7 @@ H1 O16 B10 B11 - nu-scatter-P3 + nu-fission analog @@ -1016,7 +1015,7 @@ H1 O16 B10 B11 - nu-scatter + scatter-P0 analog @@ -1024,55 +1023,24 @@ H1 O16 B10 B11 - scatter + nu-scatter-P0 analog - - - total - flux - analog - - - - - - H1 O16 B10 B11 - nu-fission - analog - - - - - - H1 O16 B10 B11 - scatter-P0 - analog - - - - - - H1 O16 B10 B11 - nu-scatter-P0 - analog - - total flux tracklength - + H1 O16 B10 B11 scatter tracklength - + @@ -1080,124 +1048,108 @@ scatter-P3 analog - - - - - H1 O16 B10 B11 - nu-scatter - analog - - - - - - H1 O16 B10 B11 - scatter - analog - - - - - total - flux - analog - - - - - H1 O16 B10 B11 - nu-scatter - analog - - - - - - H1 O16 B10 B11 - nu-scatter-P3 - analog - - - - - - H1 O16 B10 B11 - nu-scatter - analog - - - - - - H1 O16 B10 B11 - scatter - analog - - - - - H1 O16 B10 B11 - nu-fission - analog - - - - - H1 O16 B10 B11 - nu-fission - analog - - - - - H1 O16 B10 B11 - prompt-nu-fission - analog - - - - - H1 O16 B10 B11 - prompt-nu-fission - analog - - + total flux tracklength - + + + + H1 O16 B10 B11 + scatter + tracklength + + + + + + H1 O16 B10 B11 + scatter-P3 + analog + + + + + + H1 O16 B10 B11 + nu-scatter-0 + analog + + + + + + H1 O16 B10 B11 + scatter-0 + analog + + + + + H1 O16 B10 B11 + nu-fission + analog + + + + + H1 O16 B10 B11 + nu-fission + analog + + + + + H1 O16 B10 B11 + prompt-nu-fission + analog + + + + + H1 O16 B10 B11 + prompt-nu-fission + analog + + + + + total + flux + tracklength + + H1 O16 B10 B11 inverse-velocity tracklength - + total flux tracklength - + H1 O16 B10 B11 prompt-nu-fission tracklength - + total flux analog - + diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 427a9f3b08..7b12791922 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1 +1 @@ -98b6de0cd546baf457c878d9695806ed53d1af1f380e164d1803041947346a54830aef4a30eab1d261abce700a4f45e2f81d6e5f78c124110c0f60601161cf9b \ No newline at end of file +bd5c4c64a77f8df58fc6753bc5d43de9d7b80c47097cfbafa37f52f10f661997caec72acdfa31dd1af246314447bd5781e950181814cbc77435ebbf029e9f6d7 \ No newline at end of file